强化学习中的策略梯度(Policy Gradient)是一类直接优化策略的方法,与基于值函数的方法(如Q-learning)不同,它通过参数化策略并沿梯度方向更新参数,以最大化长期累积奖励。策略梯度方法因其在处理连续动作空间、高维状态空间以及随机策略方面的优势,成为机器人控制、游戏AI等领域的核心技术。本文将从基础理论、经典算法、实现技巧以及实际应用等方面深入解析策略梯度方法。
策略梯度的核心思想
策略梯度方法的核心是直接参数化策略函数 p i θ ( a ∣ s ) pi_\theta(a|s) piθ(a∣s),其中 θ \theta θ为策略参数。其目标是通过调整 θ \theta θ,最大化期望累积奖励 J ( θ ) = E τ ∼ π θ [ ∑ t = 0 T γ t r t ] J(\theta) = \mathbb{E}_{\tau \sim \pi_\theta} \left[ \sum_{t=0}^T \gamma^t r_t \right] J(θ)=Eτ∼πθ[∑t=0Tγtrt],其中 τ \tau τ表示轨迹(状态-动作序列), γ \gamma γ为折扣因子。
策略梯度定理(Policy Gradient Theorem)是此类方法的理论基础。它表明,目标函数
J
(
θ
)
J(\theta)
J(θ)的梯度可表示为:
∇
θ
J
(
θ
)
=
E
τ
∼
π
θ
[
∑
t
=
0
T
∇
θ
log
π
θ
(
a
t
∣
s
t
)
⋅
Q
π
θ
(
s
t
,
a
t
)
]
\nabla_\theta J(\theta) = \mathbb{E}_{\tau \sim \pi_\theta} \left[ \sum_{t=0}^T \nabla_\theta \log \pi_\theta(a_t|s_t) \cdot Q^{\pi_\theta}(s_t, a_t) \right]
∇θJ(θ)=Eτ∼πθ[t=0∑T∇θlogπθ(at∣st)⋅Qπθ(st,at)]
其中
Q
π
θ
(
s
t
,
a
t
)
Q^{\pi_\theta}(s_t, a_t)
Qπθ(st,at)是状态-动作价值函数。通过采样轨迹并计算梯度,参数
θ
\theta
θ可沿梯度方向更新以提升策略性能。
经典算法与伪代码
1. REINFORCE算法
REINFORCE是最基础的策略梯度算法,直接使用蒙特卡罗方法估计累积奖励。
伪代码:
初始化策略参数
θ
\theta
θ
for 每个迭代轮次:
采样轨迹
τ
=
(
s
0
,
a
0
,
r
0
,
.
.
.
,
s
T
,
a
T
,
r
T
)
\tau = (s_0, a_0, r_0, ..., s_T, a_T, r_T)
τ=(s0,a0,r0,...,sT,aT,rT)
计算累积折扣奖励
G
t
=
∑
k
=
t
T
γ
k
−
t
r
k
G_t = \sum_{k=t}^T \gamma^{k-t} r_k
Gt=∑k=tTγk−trk
计算梯度估计:
∇
θ
J
(
θ
)
≈
∑
t
=
0
T
∇
θ
log
π
θ
(
a
t
∣
s
t
)
⋅
G
t
\nabla_\theta J(\theta) \approx \sum_{t=0}^T \nabla_\theta \log \pi_\theta(a_t|s_t) \cdot G_t
∇θJ(θ)≈∑t=0T∇θlogπθ(at∣st)⋅Gt
更新参数:
θ
←
θ
+
α
∇
θ
J
(
θ
)
\theta \leftarrow \theta + \alpha \nabla_\theta J(\theta)
θ←θ+α∇θJ(θ)
REINFORCE的优点是实现简单,但缺点是高方差(由于蒙特卡罗估计),导致训练不稳定。
2. Actor-Critic算法
Actor-Critic结合策略梯度(Actor)与值函数近似(Critic),通过Critic估计
Q
(
s
,
a
)
Q(s,a)
Q(s,a)或优势函数
A
(
s
,
a
)
A(s,a)
A(s,a)来降低方差。
伪代码:
初始化Actor参数
θ
\theta
θ和Critic参数
ϕ
\phi
ϕ
for 每个时间步:
根据
π
θ
(
a
∣
s
)
\pi_\theta(a|s)
πθ(a∣s)选择动作
a
t
a_t
at,执行并观测
r
t
+
1
,
s
t
+
1
r_{t+1}, s_{t+1}
rt+1,st+1
计算TD误差:
δ
t
=
r
t
+
1
+
γ
V
ϕ
(
s
t
+
1
)
−
V
ϕ
(
s
t
)
\delta_t = r_{t+1} + \gamma V_\phi(s_{t+1}) - V_\phi(s_t)
δt=rt+1+γVϕ(st+1)−Vϕ(st)
更新Critic:
ϕ
←
ϕ
−
α
ϕ
δ
t
∇
ϕ
V
ϕ
(
s
t
)
\phi \leftarrow \phi - \alpha_\phi \delta_t \nabla_\phi V_\phi(s_t)
ϕ←ϕ−αϕδt∇ϕVϕ(st)
计算优势估计:
A
^
(
s
t
,
a
t
)
=
δ
t
\hat{A}(s_t, a_t) = \delta_t
A^(st,at)=δt
更新Actor:
θ
←
θ
+
α
θ
∇
θ
log
π
θ
(
a
t
∣
s
t
)
⋅
A
^
(
s
t
,
a
t
)
\theta \leftarrow \theta + \alpha_\theta \nabla_\theta \log \pi_\theta(a_t|s_t) \cdot \hat{A}(s_t, a_t)
θ←θ+αθ∇θlogπθ(at∣st)⋅A^(st,at)
Actor-Critic通过Critic提供低方差的目标值,显著提升训练效率,成为PPO、A3C等现代算法的基础。
策略梯度的关键改进技术
-
基线(Baseline)方法
在梯度估计中引入基线函数 b ( s t ) b(s_t) b(st),将梯度公式修正为:
∇ θ J ( θ ) = E [ ∑ t = 0 T ∇ θ log π θ ( a t ∣ s t ) ⋅ ( Q ( s t , a t ) − b ( s t ) ) ] \nabla_\theta J(\theta) = \mathbb{E} \left[ \sum_{t=0}^T \nabla_\theta \log \pi_\theta(a_t|s_t) \cdot (Q(s_t, a_t) - b(s_t)) \right] ∇θJ(θ)=E[t=0∑T∇θlogπθ(at∣st)⋅(Q(st,at)−b(st))]
常见基线包括状态价值函数 V ( s t ) V(s_t) V(st),此时优势函数 A ( s , a ) = Q ( s , a ) − V ( s ) A(s,a) = Q(s,a) - V(s) A(s,a)=Q(s,a)−V(s)。基线可有效降低方差而不引入偏差。 -
优势函数估计
优势函数 A ( s , a ) A(s,a) A(s,a)衡量动作相对于平均水平的优劣。广义优势估计(GAE)结合多步TD误差,平衡偏差与方差:
A ^ t G A E = ∑ l = 0 T − t ( γ λ ) l δ t + l \hat{A}_t^{GAE} = \sum_{l=0}^{T-t} (\gamma \lambda)^l \delta_{t+l} A^tGAE=l=0∑T−t(γλ)lδt+l
其中 λ \lambda λ为权衡参数, δ t \delta_t δt为TD误差。 -
信任域优化
策略更新幅度过大会导致性能崩溃。信任域方法(如TRPO、PPO)通过约束策略更新的KL散度或剪切目标函数,确保更新稳定性。
PPO的剪切目标函数为:
J C L I P ( θ ) = E [ min ( π θ ( a ∣ s ) π θ o l d ( a ∣ s ) A ^ ( s , a ) , clip ( π θ ( a ∣ s ) π θ o l d ( a ∣ s ) , 1 − ϵ , 1 + ϵ ) A ^ ( s , a ) ) ] J^{CLIP}(\theta) = \mathbb{E} \left[ \min\left( \frac{\pi_\theta(a|s)}{\pi_{\theta_{old}}(a|s)} \hat{A}(s,a), \text{clip}\left(\frac{\pi_\theta(a|s)}{\pi_{\theta_{old}}(a|s)}, 1-\epsilon, 1+\epsilon\right) \hat{A}(s,a) \right) \right] JCLIP(θ)=E[min(πθold(a∣s)πθ(a∣s)A^(s,a),clip(πθold(a∣s)πθ(a∣s),1−ϵ,1+ϵ)A^(s,a))]
策略梯度的应用场景
-
连续控制任务
在机器人控制(如OpenAI Gym的MuJoCo环境)中,策略梯度可直接输出连续动作(如关节力矩),避免值函数方法的离散化误差。 -
部分可观测环境
当状态信息不完全时(如视觉输入),策略梯度结合循环神经网络(RNN)或注意力机制,可建模历史状态依赖。 -
多智能体协作
在多智能体强化学习(MARL)中,策略梯度支持分布式策略优化,适用于群体机器人协作或游戏对战。 -
复杂策略建模
在需要随机策略的场景(如德州扑克博弈),策略梯度可灵活表示动作概率分布,实现基于不确定性的决策。
挑战与解决方案
-
高方差问题
- 解决方案:使用Critic网络估计优势函数、引入GAE、或采用自然梯度(Natural Gradient)方法。
-
样本效率低
- 解决方案:结合经验回放(如DPPO)、或模型预测控制(MBPO)提升数据利用率。
-
策略收敛性
- 解决方案:信任域方法(TRPO、PPO)约束策略更新幅度,避免震荡。
-
探索不足
- 解决方案:在策略中增加熵正则化项,鼓励动作多样性;或使用噪声注入(如SAC算法)。
总结
策略梯度方法通过直接优化参数化策略,克服了值函数方法在连续动作和高维状态空间中的局限性,成为复杂决策任务的首选方案。从基础的REINFORCE到现代的PPO、SAC,策略梯度通过引入优势估计、信任域约束等技术不断提升稳定性与效率。其在机器人控制、游戏AI、自动驾驶等领域的成功应用,验证了其强大的建模能力。未来,随着与深度学习、多任务学习的进一步融合,策略梯度有望在通用人工智能、实时决策系统中发挥更核心的作用。