【强化学习概念-时间差分TD】
在 Actor-Critic 算法中,时间差分(TD)误差对 Actor 的作用是引导策略改进。具体地说,TD 误差充当 策略梯度更新的权重,决定了策略改进的方向和幅度。
1. 策略梯度更新公式
在 Actor-Critic 中,Actor 网络优化的目标是最大化累计回报 J(θ)J(\theta)J(θ),其梯度为:
∇θJ(θ)=E[∇θlogπ(a∣s;θ)⋅A(s,a)]
\nabla_\theta J(\theta) = \mathbb{E}[\nabla_\theta \log \pi(a|s; \theta) \cdot A(s, a)]
∇θJ(θ)=E[∇θlogπ(a∣s;θ)⋅A(s,a)]
其中:
- π(a∣s;θ)\pi(a|s; \theta)π(a∣s;θ):策略函数,表示在状态 sss 下选择动作 aaa 的概率。
- A(s,a)A(s, a)A(s,a):优势函数,表示在状态 sss 下采取动作 aaa 的价值相对于平均策略的优势。
- ∇θlogπ(a∣s;θ)\nabla_\theta \log \pi(a|s; \theta)∇θlogπ(a∣s;θ):策略的梯度,表示策略改变对动作选择的敏感程度。
关键:在实际实现中,TD 误差 δ=r+γV(s′)−V(s)\delta = r + \gamma V(s') - V(s)δ=r+γV(s′)−V(s) 被用作优势函数的近似值:
A(s,a)≈δ
A(s, a) \approx \delta
A(s,a)≈δ
因此,策略梯度的更新公式可以写为:
∇θJ(θ)≈∇θlogπ(a∣s;θ)⋅δ
\nabla_\theta J(\theta) \approx \nabla_\theta \log \pi(a|s; \theta) \cdot \delta
∇θJ(θ)≈∇θlogπ(a∣s;θ)⋅δ
2. TD 误差在 Actor 中的作用
TD 误差 δ\deltaδ 的正负和大小直接决定了 Actor 的策略更新方向和强度:
-
正的 TD 误差 (δ>0\delta > 0δ>0):
- 表示当前选择的动作 aaa 比预期更好。
- 策略更新会增加在状态 sss 下选择动作 aaa 的概率。
-
负的 TD 误差 (δ<0\delta < 0δ<0):
- 表示当前选择的动作 aaa 比预期更差。
- 策略更新会减少在状态 sss 下选择动作 aaa 的概率。
-
TD 误差的绝对值大小 (∣δ∣|\delta|∣δ∣):
- 决定了策略更新的幅度。
- 如果误差较大,说明当前策略的偏差较大,需要更大幅度的更新。
因此,TD 误差提供了一个动态反馈机制,用于告诉 Actor:
- 当前的策略选择是否合理。
- 策略需要多大程度的调整。
3. 具体过程
在 Actor 网络中:
-
生成动作:
- 给定状态 sss,Actor 使用策略 π(a∣s;θ)\pi(a|s; \theta)π(a∣s;θ) 生成动作 aaa。
-
与环境交互:
- 环境反馈即时奖励 rrr 和下一状态 s′s's′。
-
计算 TD 误差:
- 使用 Critic 网络估计当前状态和下一状态的价值 V(s)V(s)V(s) 和 V(s′)V(s')V(s′),计算 TD 误差:
δ=r+γV(s′)−V(s) \delta = r + \gamma V(s') - V(s) δ=r+γV(s′)−V(s)
- 使用 Critic 网络估计当前状态和下一状态的价值 V(s)V(s)V(s) 和 V(s′)V(s')V(s′),计算 TD 误差:
-
更新策略:
- 结合 TD 误差更新 Actor 的策略参数 θ\thetaθ:
θ←θ+α⋅δ⋅∇θlogπ(a∣s;θ) \theta \leftarrow \theta + \alpha \cdot \delta \cdot \nabla_\theta \log \pi(a|s; \theta) θ←θ+α⋅δ⋅∇θlogπ(a∣s;θ) - 这里 α\alphaα 是学习率。
- 结合 TD 误差更新 Actor 的策略参数 θ\thetaθ:
4. 直观理解
假设当前状态 sss:
- Actor 网络根据当前策略生成了一个动作 aaa,但这个动作可能并不最优。
- TD 误差告诉 Actor,这个动作 aaa 的好坏(通过即时奖励 rrr 和未来价值估计 V(s′)V(s')V(s′))。
- 如果动作 aaa 带来了高于预期的回报(正的 TD 误差),Actor 将倾向于更加频繁地选择 aaa。
- 如果动作 aaa 带来了低于预期的回报(负的 TD 误差),Actor 将减少选择 aaa 的概率。
通过这种机制,Actor 的策略逐步优化,以在不同状态下选择更优的动作。
5. 总结
TD 误差在 Actor 中的作用可以概括为:
- 衡量动作好坏:通过 δ>0\delta > 0δ>0 或 δ<0\delta < 0δ<0 告诉 Actor 动作 aaa 是高于还是低于预期。
- 动态调整策略:通过 ∣δ∣|\delta|∣δ∣ 的大小控制策略更新的强度。
- 引导策略优化:帮助 Actor 学习一个更优的策略,使得累计回报最大化。
3179

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



