如果对强化学习没有了解,推荐先看一下强化学习基本原理

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 越大越好。
由于衰减因子的加入,G又可称为折扣奖励
我们可以进而定义两个公式:
状态价值函数
行为价值函数
π 是当前的决策模型,也就是需要被训练的东西。
V 是在当前状态为 s 的前提下,所能获得的长期奖励的期望。在打游戏时,就可以用 V 评估当前状态的优劣势。其称为状态价值函数
Q 是在当前状态为 s 的前提下,如果采用了动作 a,所能获得的长期奖励的期望。相比于 V,Q 就可以用与评估状态 s 的前提下,采取某个行为的好坏程度,也就可以用于指导采取哪个行为。其称为行为价值函数
Q-table 中的 Q-value q_mn 就是 Q(s_m, a_n)。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。长期奖励需要直接看到最后一步的奖励,但有时做不到这一点,即使做到这一点,更新也比较迟,因此这里使用这个公式近似为实际长期奖励。也就是将 s 到 s’ 的实际奖励加上 s’ 之后的估计奖励作为 s 之后的实际奖励。
γ 是衰减因子,其与上面提到的折扣奖励中的衰减因子相同。
r+γmax(Q(s',a'))-Q(s,a) 表示实际长期奖励与当前 Q-value之间的误差。
如果不近似长期奖励,而是等到一轮动作完成之后再统一学习,则该方法成为 Monte-Carlo(MC)based approach 方法,这里不详细讲述。一般都是使用 TD 方法。
实际上,MC由于要进行一系列动作,链条较长,不稳定,因此方差较大,但可以看做全局的方式,精度较高;而TD的方式由于误差不断传递,导致精度稍低,但是方差比较小。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐