从不动点视角理解 TD(0):为什么用 TD target 更新是合理的?

关于TD-Learning可以到专栏查看:强化学习基础06-1 TD-Learning

1- TD-Learning的学习目标理解

在强化学习中,TD(0) 是最经典、也是最容易让人困惑的一种方法。
困惑通常来自这样一个问题:

为什么可以用
r t + 1 + γ V ( s t + 1 ) r_{t+1} + \gamma V(s_{t+1}) rt+1+γV(st+1)
去更新当前状态的价值?

下面我们从递推结构 + 不动点 + 收缩映射的角度,对 TD(0) 做一个解释性推导。


1. TD(0) 的基本更新公式

TD(0) 的状态价值更新规则为:

V ( s t ) ← V ( s t ) + α [ r t + 1 + γ V ( s t + 1 ) − V ( s t ) ] \boxed{ V(s_t) \leftarrow V(s_t) + \alpha \big[r_{t+1} + \gamma V(s_{t+1}) - V(s_t)\big] } V(st)V(st)+α[rt+1+γV(st+1)V(st)]

其中:

  • r t + 1 + γ V ( s t + 1 ) r_{t+1} + \gamma V(s_{t+1}) rt+1+γV(st+1)TD 目标(TD target)
  • δ t = r t + 1 + γ V ( s t + 1 ) − V ( s t ) \delta_t = r_{t+1} + \gamma V(s_{t+1}) - V(s_t) δt=rt+1+γV(st+1)V(st)TD 误差(TD error)

直观上,TD 误差刻画的是:

“当前价值估计” 与 “基于一步未来推回来的估计” 之间的偏差


2. 将 TD 更新写成(递推 & 梯度下降)形式

我们可以把 TD 更新写成等价的递推形式:

V t + 1 ( s t ) = V t ( s t ) − α [ V t ( s t ) − ( r t + 1 + γ V t ( s t + 1 ) ) ] V_{t+1}(s_t)=V_t(s_t)-\alpha \big[V_t(s_t) - (r_{t+1} + \gamma V_t(s_{t+1}))\big] Vt+1(st)=Vt(st)α[Vt(st)(rt+1+γVt(st+1))]

这一步非常重要,因为它揭示了:

TD 更新并不是随意的修正,而是一个“向目标靠拢”的过程


3. 引入 TD 目标作为中间量

为了简化记号,定义:

v t ′ : = r t + 1 + γ V t ( s t + 1 ) v_t' := r_{t+1} + \gamma V_t(s_{t+1}) vt:=rt+1+γVt(st+1)

于是更新公式可以写成:

V t + 1 ( s t ) = V t ( s t ) − α [ V t ( s t ) − v t ′ ] V_{t+1}(s_t)=V_t(s_t) - \alpha \big[V_t(s_t) - v_t'\big] Vt+1(st)=Vt(st)α[Vt(st)vt]

这表明:

TD(0) 在每一步,都是在把 V ( s t ) V(s_t) V(st) 拉向当前 TD 目标 v t ′ v_t' vt


4. TD 更新的收缩性质

我们现在研究一次更新前后, V ( s t ) V(s_t) V(st) 与 TD 目标的距离变化。

对等式两边同时减去 v t ′ v_t' vt

V t + 1 ( s t ) − v t ′ = V t ( s t ) − v t ′ − α [ V t ( s t ) − v t ′ ] V_{t+1}(s_t) - v_t' =V_t(s_t) - v_t' - \alpha \big[V_t(s_t) - v_t'\big] Vt+1(st)vt=Vt(st)vtα[Vt(st)vt]

整理可得:

V t + 1 ( s t ) − v t ′ = ( 1 − α ) ( V t ( s t ) − v t ′ ) V_{t+1}(s_t) - v_t'=(1 - \alpha)\big(V_t(s_t) - v_t'\big) Vt+1(st)vt=(1α)(Vt(st)vt)

对两边取绝对值:

∣ V t + 1 ( s t ) − v t ′ ∣ = ( 1 − α )   ∣ V t ( s t ) − v t ′ ∣ |V_{t+1}(s_t) - v_t'|=(1 - \alpha)\,|V_t(s_t) - v_t'| Vt+1(st)vt=(1α)Vt(st)vt

由于学习率满足:

0 < 1 − α < 1 0 < 1 - \alpha < 1 0<1α<1

于是得到不等式:

∣ V t + 1 ( s t ) − v t ′ ∣ ≤ ∣ V t ( s t ) − v t ′ ∣ |V_{t+1}(s_t) - v_t'|\le|V_t(s_t) - v_t'| Vt+1(st)vtVt(st)vt


5. 结论

上面的不等式说明:

一次 TD 更新一定会缩小
当前价值估计与 TD 目标之间的距离

也就是说:

V ( s t )    ⟶    v t ′ V(s_t) \;\longrightarrow\; v_t' V(st)vt

这是一个严格的收缩过程,而不是经验性的“调一调”。


2- TD target 替代 G t G_t Gt的合理性解释

回顾一下贝尔曼期望方程
v π ( s ) = E π [ R t + 1 + γ G t + 1 ∣ S t = s ] = E π [ R t + 1 ∣ S t = s ] + γ E π [ G t + 1 ∣ S t = s ] \begin{align} v_{\pi}(s) &= \mathbb{E}_{\pi}[R_{t+1} + \gamma G_{t+1} | S_t = s] \\ &= \mathbb{E}_{\pi}[R_{t+1} | S_t = s] + \gamma \mathbb{E}_{\pi}[G_{t+1} | S_t = s] \end{align} vπ(s)=Eπ[Rt+1+γGt+1St=s]=Eπ[Rt+1St=s]+γEπ[Gt+1St=s]

由于MDP的马尔可夫性:
E [ G t + 1 ​ ∣ s t ​ = s ] = E s t + 1 ​ ∼ P ( ⋅ ∣ s , π ( s ) ) ​ [ V π ( s t + 1 ​ ) ] E[G_{t+1}​∣s_t​=s]=E_{s_{t+1}​∼P(⋅∣s,π(s))}​[V_π(s_{t+1}​)] E[Gt+1st=s]=Est+1P(s,π(s))[Vπ(st+1)]

这一步主要使用全期望公式进行推导,把左边展开成联合概率的格式。比较繁琐,可以自行推导一下。这里先略过,我们只需要结论。
btw,推导一下这个式子可以帮助你理解Discounted Retrun和Value State的关系

于是我们可以得到:
V π ( s ) = E [ r t + 1 + γ V π ( s t + 1 ) ∣ s t = s ] V^\pi(s)=\mathbb{E}\big[r_{t+1} + \gamma V^\pi(s_{t+1}) \mid s_t=s\big] Vπ(s)=E[rt+1+γVπ(st+1)st=s]

这意味着:

  • V = V π V = V^\pi V=Vπ
    V ( s t ) = E [ v t ′ ] V(s_t) = \mathbb{E}[v_t'] V(st)=E[vt]
  • 即:真实价值函数是 TD 更新的一个不动点

TD 学习的本质不是在“估计回报”,而是在:

寻找一个函数,使它在“一步时间推进”后仍保持自洽


3- 为什么反复迭代会收敛?

可以从三个层面理解:

  1. 局部层面
    每一次更新, V ( s t ) V(s_t) V(st) 都向当前 TD 目标收缩。

  2. 全局层面
    TD 目标来自贝尔曼算子,而该算子在 γ < 1 \gamma < 1 γ<1 时是收缩映射。

  3. 长期层面
    在马尔可夫链遍历与合适步长条件下,
    随机 TD 更新在期望意义下逼近唯一不动点 V π V^\pi Vπ

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐