什么是 Q-learning?

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/

推荐阅读更多精彩内容