策略梯度 PG(Policy Gradient)是强化学习中直接优化策略的最基础方法,是后续所有策略梯度类算法的 “源头”。通过计算 “策略的梯度”,即策略参数变化对累积奖励的影响,直接调整策略参数,使策略倾向于获得更高奖励的行动。本节围绕策略梯度主要介绍:
1)策略梯度的基本概念和公式推导 2)以及如何在策略梯度中添加基线和精细化奖励 3)通过广义优势估计建立优势函数
微信关注“AI老马” —【获取资源】&【进群交流】
策略梯度有三个主要组成部分:演员,环境和奖励函数。演员可以采取各种可能的动作与环境进行交互,在交互的过程中奖励函数会根据当前的环境状态和演员的动作给出相应的奖励,并修改自身状态。演员的目的在于调整策略,即根据环境信息决定采取什么动作以最大化奖励。

图1,策略梯度交互流程
假设:环境的状态为 ,演员的策略函数为 ,是从环境状态 到动作 的映射。奖励函数 为从环境状态到演员动作对应奖励值的映射。
在一次完整的交互中,定义环境状态 和演员动作 所组成的序列,称之为轨迹 (Trajectoty) :
给定轨迹后,累计的奖励,即回报为:
当给定策略函数的参数 后 ,可以计算某条轨迹发生的概率
其中,初始状态发生的概率,为策略函数在给定状态下所采用动作的概率,为环境转移概率,即给定当前状态和动作,环境转移到状态 的概率。
在演员和环境交互的过程中,希望回报是最大的,但回报并非是一个标量值,因为演员采取哪一个动作,以及环境转移到那个状态都是概率性发生的,因此轨迹和回报均为随机变量,只能计算回报的期望。
公式(4) 优化目标函数可表示为,所有轨迹概率与其对应轨迹奖励之和,参数为 的策略与环境交互的期望,轨迹 服从 的概率分布。策略梯度的核心目标找到最优参数 ,使策略的期望累积奖励最大。
已知给定一条轨迹的回报是固定的,所以只能通过调整参数 ,使得高回报率的轨迹发生的概率尽可能大,低回报率的轨迹发生的概率尽可能小。此时可以使用梯度上升方法,优化参数 使得期望回报尽可能的大。求导优化目标表示公式(5):
将连乘形式转换为对数形式,方便进行梯度优化。利用恒等式(6)
将公式 (6) 带入公式 (5) 中可得:
将公式 (3) 进一步的带入到 ,因为初始状态 发生的概率和环境转移 ,与策略函数中的 无关,对 求导后其值为0,可进一步简化公式。
将公式 (8) 带入公式 (7) 可得:
由于期望无法直接计算,因此在实践中通常从概率分布中采样N条轨迹近似的计算期望。
公式 (10) 中,回报值 指出了策略的调整方向,当回报值为正时,说明在当前的环境 下,动作 能够获得正的回报,因此梯度上升会使概率 增大。反之,动作就会受到惩罚,策略就会减少在当前状态,采取该行动的概率。
可以使用学习率为 的梯度上升方法优化参数 ,使其获得更高的回报。
结合以上公式推导过程,策略算法的基本流程为:
重复步骤以上步骤直到收敛。
问题:因某些动作没有被采样到,而使动作概率下降,造成训练不稳定。
强化学习训练中,有时回报总是正值,即公式 (10) 中的 总为正回报,在这种情况下,使得策略总是提升在对应状态下采取对应行动 的概率。而且为保证在状态 下所有可能动作的概率为1,在提升概率后会做归一化。造成的结果就是,提升幅度比较小的动作概率最终会下降。
实际计算梯度时,总是采样N条路径来更新参数,所以某些状态-动作对可能不会采样到。没有被采样到的动作并不是不好,而是因为没有采样,又因为归一化的原因,其概率下降,造成了训练的不稳定。
策略:在回报项中减去一个基线 b(Baseline) ,使得这一项的期望为0。实际更新时,概率值更新会有正有负,最终概率更新之和大致为0,从而避免了因某些动作没有被采样到,而使动作概率下降到问题。
其中 即回报的期望,训练中通过记录历史回报的均值来估计回报的期望。减去基线的回报,是相对于基线的额外奖励,仅当动作带来的奖励高于基线时,才会增强该动作的选择概率。
问题:一条路径中的所有动作都具有相同的价值,会导致这些动作会以相同的方式更新概率,导致训练不稳定。
需要为每个动作赋予其所得的奖励。实际考虑到交互过程中,演员采取某一动作之后,仅对之后的状态产生影响,而不会对之前的状态产生影响。因此不必令每个动作的权重都为全部奖励之和,只需累计当前动作和之后动作的奖励之和。
而且动作会对时间较近的状态影响较大,对较远的影响较小。因此在计算奖励时,对未来较远的奖励给予折扣。
公式中折扣因子 ,随着时间间隔增大,奖励的折扣也越大。公式既通过减去奖励期望抵消公共噪声,又通过仅关注动作未来奖励,避免了时序无关奖励的干扰。
公式 (13) 中,状态-动作对的权重可以分为两部分,其中 意味着在状态 下采取动作 的收益,称之为动作价值(Active Value),使用 表示。
公式 (13) 中,减去的基线 b 是动作价值的期望,其与具体动作无关,因此这个期望称之为状态价值(State Value),并用 表示。
有了动作价值和状态价值的抽象表示,此时状态-动作的权重也可抽象表示为 。在给定的状态s下,动作价值衡量了具体动作 a 的价值,而状态价值则表示演员采取各种可能动作的期望。因此动作价值和状态价值的差可以表示为,采取动作a 相比于一个随机动作的优势。优势越多表明采取动作a 要比其它可能的动作要好。因此优势函数表示为:
从环境中采样完整的一次交互过程的方法称之为蒙特卡罗方法。这种从环境中采样得到的真实样本是无偏的,由于其需要采样很多步,并将多步的结果累计,会造成动作价值的方差很大,不利于收敛和稳定。
在实际训练中,状态价值是期望,难以计算,通常使用一个神经网络来拟合状态价值,即 其中 表示神经网络参数,为了优化神经网络参数,可以使用均方误差作为损失。
为了减少方差,不必采样未来的很多步,而只采样一步,对于之后的多步结果使用状态价值函数进行估计。这种只采样一步,后续部分使用状态价值函数估计的方法叫做时序差分 TD(Temporal Difference),即
只要状态价值 是无偏的,动作价值就是无偏的。前面使用神经网络来拟合状态价值,会造成公式 (15) 具有较高的偏差。
类似的可以采样k 步奖励,即:
因此k步的优势可以表示为:
但直接计算优势函数公式存在挑战:
蒙特卡洛估计,通过采样轨迹计算动作价值 :方差大,但无偏;
时序差分估计,只采样一步进行估计:方差小,但有偏。
为了权衡方差和偏差,广义优势函数方法将优势函数定义为 k 步优势的指数平均。
此时定义TD误差 将k步优势公式 (17) 转换为:
进一步将k步优势转换为计算每一步的TD误差,将公式 19 带入公式18中得:
这样能够同时具有两者的优势,因此广义优势函数被广泛的应用到策略梯度方法中。
即优势估计方差最小,偏差最大即蒙特卡洛优势估计无偏,方差最大当时:融合多步误差,在偏差与方差间取得最优平衡实际应用中常用
核心优势:
低方差,通过多步 TD 误差的加权求和,抑制了蒙特卡洛估计的噪声;低偏差,通过 λ 调节多步信息的利用,减少了单步 TD 估计的偏差;稳定性,为策略梯度提供了更精准、平滑的优势信号,显著提升训练稳定性,是 PPO等算法的核心组件。
策略梯度的核心逻辑是直接对策略参数求导,通过梯度上升最大化期望累积奖励。基本优化路径:
作为直接策略优化的 “源头”,PG 的核心思想贯穿于各类高级策略算法,其对 “梯度估计精度” 和 “训练稳定性” 的追求,也成为后续算法改进的核心方向,如 PPO 的剪辑梯度、TRPO 的信任域约束等,本质上都是对 PG 梯度估计的进一步优化。