通用优势估计函数(GAE,Generalized Advantage Estimation)详解
强化学习中用于估计优势函数的核心技术,由Schulman等人于2016年提出。核心作用是在强化学习中,用单一可调参数(λ)平衡偏差与方差,为策略梯度算法(如PPO、TRPO、A2C)提供稳定、高效的优势函数估计。
一 核心概念
1.1优势函数
表示在状态 选择动作
比平均策略好多少
:动作价值函数(期望累计奖励)
:状态价值函数(期望累计奖励的均值)
1.2策略梯度定理
原始策略梯度可表示为:
直接使用 Q 值会导致:
(1)高方差:Q 值波动大(受后续状态影响)
(2)基准缺失:无法判断动作的相对好坏
策略梯度更新依赖优势函数:
是一个策略梯度向量,描述了改变动作概率的方向。该向量指向参数空间中最大化动作
在状态
下出现概率的方向。
准确估计 A 对算法收敛至关重要。
二 优势估计
2.1 TD残差(单步优势)
符号 | 含义 | 数学性质 |
---|---|---|
即时奖励 | 环境直接反馈的标量值 | |
折扣因子 | ||
下一状态价值 | 状态价值函数的估计值 | |
当前状态价值 | 基线(baseline) | |
TD残差 | 优势函数的无偏估计 |
是优势函数的无偏估计,但是拥有高方差。
2.2蒙特卡洛估计(多步)
当 k=1 时 → 单步TD残差
当 k→∞ 时 → 蒙特卡洛回报
估计更准确但高偏差(依赖 V 的准确性)。
通过调节k值可在TD估计(低方差高偏差)和MC估计(高方差低偏差)间连续过渡
三 GAE原理
GAE通过指数加权平均结合不同步数的优势估计:
参数:
:折扣因子(平衡未来奖励重要性,接近1时考虑长期回报)
:权衡因子(控制偏差与方差,
,增加可减小方差但增大偏差)
公式推导:
定义 k 步优势估计:
当 时,GAE的闭合形式:
实际计算截断到轨迹终点。
四 GAE的解析解
GAE的解析解 是强化学习中一项关键的技术创新,它通过数学推导将多步优势函数的加权和转化为一种可高效并行计算的封闭形式。它的核心价值在于解决了传统实现中的计算效率问题。
4.1递归计算:
因依赖未来时刻,需从后往前计算。
4.2矩阵形式:
其中 P 为状态转移矩阵。
估计特性 | 特点 | |
---|---|---|
低偏差,高方差(TD学习) | ||
等价蒙特卡洛,高偏差低方差 |
参数选择:
:PPO等算法的常用值
:标准折扣因子
def compute_gae(rewards, values, dones, gamma=0.99, lambda_=0.95):"""rewards: 各时刻奖励 [r0, r1, ..., r_{T-1}]values: 各时刻状态价值 [V(s0), V(s1), ..., V(sT)]dones: 各时刻是否终止 [d0, d1, ..., d_{T-1}]"""T = len(rewards)deltas = np.zeros(T)advantages = np.zeros(T)# 计算TD残差 δ_tfor t in range(T):if dones[t]: # 终止状态无下一步next_value = 0else:next_value = values[t+1]deltas[t] = rewards[t] + gamma * next_value - values[t]# 从后往前计算GAEgae = 0for t in reversed(range(T)):if dones[t]: # 终止状态后无未来优势gae = deltas[t]else:gae = deltas[t] + gamma * lambda_ * gaeadvantages[t] = gaereturn advantages
五 总结
通过 平滑融合不同步长估计,在偏差与方差间取得平衡,可应用于PPO、TRPO、ACER等策略优化算法。计算效率高,递归实现复杂度
,适用于长轨迹。
GAE的四大核心价值:
偏差-方差权衡 | 通过λ参数在MC的无偏性(高方差)和TD的稳定性(高偏差)间实现平滑插值。 |
信用分配优化 | 将延迟奖励高效回溯到早期动作,解决长时序依赖问题。 |
训练稳定性 | 显著降低策略梯度方差,避免策略更新崩溃,加速收敛。 |
算法通用性 | 成为PPO/TRPO/A2C等主流算法的核心组件,适用离散/连续/稀疏奖励环境。 |
GAE是强化学习策略优化的基石之一,深入理解其原理和实现细节,能帮助开发者更有效地设计和调试强化学习系统。