如果对强化学习没有了解,推荐先学习一下:强化学习基本原理
1 Q-Learning:简介
Q-Learning 是一种基于价值迭代的强化学习算法,用于解决马尔可夫决策过程(MDP)中的问题。在 Q-Learning 中,代理通过与环境进行交互学习一个Q值函数,该函数表示在特定状态下采取特定动作所获得的预期累积奖励。
2 Q-Table
Q-Learning 的特点在于它的决策方式。它是通过一个被称为 Q-table 的表格来做决策。
Q-table 的纵轴为 State,横轴为 Action。里面的值为 Q-value。对于当前状态s,倾向于采取的行为为 argmaxQ(s, a),即倾向于采取使得 Q-value 尽可能大的 Action。
Q-value 到底是什么?
强化学习就是希望获得尽可能大的奖励。再一次交互中,我们希望得到尽可能大的全局奖励,而不是贪恋某一时刻的局部奖励。我们采用下面的方式表示全局奖励,或者可以称为长期奖励:
这个公式表示在 t 时刻的长期奖励。其中 γ 是衰减因子,其值在 0-1 之间,表示距离 t 时刻越远的局部奖励对 t 时刻的长期奖励影响越小,即表示未来的奖励的重要性。我们希望每一时刻的 G 越大越好。
我们可以进而定义两个公式:
π 是当前的决策模型,也就是需要被训练的东西。
V 是在当前状态为 s 的前提下,所能获得的长期奖励的期望。在打游戏时,就可以用 V 评估当前状态的优劣势。
Q 是在当前状态为 s 的前提下,如果采用了动作 a,所能获得的长期奖励的期望。相比于 V,Q就可以用与评估状态 s 的前提下,采取某个行为的好坏程度,也就可以用于指导采取哪个行为。
Q-table 中的 Q-value qmn 就是 Q(sm, an)。Q-table 就可以用于指导采取长期奖励最大的行为。
3 学习过程
3.1 初始化
可直接将 Q-value 全部设置为 0。或者也可以采用一些启发式方法去设置 Q-value。
3.2 决策
这里使用 ε-Greedy 的策略来选择行为。其中 ε 为探索率,其值为 0-1 之间。ε 的概率选择随机动作,以 1-ε 的概率选择使得 Q-value 最大的动作。之所以不直接选择 Q-value 最大的动作,是为了使得学习不陷入局部优化。
ε 需要在探索和利用之间取得适当的平衡。通常在训练初期探索率较高,随着训练的进行逐渐减小,以便代理能够充分探索环境并逐渐利用已经学到的知识。
3.3 更新 Q-table
更新 Q-value 是采用时序差分(Temporal Difference,TD) 的策略,它的原理是基于贝尔曼公式(Bellman equation)。
更新公式为:
整体可类比梯度下降。α 是学习率。r 是立即回报。γ 是衰减因子。
max(Q(s',a'))
表示在下一个状态所能得到的最大的 Q-value。r+γmax(Q(s',a'))
近似为长期奖励,或者可以称为 TD Target。长期奖励需要直接看到最后一步的奖励,但有时做不到这一点,即使做到这一点,更新也比较迟,因此这里使用这个公式近似为实际长期奖励。r+γmax(Q(s',a'))-Q(s,a)
表示实际长期奖励与当前 Q-value之间的误差。
如果不近似长期奖励,而是等到一轮动作完成之后再统一学习,则该方法成为 Monte-Carlo(MC)based approach 方法,这里不详细讲述。一般都是使用 TD 方法。
实际上,MC由于要进行一系列动作,链条较长,不稳定,因此方差较大,但可以看做全局的方式,精度较高;而TD的方式由于误差不断传递,导致精度稍低,但是方差比较小。