Ⅴ. Temporal-Difference Learning
Dictum:
Although the world is full of suffering, it is full also of the overcoming of it. -- Helen Keller
时序差分学习(Temporal-Difference Learning, TD)结合了DP和MC方法的优点,主要有两个优势:
- 相比于DP,它不需要一个环境模型,可以直接从经验中学习
- 相比于MC,价值函数的更新不必等到交互终止
TD预测
每次访问型MC方法的价值函数更新\(V_(n+1)\doteq V_n + \frac{W_n}{C_n}[G_n-V_n ]\),可以改写为
类似地,TD学习的更新如下
对比上述两种方法,MC方法必须等到一个episode的末尾才能确定对\(V(S_t)\)的增量,因为只有此刻\(G_t\)已知;而TD学习只需要等待下一个时序步长,它的目标函数为\(R_{t+1}+\gamma V(S_{t+1})\),该方法也被称为TD(0)。
【注】它们的更新都可以看作\(NewEstimate\leftarrow OldEstimate+StepSize[Target-OldEstimate]\)的形式。同时,MC和TD更新被称为采样更新(sample updates),而DP更新被称为期望更新(expected updates);采样更新是基于采样得到的单个后继节点的样本数据,而期望更新是基于所有可能后继节点的完整分布
公式\((5.2)\)括号中的数值是一种误差,被称为TD error,用于衡量当前时刻\(t\)状态\(S_t\)的估计值与更好的估计值\(R_{t+1}+\gamma V(S_{t+1})\)之间的差距,TD(0)的TD error可以写成
由上可以得到,公式\((5.1)\)中的MC error为TD error之和,推导如下
TD控制
同步策略控制
- Sarsa
Sarsa学习的是动作价值函数,即给定状态\(s\)以及动作\(a\),估计出在当前策略下所有对应的\(q_\pi (s,a)\),MDP是可以表示为下图
Sarsa的更新定义为
该更新规则用到了五元组\((S_t,A_t,R_{t+1},S_{t+1},A_{t+1})\)的所有元素,因此被称为Sarsa。如果\(S_{t+1}\)为终止状态,将\(Q(S_{t+1},A_{t+1})\)定义为0。Sarsa的收敛性取决于策略对\(Q\)的依赖程度。
- 期望Sarsa
Sarsa更新目标中的\(Q(S_{t+1},A_{t+1})\)是对下一个状态\(S_{t+1}\)任取一动作\(A_{t+1}\)估计得到的动作价值函数,会使更新存在方差。为了消除因为随机选择\(A_{t+1}\)产生的方差,替代地使用了期望值,期望Sarsa的更新定义为
相比于Sarsa,期望Sarsa的性能稳定提升。
异步策略控制
- Q-Learning
Q-Learning是一种经典的异步策略学习算法,且在深度强化学习中使用也很广泛。它的更新为
已学的动作价值函数\(Q\)直接近似最优动作价值函数\(q_*\),与生成决策序列轨迹的策略无关。
- Double Q-Learning
上述的算法都包含最大化操作,即都会寻找当前状态的最优动作价值函数,使用相同的样本去确定最大化价值的动作并对它的价值进行估计,会产生正的最大化偏差。因此,可以将样本分成两个集合,并用它们学习两个独立的估计\(Q_1(a)\)和\(Q_2(a)\),它们都是对真实价值\(q(a)\)的估计;接着用其中一个估计确定最优动作,用另一个估计出该最优动作的价值,如\(Q_1\)确定最优动作\(A^*=\arg\max_aQ(a)\),然后用\(Q_2\)估计该动作的价值\(Q_2(A^*)=Q_2\big(\arg\max_a Q_1(a)\big)\)。由于\(\mathbb{E}[Q_2(A^*)]=q(A^*)\),所以该估计是无偏估计。
【注】尽管需要学习两个估计值,但对每个样本集合只更新一次估计值,因此,只需要两倍的内存,无需增加额外的计算量
最经典的双学习方法就是double Q-Learning,更新如下
References
Richard S. Sutton and Andrew G. Barto. Reinforcement Learning: An Introduction (Second Edition). 2018.
Csaba Szepesvári. Algorithms for Reinforcement Learning. 2009.
Course: UCL Reinforcement Learning Course (by David Silver)