强化学习(五) - 时序差分学习(Temporal-Difference Learning)及其实例
如果非要找出一种思想作为强化学习的核心和新意,那无疑是时序差分学习(Temporal-Difference Learning) 或者称为 时序差分迭代法,以下简称为TD。TD学习是蒙特卡洛思想和动态编程(DP)思想的结合。与蒙特卡洛方法一样,TD方法可以直接从原始经验中学习,而不需要环境的动态模型。和DP一样,TD方法部分地根据其他学习到的估计值更新估计值,而不需要等待最终的结果(它们是引导式的)。TD、DP和蒙特卡洛方法之间的关系是强化学习理论中一个反复出现的主题。
像往常一样,我们首先关注策略评估或预测问题,即估计给定策略 π π π的价值函数 v π v_π vπ的问题。 对于控制问题(寻找最优策略),DP、TD和蒙特卡洛方法都使用了广义策略迭代(GPI)的一些变化。方法中的差异主要是它们在预测问题上的方法差异。
5.1 TD预测
TD和蒙特卡洛方法都是利用经验来解决预测问题。给定某个策略 π π π之后的一些经验,两种方法都会对该经验中出现的非终端状态 S t S_t St更新其对 v π v_π vπ的估计 V V V。粗略地讲,蒙特卡洛方法要等到访问后的回报率已知,然后将该回报率作为 V ( S t ) V(S_t) V(St)的目标。一个适用于非稳态环境的简单的每次访问蒙特卡洛方法是
V ( S t ) ← V ( S t ) + α [ G t − V ( S t ) ] (5.1) V(S_t) \leftarrow V(S_t)+\alpha[G_t-V(S_t)] \tag{5.1} V(St)←V(St)+α[Gt−V(St)](5.1)
其中 G t G_t Gt是时间 t t t之后的实际返回, α α α 是一个恒定的步长参数。我们称这种方法为常数- α α α MC。蒙特卡洛方法必须等到事件结束才能确定对 V ( S t ) V(S_t) V(St)的增量(只有这样才能知道 G t G_t Gt),而TD方法只需要等到下一个时间步长。在时间 t + 1 t+1 t+1时,它们立即形成一个目标,并利用观察到的回报 R t + 1 R_{t+1} Rt+1和估计值 V ( S t + 1 ) V(S_{t+1}) V(St+1)进行有用的更新。最简单的TD方法
V ( S t ) ← V ( S t ) + α [ R t + 1 + γ V ( S t + 1 ) − V ( S t ) ] (5.2) V (S_t) ← V (S_t) + α[R_{t+1} + γV (S_{t+1}) − V (S_t)]\tag{5.2} V(St)←V(St)+α[Rt+1+γV(St+1)−V(St)](5.2)
在过渡到 S t + 1 S_{t+1} St+1并收到 R t + 1 R_{t+1} Rt+1的回报时时立即进行更新。实际上,蒙特卡洛更新的目标是 G t G_t Gt,而TD更新的目标是 R t + 1 + γ V ( S t + 1 ) R_{t+1}+γV(S_{t+1}) Rt+1+γV(St+1)。这种TD方法被称为TD(0),或单步TD。下面的方框以程序的形式完整地描述了TD(0)。
Tabular TD(0) for estimating v π v_π vπ

因为TD(0)的更新部分基于现有的估计,所以我们说它是一个自举方法(bootstrapping method),就像DP一样。
v π ( s ) ≐ E π [ G t ∣ S t = s ] (5.3) \begin{aligned}v_\pi(s)& \doteq \mathbb{E}_\pi[G_t|S_t=s]\\\end{aligned}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \tag{5.3} vπ(s)≐Eπ[Gt∣St=s] (5.3)
v π ( s ) ≐ E π [ G t ∣ S t = s ] = E π [ R t + 1 + γ G t + 1 ∣ S t = s ] = E π [ R t + 1 + γ v π ( S t + 1 ) ∣ S t = s ] (5.4) \begin{aligned}v_\pi(s)& \doteq \mathbb{E}_\pi[G_t|S_t=s]\\&= \mathbb{E}_\pi[R_{t+1 }+\gamma G_{t+1}|S_t=s]\\&= \mathbb{E}_\pi[R_{t+1}+\gamma v_\pi(S_{t+1})|S_t=s]\end{aligned}\tag{5.4} vπ(s)≐Eπ[Gt∣St=s]=Eπ[Rt+1+γGt+1∣St=s]=Eπ[Rt+1+γvπ(St+1)∣St=s](5.4)
粗略地讲,蒙特卡洛方法使用对(5.3)的估计作为目标,而DP方法使用对(5.4)的估计作为目标。蒙特卡洛目标是一个估计值,因为(5.3)中的预期值是不知道的;用一个样本收益来代替实际预期收益。DP目标是一个估计值,不是因为预期值(期望值假设完全由一个环境模型提供),而是因为 v π ( S t + 1 ) v_π(S_{t+1}) vπ(St+1)不知道,而使用当前的估计值 V ( S t + 1 ) V(S_{t+1}) V(St+1)来代替。TD目标是一个估计值,原因有二:它对(5.4)中的预期值进行采样,并且它使用当前估计值 V V V代替真实的 v π v_π vπ。因此,TD方法结合了蒙特卡洛的采样和DP的引导。正如我们将看到的那样,这可以使我们在获得蒙特卡洛和DP方法的优点方面有更好的结果。

上图为tabular TD(0)的备份图。备份图顶部的状态节点的值估计是根据从它到紧接着的状态的一个样本转换来更新的。我们把TD和蒙特卡洛更新称为样本更新,因为它们涉及到向前看一个样本的后续状态(或状态动作对),利用后续状态的值和沿途的回报来计算一个备份值,然后相应地更新原始状态(或状态动作对)的值。样本更新与DP方法的预期更新不同的是,它们是基于单个样本继任者,而不是基于所有可能的继任者的完整分布。
最后,请注意,TD(0)更新中括号内的量是一种误差,衡量 S t S_t St的估计值与较好的估计值 R t + 1 + γ V ( S t + 1 ) R_{t+1}+γV(S_{t+1}) Rt+1+γV(St+1)之间的不同。这个量称为TD误差,在整个强化学习中以各种形式产生。
δ t ≐ R t + 1 + γ V ( S t + 1 ) − V ( S t ) (5.5) δ_t\doteq R_{t+1} + γV (S_{t+1}) − V (S_t)\tag{5.5} δt≐Rt+1+γV(St+1)−V(St)(5.5)
请注意,每次的TD误差是当时所做估计的误差。因为TD误差取决于下一个状态和下一个奖励,所以它实际上要到一个时间步骤之后才能得到。也就是说, δ t δ_t δt是 V ( S t ) V(S_t) V(St)中的误差,在时间 t + 1 t+1 t+1时可用。另外要注意的是,如果数组 V V V在事件中不发生变化(因为在蒙特卡洛方法中不发生变化),那么蒙特卡洛误差可以写成TD误差之和。
G t − V ( S t ) = R t + 1 + γ G t + 1 − V ( S t ) + γ V ( S t + 1 ) − γ V ( S t + 1 ) = δ t + γ ( G t + 1 − V ( S t + 1 ) ) = δ t + γ δ t + 1 + γ 2 ( G t + 2 − V ( S t + 2 ) ) = δ t + γ δ t + 1 + γ 2 δ t + 2 + ⋅ ⋅ ⋅ + γ T − t − 1 δ T − 1 + γ T − t ( G T − V ( S T ) ) = δ t + γ δ t + 1 + γ 2 δ t + 2 + ⋅ ⋅ ⋅ + γ T − t − 1 δ T − 1 + γ T − t ( 0 − 0 ) = ∑ k = t T − 1 γ k − t δ k . (5.6) \begin{aligned}G_t − V (S_t) &= R_{t+1} + γG_{t+1} − V (St) + γV (S_{t+1}) − γV (S_{t+1})\\ &= δ_t + γ(G_{t+1} − V (S_{t+1}))\\ &= δ_t + γδ_{t+1} + γ^2(G_{t+2} − V (S_{t+2}))\\ &= δ_t + γδ_{t+1} + γ^2δ_{t+2} + ··· + γ^{T−t−1}δ_{T−1} + γ^{T−t}(G_T − V(S_T))\\ &= δ_t + γδ_{t+1} + γ^2δ_{t+2} + ··· + γ^{T−t−1}δ_{T−1} + γ^{T−t} (0 − 0)\\ &= \sum^{T−1}_{k=t}\gamma^{k-t}\delta_k .\end{aligned}\tag{5.6} Gt−V(St)=Rt+1+γGt+1−V(St)+γV(St+1)−γV(St+1)=δ

本文深入探讨强化学习核心——时序差分学习(TD Learning),解析TD预测方法及其优势,对比蒙特卡洛与动态规划,涵盖Sarsa、Q-Learning、Expected Sarsa算法,并通过实例展示其在悬崖寻路问题中的应用。
最低0.47元/天 解锁文章
1008

被折叠的 条评论
为什么被折叠?



