ZENTHOS Workspace
RAW · · 2026-04-25 · 8 min · #JQUIYBZ

策略梯度(Policy Gradient)核心思想与原理总结

策略梯度直接学习参数化策略,通过梯度上升最大化期望总奖励,适用于连续动作空间。核心改进包括引入基线降低方差和功劳分配优化梯度计算,使训练更稳定高效。

强化学习之“策略梯度(Policy Gradient)”核心思想与原理总结

本内容基于相关视频梳理,系统讲解策略梯度方法的核心逻辑、优化方向及算法流程,帮助理解其从理论到实践的关键脉络。

1. 核心思想:从“基于价值”到“基于策略”

视频首先通过对比两种强化学习核心范式,明确策略梯度的定位与优势:

  • 基于价值(Value-Based)的方法(如 Q-Learning):
    先学习价值函数(如 \(Q(s, a)\),表示“在状态\(s\)下执行动作\(a\)的价值”),再通过 argmax​ 等规则从价值函数中推导策略(选择价值最大的动作)。
    局限性:在连续动作空间或高维动作空间中,对价值函数的建模和“选最大动作”的操作难度极高,易陷入计算瓶颈。
  • 基于策略(Policy-Based)的方法(策略梯度属于此类):
    不依赖价值函数,直接学习参数化策略 \(\pi_{\theta}(a|s)\)——通常以神经网络为载体,输入状态\(s\),输出动作\(a\)的概率分布(如连续动作空间输出均值和方差,离散动作空间输出各动作概率)。
    核心目标:通过梯度上升(Gradient Ascent) 调整参数\(\theta\),找到能使总奖励期望最大化的策略。

策略梯度的主要优点

  • 建模效率高:直接对策略建模,无需推导价值函数,特别适配连续动作空间(如机器人关节控制、自动驾驶油门/转向调节)。
  • 探索性更好:策略输出概率分布,而非确定动作,天然具备探索能力(如以一定概率选择非最优动作,避免陷入局部最优)。
  • 收敛性更优:在部分复杂场景中,策略梯度的收敛稳定性优于基于价值的方法。

image

2. 目标函数与策略梯度定理

策略梯度是无环境模型(Model-Free) 的方法(无需预先知道环境状态转移规则),其核心数学基础围绕“目标函数”与“梯度推导”展开:

目标函数 \(J(\theta)\)

image

优化目标是最大化轨迹(episode, \(\tau\))的期望总奖励 \(\bar{R}_{\theta}\),公式定义为:
\(J(\theta) = E_{\tau \sim p_{\theta}(\tau)}[R(\tau)]\)
其中:

  • \(\tau = (s_1, a_1, r_1, s_2, a_2, r_2, ..., s_T, a_T, r_T)\) 表示一条完整轨迹(从初始状态到终止状态);
  • \(p_{\theta}(\tau)\) 是参数为\(\theta\)的策略下,轨迹\(\tau\)发生的概率;
  • \(R(\tau) = \sum_{t=1}^T r_t\) 是轨迹\(\tau\)的总奖励(\(r_t\)\(t\)时刻的即时奖励)。

策略梯度定理

核心是推导目标函数\(J(\theta)\)对参数\(\theta\)的梯度\(\nabla_{\theta} J(\theta)\),视频中重点讲解了关键的“对数导数技巧(log-derivative trick)”,最终得到梯度公式:
\(\nabla_{\theta} J(\theta) = E_{\tau \sim p_{\theta}(\tau)}[R(\tau) \nabla_{\theta} \log p_{\theta}(\tau)]\)

在实践中,由于期望无法直接计算,需通过蒙特卡洛采样(即运行\(N\)次试验,收集\(N\)条轨迹)来近似估计这个期望。

3. 关键改进(解决高方差问题)

基础策略梯度算法(如 REINFORCE)存在高方差(High Variance) 问题——每次采样的梯度波动大,导致训练不稳定。视频介绍了两种核心改进方案:

改进一:引入基线(Baseline)

  • 问题根源:若用整条轨迹的总奖励\(R(\tau)\)更新策略,会导致“只要\(R(\tau)\)为正,所有动作的概率都会被提升”,但实际中部分动作可能只是“平均水平”,不应被强化。
  • 解决方案:从总奖励中减去一个基线(Baseline)\(b\),得到优势函数(Advantage Function) \(\hat{A}\)
    \(\hat{A} = R(\tau) - b\)

  • \(\hat{A} > 0\):动作效果优于平均水平,提升其概率;

  • \(\hat{A} < 0\):动作效果劣于平均水平,降低其概率。
  • 核心优势:基线\(b\)的引入不改变梯度期望(因\(E[\nabla_{\theta} \log p_{\theta}(\tau) \cdot b] = 0\)),但能大幅降低梯度方差,让训练更稳定。
    实践中,基线\(b\)通常设置为状态价值函数\(V(s)\)(表示“在状态\(s\)下的期望总奖励”)。

改进二:功劳分配(Credit Assignment)

  • 问题根源:用整条轨迹的总奖励\(R(\tau)\)计算\(t\)时刻动作的梯度时,会让\(t\)时刻的动作“为\(t\)时刻之前的奖励负责”,不符合逻辑(例如游戏中“当前步骤的操作”不应影响“之前已获得的分数”)。
  • 解决方案:将\(R(\tau)\)替换为未来累计折扣奖励(Reward-to-Go) ,只计算从\(t\)时刻到轨迹结束的奖励总和:
    \(R_t = \sum_{t'=t}^{T} \gamma^{t'-t} r_{t'}\)
    其中\(\gamma\)为折扣因子(\(0 < \gamma \leq 1\)),用于降低远期奖励的权重(符合“近期奖励更重要”的直觉)。
  • 核心优势:让梯度计算更贴合“动作仅对后续奖励负责”的逻辑,进一步降低方差。

4. 算法步骤(Vanilla Policy Gradient)

“Vanilla Policy Gradient(VPG,基础策略梯度)”是 Sutton 在 1999 年提出的经典算法,整合了上述改进,具体步骤如下:

  1. 初始化

  2. 策略网络\(\pi_{\theta}\)(如全连接神经网络,参数为\(\theta\));

  3. 基线\(b\)(初始可设为常数,后续逐步优化为状态价值函数\(V(s)\))。
  4. 循环迭代(直至收敛)
    a. 收集数据:用当前策略\(\pi_{\theta}\)与环境交互,收集一批轨迹(如\(N\)条完整episode)。
    b. 计算回报:对每条轨迹的每个时刻\(t\),计算“未来累计折扣奖励”\(R_t\)(即Reward-to-Go)。
    c. 计算优势:对每个时刻\(t\),计算优势函数\(\hat{A}_t = R_t - b(s_t)\)\(s_t\)\(t\)时刻的状态)。
    d. 更新基线:通过最小化损失\(\|b(s_t) - R_t\|^2\)(均方误差),拟合基线\(b\),使其尽可能接近\(R_t\)(本质是将\(b\)优化为状态价值函数\(V(s)\))。
    e. 更新策略:用梯度上升更新策略参数\(\theta\),梯度的近似计算基于采样数据:
    \(\nabla_{\theta} J(\theta) \approx \frac{1}{N} \sum_{每条轨迹} \sum_{t=1}^T \nabla_{\theta} \log \pi_{\theta}(a_t|s_t) \hat{A}_t\)
    最终参数更新公式:\(\theta \leftarrow \theta + \eta \nabla_{\theta} J(\theta)\)\(\eta\)为学习率)。

5. 适用条件

策略梯度方法在以下场景中表现突出,是优先选择的算法之一:

  • 连续动作空间:如机器人关节角度控制、自动驾驶的油门/刹车力度调节(基于价值的方法难以处理此类高维连续动作)。
  • 高维状态空间:如输入为图像的游戏(如Atari游戏)、无人机导航的视觉观测(策略网络可直接从高维输入中提取特征,无需手动设计状态表示)。
  • 需要参数化策略的场景:如需要输出动作概率分布、保证探索性的任务(如博弈类问题,需平衡“探索”与“利用”)。

总结

策略梯度的核心是“直接优化策略参数\(\theta\),最大化期望总奖励”,通过引入基线功劳分配(Reward-to-Go) 解决了基础算法的高方差问题,最终形成稳定高效的VPG算法。它弥补了基于价值方法在连续动作空间的短板,是强化学习中处理复杂决策问题的重要技术,也是后续更先进算法(如PPO、A2C)的基础。