【强化学习杂记】TD-Learning的数学理解
从不动点视角理解 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)−vt′∣≤∣Vt(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+1∣St=s]=Eπ[Rt+1∣St=s]+γEπ[Gt+1∣St=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+1∣st=s]=Est+1∼P(⋅∣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- 为什么反复迭代会收敛?
可以从三个层面理解:
-
局部层面
每一次更新, V ( s t ) V(s_t) V(st) 都向当前 TD 目标收缩。 -
全局层面
TD 目标来自贝尔曼算子,而该算子在 γ < 1 \gamma < 1 γ<1 时是收缩映射。 -
长期层面
在马尔可夫链遍历与合适步长条件下,
随机 TD 更新在期望意义下逼近唯一不动点 V π V^\pi Vπ。
更多推荐
所有评论(0)