1. 什么是 Q-learning?
它是强化学习中的一种 values-based 算法,最终是会学习出一个表格 Q-Table,例如在一个游戏中有下面5种状态和4种行为,则表格为:
这个表格的每一行代表每个 state,每一列代表每个 action,表格的数值就是在各个 state 下采取各个 action 时能够获得的最大的未来期望奖励。
通过 Q table 就可以找到每个状态下的最优行为,进而通过找到所有最优的action得到最大的期望奖励。
2. 所以关键问题是表格的数值如何计算呢?
1. 首先 Q-table 初始化为 0。
2. 3. 然后根据当前的Q-Table给当前state选择一个action并执行。
执行过程是一直到本轮训练停止才算完成。不过因为初始的 Q-value 全是0,就要采取 epsilon greedy strategy 来选择。
所谓 epsilon greedy strategy 是指:
开始时通过设置一个较大的 epsilon,让agent探索环境并随机选择action。
随着agent对环境的了解,降低epsilon ,这样agent开始利用环境做出行动。
在当前state下选择了某个action后,就可以用Bellman equation计算Q-values:
4. 5. 评估:采取行动得到了奖励后就可以用Q函数更新 Q(s,a):
重复这个过程一直到训练停止,就可以得到最优的 Q-table。
参考文献:
https://www.freecodecamp.org/news/an-introduction-to-q-learning-reinforcement-learning-14ac0b4493cc/