6.4 Sarsa:on-policy下的时序差分控制

TD方法学习的是动作价值函数,更新方程为:
Reinforcement Learning - An Introduction强化学习读书笔记 Ch6.4-Ch6.9
其中Qhat表示对Q的估计,不同的算法对Qhat有不同的计算。
Sarsa算法:
Reinforcement Learning - An Introduction强化学习读书笔记 Ch6.4-Ch6.9
更新方程为:
Reinforcement Learning - An Introduction强化学习读书笔记 Ch6.4-Ch6.9
由于算法的每次更新需要用到当前时刻的S和A,和下一时刻的R、S、A,所以取首字母称为sarsa。
Sarsa是一种on-policy的算法,与MC算法相似,需要保持各个状态被多次访问才能收敛,使用软性策略保证探索。
Sarsa算法流程:
Reinforcement Learning - An Introduction强化学习读书笔记 Ch6.4-Ch6.9

6.5 Q-learning:off-policy下的时序差分控制

Q-learning算法的Qhat的定义式为:
Reinforcement Learning - An Introduction强化学习读书笔记 Ch6.4-Ch6.9
其对应的更新式为:
Reinforcement Learning - An Introduction强化学习读书笔记 Ch6.4-Ch6.9
待学习的动作价值函数Q采用了对最优动作价值函数的直接近似(求max)来作为更新目标,。
Q-learning的max操作与行动策略是无关的,而Sarsa的计算需要知道下一时刻的动作,因此与生成数据的行动策略是相关的。
Q-learning算法流程:
Reinforcement Learning - An Introduction强化学习读书笔记 Ch6.4-Ch6.9

6.6 期望Sarsa:

对于下一时刻的所有动作采取期望,即对应的更新式为:
Reinforcement Learning - An Introduction强化学习读书笔记 Ch6.4-Ch6.9
算法采用期望来更新,消除了因为随机选择动作而产生的方差,更加稳定。

6.7 最大化偏差与双学习

很多算法都包含最大化操作,但是最大化操作会有显著的正偏差。比如一个动作a的真实价值是0,但是估计的时候会正有负,而max操作会倾向于选择正值,真实值的最大值是0,而估计值的最大值是正数,这就产生了正偏差,将其称作最大化偏差。
而最大化偏差是会影响TD控制算法的性能的。
所以需要引入双学习来缓解这个问题。
将样本划分为两个集合,并分别独立学习出两个对真实值的估计值,记为Q1(a)Q_1(a)Q2(a)Q_2(a)
用其中一个估计值决定最优行动。
通过另一个估计值来计算最优行动对应的值函数。
重复上述过程,两个集合交换,得到另一个无偏估计。
其更新式为:
Reinforcement Learning - An Introduction强化学习读书笔记 Ch6.4-Ch6.9
double Q-learning流程如下:
Reinforcement Learning - An Introduction强化学习读书笔记 Ch6.4-Ch6.9

6.8 游戏、后位状态和其他特殊例子

一些状态下,我们可以执行完行动再更新,比如说下棋问题,因为我们不知道对手的行动。可以将当前局面和棋的下法导致的结果称为后位状态。
不同的解法和不同的下法可能会导致相同的后位状态,而后位状态对应的先验知识可以使得部分特殊任务的学习更加高效,尤其是在不知道完整的环境动态变化信息时。

6.9 本章小结

本章介绍了TD方法,并介绍了其预测问题和控制问题。
并以此介绍和对比了Sarsa、Q-learning、Double Q-learning、期望Sarsa算法。
在后续几章中会进一步介绍A2C算法、函数估计算法、n步算法等。

相关文章: