策略梯度算法
在强化学习中,策略梯度算法是一类直接优化策略的方法,与基于值函数的方法(如Q-learning)不同,它通过参数化策略并沿性能梯度方向更新参数来学习最优策略。策略梯度方法具有处理连续动作空间、收敛性保证等优点,已成为深度强化学习中的核心算法之一。本文将介绍策略梯度的基本定理、关键组件(如优势函数)以及Actor-Critic框架,并讨论其实际应用。
策略梯度定理
策略梯度定理是策略梯度算法的理论基础。它定义了策略性能指标 $J(\theta)$(如期望累积奖励)关于策略参数 $\theta$ 的梯度。具体来说,策略 $\pi_\theta(a|s)$ 是一个参数化的概率分布,表示在状态 s 下选择动作 a 的概率。策略梯度定理表明,梯度$\nabla_\theta J(\theta)$可以表示为:
$$\nabla_\theta J(\theta) = \mathbb{E}_{s \sim d^\pi, a \sim \pi_\theta} \left[ \nabla_\theta \log \pi_\theta(a|s) \, Q^\pi(s, a) \right]$$其中:
- $d^\pi(s)$是策略 π 下的状态分布,
- $Q^\pi(s, a)$是状态-动作值函数,表示在状态 s 执行动作 a 后的期望累积奖励。
这个公式允许我们通过采样轨迹来估计梯度,从而使用随机梯度上升优化策略。然而,直接使用$Q^\pi(s, a)$会导致高方差,因此通常引入基准函数(如状态值函数 $V^\pi(s)$)来减少方差。
优势函数
优势函数(Advantage Function)在策略梯度算法中起着关键作用,它用于衡量某个状态下采取某个动作相对于平均水平的优越性。优势函数定义为:
$$A(s, a) = Q(s, a) - V(s)$$其中:
- $Q(s,a)$ 是状态-动作值函数,
- $V(s)$ 是状态值函数,表示在状态 s 下的期望累积奖励。
为什么使用优势函数
1. 方差减小: 直接使用总收益(如蒙特卡洛估计)的梯度估计可能会导致高方差,因为总收益是一个随机变量。优势函数通过减去基准值 V(s) 可以减小这种方差,使梯度估计更加稳定。在策略梯度中,使用优势函数后,梯度公式变为:
$$\nabla_\theta J(\theta) = \mathbb{E}_{s \sim d^\pi, a \sim \pi_\theta} \left[ \nabla_\theta \log \pi_\theta(a|s) \, A(s, a) \right]$$这显著提高了学习效率。
2. 消除基准: 优势函数的形式消除了基准项 V(s),这样可以减小梯度估计的偏差。在训练过程中,我们只关心动作相对于平均水平的优越性,而不是绝对的奖励值。通过减去基准,我们更关注哪些动作比平均水平更好,从而引导策略改进。
3. 更好的收敛性: 使用优势函数可以帮助算法更快地收敛。优势函数通常具有更平滑的梯度,这有助于避免训练过程中的不稳定性,提高学习的稳定性和效率。在实践中,优势函数常通过时间差分(TD)误差来估计,例如$A(s, a) \approx r + \gamma V(s') - V(s)$,其中 r 是即时奖励,γ 是折扣因子。
Actor-Critic框架
Actor-Critic并不是一个具体的算法,而是一个算法框架,结合了策略梯度(Actor)和值函数近似(Critic)的优点。在Actor-Critic中:
- Actor 负责学习策略 $\pi_\theta(a|s)$,并通过策略梯度更新参数 θ 以最大化期望奖励 J(θ)。
- Critic 负责学习价值函数(如 V(s) 或 Q(s,a)),并通过TD学习或其他方法更新参数,以评估Actor当前策略的性能。
Actor更新
Actor根据Critic提供的优势函数更新策略参数。具体来说,Actor的更新规则为:
$$\theta \leftarrow \theta + \alpha \nabla_\theta \log \pi_\theta(a|s) \, A(s, a)$$其中 α 是学习率。这个更新方向使策略更倾向于选择具有正优势的动作(即比平均水平好的动作)。
Critic更新
Critic通过减少价值函数和TD target之间的差距来学习价值函数。例如,如果Critic学习状态值函数 $V_\phi(s)$,其中 ϕ 是参数,则更新目标是最小化TD误差:
$$\delta = r + \gamma V_\phi(s') - V_\phi(s)$$Critic的更新规则为:
$$\phi \leftarrow \phi + \beta \delta \nabla_\phi V_\phi(s)$$其中 β 是学习率。TD误差 δ 也常被用作优势函数的估计,即 $A(s, a) \approx \delta$。
优点
- 高效学习: Critic通过提供价值函数来引导Actor学习更好的策略。这比只依靠稀疏的环境奖励学习更有效,尤其是在部分观测或长期奖励场景中。
- 平滑梯度: 由于使用了值函数的引导,Actor-Critic方法通常具有更平滑的梯度方向。这有助于避免训练中的不稳定性,使得算法更容易收敛到一个好的策略。
- 在线学习: Actor-Critic可以在线更新,无需等待整个轨迹结束,这使得它适用于连续任务和高维空间。
常见策略梯度算法
基于Actor-Critic框架,衍生出多种策略梯度算法,包括:
- REINFORCE: 一种蒙特卡洛策略梯度算法,使用整个轨迹的回报作为Q估计,但方差较高。
- A2C(Advantage Actor-Critic): 使用优势函数减少方差,并采用多个线程并行学习。
- A3C(Asynchronous Advantage Actor-Critic): A2C的异步版本,通过多个智能体异步更新全局模型。
- PPO(Proximal Policy Optimization): 通过裁剪概率比来约束策略更新,提高稳定性。
- TRPO(Trust Region Policy Optimization): 使用信任域方法确保策略更新不会过大。
这些算法在游戏AI、机器人控制等领域取得了显著成功。
总结
策略梯度算法通过直接优化策略来处理强化学习问题,优势函数和Actor-Critic框架是其核心组成部分。优势函数通过减小方差和提供相对评估来改进学习效率,而Actor-Critic结合了策略学习和值函数近似的优点,实现了稳定和高效的训练。尽管策略梯度算法在实践中仍面临挑战(如高方差和调参难度),但通过先进的技术(如PPO),它们已成为解决复杂决策任务的重要工具。
未来,随着对策略梯度理论的深入理解和计算资源的提升,策略梯度算法有望在更多领域发挥潜力,如自动驾驶、医疗诊断和自然语言处理。

浙公网安备 33010602011771号