6.4 Sarsa:on-policy下的时序差分控制
TD方法学习的是动作价值函数,更新方程为:
其中Qhat表示对Q的估计,不同的算法对Qhat有不同的计算。
Sarsa算法:
更新方程为:
由于算法的每次更新需要用到当前时刻的S和A,和下一时刻的R、S、A,所以取首字母称为sarsa。
Sarsa是一种on-policy的算法,与MC算法相似,需要保持各个状态被多次访问才能收敛,使用软性策略保证探索。
Sarsa算法流程:
6.5 Q-learning:off-policy下的时序差分控制
Q-learning算法的Qhat的定义式为:
其对应的更新式为:
待学习的动作价值函数Q采用了对最优动作价值函数的直接近似(求max)来作为更新目标,。
Q-learning的max操作与行动策略是无关的,而Sarsa的计算需要知道下一时刻的动作,因此与生成数据的行动策略是相关的。
Q-learning算法流程:
6.6 期望Sarsa:
对于下一时刻的所有动作采取期望,即对应的更新式为:
算法采用期望来更新,消除了因为随机选择动作而产生的方差,更加稳定。
6.7 最大化偏差与双学习
很多算法都包含最大化操作,但是最大化操作会有显著的正偏差。比如一个动作a的真实价值是0,但是估计的时候会正有负,而max操作会倾向于选择正值,真实值的最大值是0,而估计值的最大值是正数,这就产生了正偏差,将其称作最大化偏差。
而最大化偏差是会影响TD控制算法的性能的。
所以需要引入双学习来缓解这个问题。
将样本划分为两个集合,并分别独立学习出两个对真实值的估计值,记为、。
用其中一个估计值决定最优行动。
通过另一个估计值来计算最优行动对应的值函数。
重复上述过程,两个集合交换,得到另一个无偏估计。
其更新式为:
double Q-learning流程如下:
6.8 游戏、后位状态和其他特殊例子
一些状态下,我们可以执行完行动再更新,比如说下棋问题,因为我们不知道对手的行动。可以将当前局面和棋的下法导致的结果称为后位状态。
不同的解法和不同的下法可能会导致相同的后位状态,而后位状态对应的先验知识可以使得部分特殊任务的学习更加高效,尤其是在不知道完整的环境动态变化信息时。
6.9 本章小结
本章介绍了TD方法,并介绍了其预测问题和控制问题。
并以此介绍和对比了Sarsa、Q-learning、Double Q-learning、期望Sarsa算法。
在后续几章中会进一步介绍A2C算法、函数估计算法、n步算法等。