- Q值
Q值是一个与状态s和动作a相关的值,表示的意义为在状态s下选择动作a的程度,但应该注意它不同于强化学习中的回报R,回报是局部的,只在当下的状态上,相当于到达了某个成就点?Q值是全局性的,当下的Q值受到后续所有Q值的影响。两者之间存在着正的相关关系,选择Q值最大的动作,获得的总回报是最大的。
下面是Q-Learning更新的两种表示方式,它们是等价的
从1式中可以看出,Q是跟下一个状态下的Q有联系的,通过不断的迭代,后面的Q的影响将会体现在(一条完整路径上的)前面所有的Q值中,这就是为什么Q值是一个连续的概念了。
对1式可以理解为,新Q=老Q+alpha*error,其中error=Q现实-Q估计,其中Q现实=这种理解也就是上图中的理解,通过每次进行一部分更新的方式逐步达到收敛稳定。
对2式子可以理解为,新Q=老Q 和 Q更新的加权和
-
alpha
alpha是学习率,在(0,1)上,
-
gamma
gamma是折扣因子,是一个衰减度,在(0,1)上,表示后面的Q对前面Q的影响。
gamma的思想是在保证充分受到近处的影响的前提下,减弱太远的回报对当前动作的影响,即当前Q值很大程度上是由近处的回报决定的,远处的影响也有,会很小。或者这么说,我当前的Q会较大程度的影响到近处的,对远处的影响较小,这与现实是相符合的。而平均反馈的情况下,当前的Q会平均到(所在的路径上的)前面所有的状态上,对离我近的状态和理我很远的状态的影响是一样的。
(下面这段只是为了理解而做的形象化说明,不完全契合原理公式)
假设我们通过A,B,C,D这个四个状态转换到达了终点,设gamma=0.8,经过一轮迭代后,D的影响会作用到C上,对C的影响是0.8D;再一轮迭代后,会作用到B上,对B的影响是0.64D;再一轮,对A的影响是0.512D;对距离10个状态远的影响就只有0.1D了。
- e_greedy(epsilon贪婪机制)
贪婪,就是只着眼于局部,选当前最好的。
e_greedy机制的产生是为了在强化学习中进行 探索 和 利用 的折中,epsilon贪婪机制就是以epsilon的几率进行 利用,以(1-epsilon)的几率进行 探索,
- 探索与利用
简单来说,探索是更广泛的更新Q表的过程;而利用是选最好get到一条最优路径的过程。
如果每一步都选择最优的动作(实际上这是一种 确定性策略)(这也是 利用 的过程),在目前的Q表中,诚然这是一条最优的路径。但是可能存在一种情况就是当前的Q表还未收敛,还不是最终的Q表,为了让这个Q表能真正的反映现实环境的优劣,需要对不是(当前)最优的地方也踩一踩(可以是随机选择一个动作,也可以是按概率选择动作,这就是一种不确定性的策略——随机策略)(这是 探索 的过程),试试那些地方会不会更好。当然,最好的就是我们在训练的时候不一定选最好的,别的动作也可以选,这样可以保证我们对整个环境掌握的更好,然后在测试(应用)的时候,我们根据收敛的Q表,每一步都选最优的动作,得到一条最优的路径。
- off-policy(离线策略)
与之相对的是on-policy(在线策略),Q-Learning是一种离线学习的策略。
个人理解
off-policy(离线策略)是一种只分析理论的方式,体现在Q-Learning中就是我根据状态s_下最优的max Q(s_, a_)更新当前的上一个状态s下的Q(s, a),但实际上,我在状态s_并不一定会选择动作a_,(比如在e_greedy机制中可能会根据概率选择其他动作)——先更新,再动腿,更新根据理论上的最优值进行更新,可能会跟走的这一步(这一步可能并不是最优的)无关
而on-policy(在线策略)会根据状态s_下实际进行的动作a_更新上一个状态s下的Q(s,a)。——先挪步,再更新。更新与这一步的实际动作有关。
后续我打算做一些强化学习Python时间的工作,有兴趣可以关注 分类目录——强化学习
-
参考文献