Ⅴ. 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 ]\),可以改写为

\[V(S_t)\leftarrow V(S_t)+\alpha [G_t-V(S_t)] \tag{5.1} \]

类似地,TD学习的更新如下

\[V(S_t)\leftarrow V(S_t)+\alpha [R_{t+1}+\gamma V(S_{t+1})-V(S_t)] \tag{5.2} \]

对比上述两种方法,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可以写成

\[\delta_t\doteq R_{t+1}+\gamma V(S_{t+1})-V(S_t) \]

由上可以得到,公式\((5.1)\)中的MC error为TD error之和,推导如下

\[\begin{aligned} G_{t}-V\left(S_{t}\right) &=R_{t+1}+\gamma G_{t+1}-V\left(S_{t}\right)+\gamma V\left(S_{t+1}\right)-\gamma V\left(S_{t+1}\right) \\ &=\delta_{t}+\gamma\left(G_{t+1}-V\left(S_{t+1}\right)\right) \\ &=\delta_{t}+\gamma \delta_{t+1}+\gamma^{2}\left(G_{t+2}-V\left(S_{t+2}\right)\right) \\ &=\delta_{t}+\gamma \delta_{t+1}+\gamma^{2} \delta_{t+2}+\cdots+\gamma^{T-t-1} \delta_{T-1}+\gamma^{T-t}\left(G_{T}-V\left(S_{T}\right)\right) \\ &=\delta_{t}+\gamma \delta_{t+1}+\gamma^{2} \delta_{t+2}+\cdots+\gamma^{T-t-1} \delta_{T-1}+\gamma^{T-t}(0-0) \\ &=\sum_{k=t}^{T-1} \gamma^{k-t} \delta_{k} \end{aligned} \]

TD控制

同步策略控制

  1. Sarsa

Sarsa学习的是动作价值函数,即给定状态\(s\)以及动作\(a\),估计出在当前策略下所有对应的\(q_\pi (s,a)\),MDP是可以表示为下图

Sarsa_Sequence

Sarsa的更新定义为

\[Q(S_t,A_t)\leftarrow Q(S_t,A_t)+\alpha [R_{t+1}+\gamma Q(S_{t+1},A_{t+1})-Q(S_t,A_t)] \]

该更新规则用到了五元组\((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\)的依赖程度。

  1. 期望Sarsa

Sarsa更新目标中的\(Q(S_{t+1},A_{t+1})\)是对下一个状态\(S_{t+1}\)任取一动作\(A_{t+1}\)估计得到的动作价值函数,会使更新存在方差。为了消除因为随机选择\(A_{t+1}\)产生的方差,替代地使用了期望值,期望Sarsa的更新定义为

\[\begin{aligned} Q(S_t,A_t) &\leftarrow Q(S_t,A_t)+\alpha [R_{t+1}+\gamma\mathbb{E}[Q(S_{t+1},A_{t+1})|S_{t+1}]-Q(S_t,A_t)] \\ &\leftarrow Q(S_t,A_t)+\alpha[R_{t+1}+\sum_a \pi(a|S_{t+1})Q(S_{t+1},a)-Q(S_t,A_t)] \end{aligned}\]

相比于Sarsa,期望Sarsa的性能稳定提升。

异步策略控制

  1. Q-Learning

Q-Learning是一种经典的异步策略学习算法,且在深度强化学习中使用也很广泛。它的更新为

\[Q(S_t,A_t)\leftarrow Q(S_t,A_t)+\alpha [R_{t+1}+\gamma \max_a Q(S_{t+1},a)-Q(S_t,A_t)] \]

已学的动作价值函数\(Q\)直接近似最优动作价值函数\(q_*\),与生成决策序列轨迹的策略无关。

  1. 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,更新如下

\[Q_1(S_t,A_t)\leftarrow Q_1(S_t,A_t)+\alpha [R_{t+1}+\gamma Q_2(S_{t+1},\arg\max_a Q_1(S_{t+1},a)-Q_1(S_t,A_1))] \]


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)

posted @ 2020-11-04 21:46  Hugh_Cai  阅读(166)  评论(0编辑  收藏  举报