chapter 6 Temporal-Difference Learning(时间差分学习)
时间差分学习既可以从环境中直接交互式学习,也可以使用自引导的方式来更新估计值。
6.1 TD Prediction(TD预测算法)
在MC方法中,值函数只在每一个片段结束后进行更新,因为返回值需要在片段结束后进行计算。而TD方法在每一个时间点都会根据当前奖励对值函数即时更新。公式如下:
这种TD方法也称作TD(0),是n-step TD的一种特殊情况。一步TD方法是基于其他状态值函数对当前状态值函数进行估计,故而是自引导的方法。
如上述公式所示,MC方法是一种估计,因为第一个公式的期望值是未知的;DP方法是一种估计,因为下一个状态的值函数是未知的,采用V(St+1)估计。而TD方法是估计的,因为期望和下一个状态值函数都是未知的。故而TD方法结合了MC的采样和DP的自引导。
在DP中,更新方法称为期望更新,因为其更新方法基于样本的真实分布。而TD中,这种更新称为采样更新,其只基于当前采样状态-动作对。
此外,可以注意到TD(0)中更新值是一系列误差,这个误差称为TD误差,如下:
实际在MC方法中,也存在误差的概念。MC误差实际是一系列TD误差的和,如下:
值得注意的是,如果V在片段中实时更新,则这个等号并不精确,但步长不大的情况下,仍然近似相等。
6.2 Advantages of TD Prediction Methods(TD预测方法的优点)
相比DP而言,TD不需要对环境准确的建模;相比于MC而言,TD方法可以在线学习,非常自然的方式实现。
此外,很多情况下,TD方法较固定-alpha的MC方法而言,可以更快地收敛。
6.3 Optimality of TD(0)(TD的最优值)
TD(0)方法可以分为批处理和非批处理的。对于批处理更新,首先固定值函数,将一个片段中每一个时间点的值函数累计更新相加,在片段结束时,统一对值函数进行一次更新。而非批处理的方式,则如上一节中所述,每一时刻都进行值函数更新。
对于批处理的MC方法,其值函数估计值总是寻求训练集的最小均方误差;而批处理的TD(0)方法总是寻找马尔科夫过程模型的极大似然估计。一般来说,批处理的TD(0)方法总会收敛到确定性等价估计。
在批处理形式中,TD(0)方法比MC方法更快收敛,因为TD(0)计算的是确定性等价估计。而在非批处理形式中,TD(0)比MC方法更快收敛,因为TD(0)可以得到更好的估计值,尽管中间某些步可能并不是最优的。
虽然使用确定性等价估计可以得到最优解,但这种方式计算量过大,不可行。使用TD方法是逼近确定性等价解的唯一可行方法。
6.4 Sarsa: On-policy TD Control(Sarsa:在线TD控制)
在TD方式中,与MC类似,仍然会面临平衡探索和开发的问题,或者使用带软策略的在线策略,或者使用离线策略方式。
对于在线策略方式,与MC方式类似,需要估计动作值函数,而不是状态值函数。公式如下:
这个公式使用若干个$\left( S { t } ,A { t } ,R { t + 1} ,S { t + 1} ,A _ { t + 1} \right)$状态对,故而称作Sarsa算法。一个完整的控制流程如下:
值得注意的是,这里仍然使用$\epsilon-greedy$软策略方式生成策略。此外,若要Sarsa算法收敛到最优动作值函数,需要保证每一个状态-动作对访问无限次。
6.5 Q-learning: Off-policy TD Control(Q-learning:离线TD控制)
在离线控制中,可以直接学习最优动作值函数,而最优动作值函数与当前选择策略无关。使用预测算法Q-Learning如下:
一个完整的控制算法如下:
6.6 Expected Sarsa(期望Sarsa)
一种Sarsa的改进算法为期望Sarsa算法,即将Q-Learning中的求最大值改为求期望,公式如下:
Q-Learning算法和期望Sarsa算法的回溯图分别如下:
这里,可以将Q-Learning看做是期望Sarsa的一种特殊形式,则期望Sarsa也变成离线策略。一般而言,期望Sarsa是一种TD算法的通用形式,涵盖在线策略和离线策略。
6.7 Maximization Bias and Double Learning(最大值偏差和双重学习)
上述所有控制算法大多采用了最大值操作,例如Q-Learning。这样的最大值操作可能会带来最大值偏差,在估计初始阶段,偏差较大。
一种解决方案是可以采用双重学习技术,即独立使用两个值函数估计,一个用于选取最大值操作,另一个用于对某个动作选取值函数,即$Q { 1 } \left( \arg \max { a } Q _ { 2 } ( a ) \right)$。如果在Q-Learning中,则双重Q-Learning使用如下控制算法:
6.8 Games, Afterstates, and Other Special Cases(游戏,Afterstates和其他特殊情况)
一些特殊的任务具有特殊的值函数,例如填字游戏中,其值函数既不是状态值函数,也不是动作值函数,而是执行某个动作后的位置分布图对应状态的值函数。这种状态称为afterstates,值函数称为afterstates值函数。
这些特殊的情况仍然适用广义策略迭代方法,也需要考虑在线策略和离线策略来平衡探索和开发。