1. 假设与问题设定

在深入推导之前,我们首先要明确问题背景。策略梯度方法通常在 Episodic 设定下进行分析。这意味着智能体(Agent)与环境的交互由一系列独立的“回合”(Trajectory 或 Episode)构成。例如,在雅达利游戏 Pong 中,一个回合就是从游戏开始到一方得分的完整过程。

我们将一个长度为 的轨迹 定义为一连串的状态、动作和奖励:

其中:

  • 从初始状态分布中采样。
  • 动作 根据我们想要优化的策略 采样,其中 是策略的参数。
  • 新状态 根据环境的动力学模型 产生。

我们的目标是找到最优的策略参数 ,以最大化期望的总回报(可能是带折扣的)。形式上,我们的优化目标 是:

这里的 表示期望是基于策略 生成的轨迹计算的。 是折扣因子,用于平衡短期和长期奖励。

那么,如何找到最优的 呢?答案是经典的梯度上升法:

这里的关键挑战在于如何计算目标函数关于 的梯度

2. 推导策略梯度的两个关键工具

在正式计算梯度之前,我们需要掌握两个重要的数学技巧。

工具一:对数导数技巧 (Log-Derivative Trick)

这个技巧的绝妙之处在于,它允许我们将梯度算子 移到期望 内部。推导如下:

通过这个技巧,计算梯度的期望值问题,转化为了计算一个包含对数概率梯度的项的期望值。这非常有用,因为它使我们能够通过采样来估计梯度。

工具二:轨迹的对数概率梯度

接下来,我们需要计算轨迹 的对数概率 关于 的梯度。首先,轨迹 出现的概率是:

取对数并求梯度:

由于初始状态分布 和环境动力学 都不依赖于策略参数 ,它们的梯度为零。因此,上式简化为:

这个结果非常重要:轨迹的对数概率梯度只与策略网络本身有关,与环境模型无关!这使得我们可以在不知道环境具体如何工作的情况下优化策略。

3. 计算原始策略梯度

现在,万事俱备。我们将以上两个工具结合起来,计算我们的目标函数 的梯度。令 代表一条轨迹的总回报(为简化,暂时忽略折扣因子 )。

这个公式就是策略梯度定理的基础形式。它告诉我们,为了增加获得高回报轨迹的概率,我们应该朝着“使得高回报轨迹的动作对数概率增加”的方向更新参数

然而,这个朴素的梯度估计存在一个严重问题:高方差(High Variance)。单次回合的总回报 波动性很大,导致梯度估计非常不稳定,训练过程缓慢且难以收敛。

4. 引入基线以减少方差

为了解决高方差问题,我们需要对梯度公式进行一些巧妙的变形,并引入一个基线(Baseline)

策略梯度的等价形式

首先,一个核心思想是:在时间步 的决策,不应该受到 之前所获得的奖励的影响。这被称为因果性(Causality)。基于此,我们可以将策略梯度公式重写为一种更合理的形式。

以下是三种等价的梯度表达形式(令 ):

  • (i) 是我们刚刚推导出的原始形式。
  • (ii) 利用了因果性。在时间 获得的奖励 不可能被未来的动作 () 影响,因此 的梯度只与 的动作有关。
  • (iii) 是对 (ii) 进行代数重排的结果。这个形式最常用,其中 被称为“未来回报总和”或“Reward-to-go”。它直观地告诉我们,在时间步 更新策略时,我们只关心从此刻起能获得多少回报。

插入基线

现在我们可以在公式 (iii) 中引入一个仅依赖于状态 的基线函数

这个基线的作用是什么?它为什么有效?

5. 理解基线

引入基线带来了两个巨大的好处:它在不引入偏差的情况下,显著降低了方差

为什么基线是无偏的?

我们需要证明,添加的基线项的期望为零。即证明 。由于期望的线性,我们只需证明对任意时刻

推导如下:

现在我们来看内部的期望项

因为对数概率的梯度(即得分函数)的期望恒为零,所以整个基线项的期望为零。这证明了引入基线不会改变梯度的期望值,即它是无偏的

为什么基线能降低方差?

我们来分析梯度估计中核心项的方差:。为了最小化这个方差,我们应该如何选择 呢?

这是一个经典的最小二乘问题。要最小化 ,最优的常数 就是 的期望值 。因此,能够最大程度降低方差的最优基线 应该是:

这正是状态值函数 的定义!它表示从状态 出发,遵循策略 能获得的期望回报。

直观上,减去一个基线相当于将奖励信号中心化。如果 Reward-to-go 高于当前状态的平均水平 ,我们就鼓励这个方向;如果低于平均水平,就抑制这个方向。这使得学习信号更加清晰,从而降低了方差。

6. 折扣因子和优势函数

引入折扣因子

在实践中,我们通常使用带折扣的回报。这既有数学上的便利,也符合直觉(未来的奖励不如眼前的奖励重要)。引入折扣因子 后,梯度公式近似为:

此时,最优的基线 也就变成了折扣版本的状态值函数

优势函数 (Advantage Function)

让我们更深入地审视一下梯度公式中的核心部分:

  • 是对状态-动作值函数 的一次蒙特卡洛采样估计。 表示在状态 执行动作 后,遵循策略 能获得的期望回报。
  • 是对状态值函数 的估计。

这两者的差值,在强化学习中有一个专门的名字:优势函数

优势函数的直观含义是:在状态 下,选择动作 相对于平均选择的动作有多好。

因此,我们的策略梯度最终可以写成一个极其优雅和强大的形式:

这意味着,策略梯度的学习问题,在很大程度上可以归结为如何准确地估计优势函数。像 A2C/A3C、TRPO、PPO 等现代策略梯度算法,其核心创新点之一就在于如何设计出更好的优势函数估计器。

总结

通过本文,我们从最基本的目标函数出发,一步步推导出了现代策略梯度算法的核心公式。

  • 核心思想:通过梯度上升直接优化参数化的策略。
  • 关键技巧:利用对数导数技巧,将问题转化为通过采样进行梯度估计。
  • 核心挑战:解决朴素梯度估计的高方差问题。
  • 解决方案:引入因果性(Reward-to-go)并使用基线(如值函数 )进行方差缩减。
  • 最终形式:策略梯度可以优雅地表示为对数策略梯度与优势函数的乘积的期望。