【强化学习概念-时间差分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;θ):策略函数,表示在状态 s s s 下选择动作 a a a 的概率。
- A ( s , a ) A(s, a) A(s,a):优势函数,表示在状态 s s s 下采取动作 a a a 的价值相对于平均策略的优势。
- ∇ θ 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):
- 表示当前选择的动作 a a a 比预期更好。
- 策略更新会增加在状态 s s s 下选择动作 a a a 的概率。
-
负的 TD 误差 ( δ < 0 \delta < 0 δ<0):
- 表示当前选择的动作 a a a 比预期更差。
- 策略更新会减少在状态 s s s 下选择动作 a a a 的概率。
-
TD 误差的绝对值大小 ( ∣ δ ∣ |\delta| ∣δ∣):
- 决定了策略更新的幅度。
- 如果误差较大,说明当前策略的偏差较大,需要更大幅度的更新。
因此,TD 误差提供了一个动态反馈机制,用于告诉 Actor:
- 当前的策略选择是否合理。
- 策略需要多大程度的调整。
3. 具体过程
在 Actor 网络中:
-
生成动作:
- 给定状态 s s s,Actor 使用策略 π ( a ∣ s ; θ ) \pi(a|s; \theta) π(a∣s;θ) 生成动作 a a a。
-
与环境交互:
- 环境反馈即时奖励 r r r 和下一状态 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. 直观理解
假设当前状态 s s s:
- Actor 网络根据当前策略生成了一个动作 a a a,但这个动作可能并不最优。
- TD 误差告诉 Actor,这个动作 a a a 的好坏(通过即时奖励 r r r 和未来价值估计 V ( s ′ ) V(s') V(s′))。
- 如果动作 a a a 带来了高于预期的回报(正的 TD 误差),Actor 将倾向于更加频繁地选择 a a a。
- 如果动作 a a a 带来了低于预期的回报(负的 TD 误差),Actor 将减少选择 a a a 的概率。
通过这种机制,Actor 的策略逐步优化,以在不同状态下选择更优的动作。
5. 总结
TD 误差在 Actor 中的作用可以概括为:
- 衡量动作好坏:通过 δ > 0 \delta > 0 δ>0 或 δ < 0 \delta < 0 δ<0 告诉 Actor 动作 a a a 是高于还是低于预期。
- 动态调整策略:通过 ∣ δ ∣ |\delta| ∣δ∣ 的大小控制策略更新的强度。
- 引导策略优化:帮助 Actor 学习一个更优的策略,使得累计回报最大化。