目录
在基础Actor-Critic算法训练过程中,策略梯度估计往往存在方差过高、动作优劣区分模糊的缺陷,训练过程容易震荡、收敛稳定性差。研究者通过引入优势函数(Advantage Function) 对 AC算法进行优化,衍生出A2C、A3C、SAC、PPO等一系列经典强化学习算法;而广义优势估计(GAE)进一步优化了优势值的估算方式,通过超参数γ、λ平衡偏差与方差,大幅提升策略训练的收敛速度与稳定性。本章将从优势函数原理出发,依次讲解A2C系列算法、GAE的推导逻辑、实现方式以及超参数的调优策略。
1.优势函数
基础AC算法直接使用动作价值Q(s,a)加权策略梯度,所有动作的Q值往往整体偏大或偏小,梯度更新方向单一,估计方差极高。A2C的核心优化思路是引入基线消除梯度估计的固有偏差,基线一般选取状态价值函数V(s),代表当前状态s下,遵循策略π所能获得的平均预期回报,相当于为当前所有动作设定了一个性能参考基准。基于基线可以定义优势函数,用来表征:在状态s下执行动作a,相对该状态平均回报水平的优劣程度,公式定义:
![]()
将原始策略梯度中的Q值替换为优势值,即可得到A2C的策略梯度公式:

选择V(s)作为基线主要有两点原因:
1.V(s)物理意义清晰:代表当前状态下全部可选动作的期望回报,是天然的“平均性能参考线”;
2.可独立训练拟合:我们可以搭建单独的Critic价值网络拟合V(s),能够跟随策略迭代实时更新基线,动态适配策略变化,持续优化梯度估计效果。
未使用基线时,本例中三个动作对应的策略梯度全部为正数,参数只能单向更新,所有动作的执行概率都会被拉高,无法区分动作好坏; 引入优势函数后:


优势值正负可以精准区分动作相对优劣,让策略参数朝着不同方向差异化更新,解决了原始 AC 算法无法筛选优质动作的痛点。
2.A2C、A3C与SAC经典优化算法
2.1 A2C算法
优势演员-评论家算法(A2C)是基础AC结合优势函数的同步式改进版本。理论上计算优势需要同时拟合Q(s,a)与V(s)两个价值网络,会提升训练开销;在工程实现中,可以利用时序差分(TD)方式近似拟合动作价值:

将近似式代入优势函数定义,优势值可以直接通过单个状态价值网络计算:
![]()
式中右侧即为TD误差δt,因此 A2C 最终的策略梯度可以简化为TD误差加权的动作偏好梯度:

仅需训练1个Actor策略网络+1个Critic价值网络即可完成训练,大幅降低了算法落地难度。
2.2 A3C算法
异步优势演员-评论家(A3C)由DeepMind在2016年提出,是A2C的异步并行拓展方案。 算法启动多个独立智能体,每个智能体在独立环境中交互采样、单独计算梯度,异步将梯度上传至全局网络更新参数。并行采样打破了单条轨迹样本之间的时序相关性,减少经验数据冗余,既提升了采样效率,又进一步增强了策略训练的稳定性。
2.3 SAC算法
柔性演员-评论家(SAC)属于基于最大熵框架的异策略强化学习算法,在原始最大化累积奖励的目标基础上,额外加入策略熵最大化约束:
1.鼓励策略保持随机性,智能体会主动对环境进行充分探索,避免策略过早收敛到局部最优;
2.依托经验回放池复用历史采样轨迹,样本利用率远高于 A2C/A3C 这类同策略算法;
3.凭借鲁棒性强、适配复杂连续控制任务的优势,SAC 成为机器人控制、游戏仿真等领域的主流强化学习算法。
3.GAE算法流程
广义优势估计(GAE)是对优势函数的高阶优化方案,也是PPO等主流算法的核心组件。GAE借鉴TD(λ)多步时序差分的思想,通过折扣系数γ、衰减系数λ对未来多步TD误差加权求和,在偏差与方差之间实现柔性平衡。
GAE优势值的累加形式公式:

GAE迭代流程如下:
给定一条长度为T的交互轨迹,终止状态sT的价值V(sT)=0,从最后一个时间步反向遍历计算:
1.正向遍历整条轨迹,逐时间步计算每一步的TD误差δ0,δ1,…,δT−1;
2.从最后一步t=T−1向前递归,依次求解每个时刻的GAE优势值;
3.将全部时刻的优势值保存,用于后续策略网络梯度更新。
GAE代码如下:
import numpy as np
def compute_gae(rewards, values, gamma=0.99, lambda_=0.95):
"""
计算GAE广义优势
:param rewards: 轨迹奖励列表,形状[T,]
:param values: 各时刻状态价值,形状[T+1,](包含终止状态价值)
:param gamma: 奖励折扣因子
:param lambda_: GAE衰减系数
:return: 各时间步优势估计值,形状[T,]
"""
T = len(rewards)
advantages = np.zeros(T)
gae = 0.0
# 逆向遍历时间步
for t in reversed(range(T)):
delta_t = rewards[t] + gamma * values[t+1] - values[t]
gae = delta_t + gamma * lambda_ * gae
advantages[t] = gae
return advantages
GAE的两个核心超参数、取值通常落在[0.9,1]区间,二者作用各不相同:
1.奖励折扣因子γ
权衡远近奖励:γ越趋近于1,算法越重视远期回报,适合需要长期决策的任务;
γ趋近于0仅关注即时奖励,适合瞬时反馈类任务;
间接平衡偏差方差:γ越大,多步未来奖励参与价值估计,模型偏差更低,但时序采样噪声会被累积,梯度方差上升;小γ仅利用单步奖励,估计偏差更高,但方差更小。
2.GAE衰减系数λ
λ直接控制多步 TD 误差的权重衰减程度,是平衡偏差方差的核心参数:
λ=0:GAE退化为单步TD优势估计,仅使用当前步TD误差,方差最小,但对长期回报拟合偏差最大;
λ=1:等价于蒙特卡洛优势估计,使用整条轨迹的累积回报拟合优势,偏差最小,但轨迹随机噪声会全部引入,方差最高。
在实际工程调参中,我们可以通过调整λ,在蒙特卡洛低偏差高方差、单步TD高偏差低方差两种极端方案之间平滑过渡,让优势估计的精度与训练稳定性达到最优平衡点。
2165

被折叠的 条评论
为什么被折叠?



