通用优势估计函数(GAE,Generalized Advantage Estimation)详解

article/2025/6/27 4:58:22

强化学习中用于估计优势函数的核心技术,由Schulman等人于2016年提出。核心作用是在强化学习中,用单一可调参数(λ)平衡偏差与方差,为策略梯度算法(如PPO、TRPO、A2C)提供稳定、高效的优势函数估计

一 核心概念

1.1优势函数

$ A(s_t, a_t) = Q(s_t, a_t) - V(s_t) $

表示在状态 $s_t$​ 选择动作 $a_t$ 比平均策略好多少

$Q$:动作价值函数(期望累计奖励

$V$:状态价值函数(期望累计奖励的均值

1.2策略梯度定理

原始策略梯度可表示为:

$\nabla_\theta J(\theta) = \mathbb{E} \left[ \nabla_\theta \log \pi_\theta(a_t|s_t) \cdot Q(s_t, a_t) \right]$

直接使用 Q 值会导致:

(1)高方差:Q 值波动大(受后续状态影响)

(2)基准缺失:无法判断动作的相对好坏

策略梯度更新依赖优势函数:

$ \nabla_\theta J(\theta) = \mathbb{E} \left[ \nabla_\theta \log \pi_\theta(a_t|s_t) \cdot A(s_t, a_t) \right] $

$\nabla_\theta \log \pi_\theta(a_t|s_t)$是一个策略梯度向量,描述了改变动作概率的方向。该向量指向参数空间中最大化动作 $a_t$ 在状态 $s_t$​ 下出现概率的方向。

准确估计 A 对算法收敛至关重要。

二 优势估计

2.1 TD残差(单步优势)

$ \delta_t = r_t + \gamma V(s_{t+1}) - V(s_t) $

符号含义数学性质
$r_t$即时奖励环境直接反馈的标量值
$\gamma$折扣因子$\gamma \in [0,1]$,通常取0.99
$V(s_{t+1})$下一状态价值状态价值函数的估计值
$V(s_t)$当前状态价值基线(baseline)
$\delta_t$TD残差优势函数的无偏估计

是优势函数的无偏估计,但是拥有高方差

2.2蒙特卡洛估计(多步)

$ \delta_t^{(k)} = \sum_{l=0}^{k-1} \gamma^l r_{t+l} + \gamma^k V(s_{t+k}) - V(s_t) $
当 k=1 时 → 单步TD残差

 当 k→∞ 时 → 蒙特卡洛回报

估计更准确但高偏差(依赖 V 的准确性)。

通过调节k值可在TD估计(低方差高偏差)和MC估计(高方差低偏差)间连续过渡

三 GAE原理

GAE通过指数加权平均结合不同步数的优势估计:

参数

$\gamma$:折扣因子(平衡未来奖励重要性,接近1时考虑长期回报)

$\lambda$:权衡因子(控制偏差与方差,$\lambda \in [0,1]$,增加可减小方差但增大偏差)

公式推导

定义 k 步优势估计:

$ A_t^{(k)} = \delta_t + \gamma \lambda \delta_{t+1} + \cdots + (\gamma \lambda)^{k-1} \delta_{t+k-1} $

$k \to \infty$ 时,GAE的闭合形式:

$ A_t^{\text{GAE}} = \sum_{l=0}^{\infty} (\gamma \lambda)^l \delta_{t+l} $

 实际计算截断到轨迹终点
 

四 GAE的解析解

GAE的解析解 是强化学习中一项关键的技术创新,它通过数学推导将多步优势函数的加权和转化为一种可高效并行计算的封闭形式。它的核心价值在于解决了传统实现中的计算效率问题。

4.1递归计算

$ A_t^{\text{GAE}} = \delta_t + \gamma \lambda A_{t+1}^{\text{GAE}} $

因依赖未来时刻,需从后往前计算。

4.2矩阵形式

$ \mathbf{A}^{\text{GAE}} = (\mathbf{I} - \gamma \lambda \mathbf{P})^{-1} \mathbf{\delta} $        

其中 P 为状态转移矩阵。

$\lambda$ 取值估计特性特点
$\lambda = 0$$A_t^{\text{GAE}} = \delta_t$低偏差,高方差(TD学习)
$\lambda = 1$$A_t^{\text{GAE}} = \sum_{l=0}^\infty \gamma^l \delta_{t+l}$等价蒙特卡洛,高偏差低方差

参数选择

$\lambda \approx 0.95$:PPO等算法的常用值

$\gamma \approx 0.99$:标准折扣因子

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

五 总结

通过 $\lambda$ 平滑融合不同步长估计,在偏差与方差间取得平衡,可应用于PPO、TRPO、ACER等策略优化算法。计算效率高,递归实现复杂度 $O(T)$,适用于长轨迹。

GAE的四大核心价值:

偏差-方差权衡通过λ参数在MC的无偏性(高方差)和TD的稳定性(高偏差)间实现平滑插值
信用分配优化将延迟奖励高效回溯到早期动作,解决长时序依赖问题
训练稳定性显著降低策略梯度方差,避免策略更新崩溃,加速收敛
算法通用性成为PPO/TRPO/A2C等主流算法的核心组件,适用离散/连续/稀疏奖励环境。

GAE是强化学习策略优化的基石之一,深入理解其原理和实现细节,能帮助开发者更有效地设计和调试强化学习系统。


http://www.hkcw.cn/article/kRZSAphpIZ.shtml

相关文章

Java从入门到精通 - 常用API(一)

常用 API 此笔记参考黑马教程,仅学习使用,如有侵权,联系必删 文章目录 常用 API1. 包代码演示 2. String2.1 String 概述代码演示总结 2.2 String 的常用方法代码演示 2.3 String 使用时的注意事项第一点第二点代码演示 总结题目 2.4 String…

n8n部署工作流websecscan-ai-powered-website-security-auditor

人工智能驱动的网站安全审计工作流 此 n8n 工作流程利用DeepSeek V3的模型检测漏洞、配置问题和安全配置错误,提供全面的网站安全分析。该工作流程生成专业的 HTML 安全报告,并直接通过 QQ邮箱 发送。 1.主要特点 双层安全分析:使用专门的…

TC3xx学习笔记-启动过程详解(一)

文章目录 前言Firmware启动过程BMHD Check流程ABM启动Internal Flash启动Bootloader ModeProcessing in case no valid BMHD foundProcessing in case no Boot Mode configured by SSW 总结 前言 之前介绍过UCB BMHD的使用,它在启动过程中起着重要的作用&#xff0…

Docker 镜像制作

目录 镜像制作及原因 快照方式制作镜像 Dockerfile 制作镜像 为什么需要 Dockerfile Dockerfile 指令 常见问题 镜像制作及原因 镜像制作是因为某种需求,官方的镜像无法满足需求,需要我们通过一定手段来自定义镜像来满足要求。 制作镜像往往因为以…

模块二:C++核心能力进阶(5篇) 篇一:《STL源码剖析:vector扩容策略与迭代器失效》

一、前言:重新认识vector的复杂性 在C开发者中,std::vector常被视为"动态数组"的简单实现,但其底层机制实则蕴含着深刻的工程智慧。本篇将通过: 多维度源码剖析(GCC/Clang/MSVC三平台实现对比)…

散列表(哈希表)

1 散列表的引入 如果我们叭者几个学生按照顺序存储存入到下面这个数组的话,那么每一次的查找方法只有顺序查找或者折半查找,最低的时间复杂度也就只可以下降到(logn),但是时间复杂度还是可以下降,下降到O(1) 我们只要把对应的学号…

【基于阿里云搭建数据仓库(离线)】Data Studio创建资源与函数

Data Studio支持在您的数据分析代码中引用自定义的资源和函数(支持MaxCompute、EMR、CDH、Flink),您需要先创建或上传资源、函数至目标工作空间,上传后才可在该工作空间的任务中使用。您可参考本文了解如何使用DataWorks可视化方式…

【计算机网络】第3章:传输层—拥塞控制原理

目录 一、PPT 二、总结 (一)拥塞的定义 (二)拥塞产生的原因 (三)拥塞控制的目标 (四)拥塞控制方法分类 1. 端到端拥塞控制 2. 网络辅助拥塞控制 (五)…

嵌入式鸿蒙开发环境搭建操作方法与实现

Linux环境搭建镜像下载链接: 链接:https://pan.baidu.com/s/1F2f8ED5V1KwLjyYzKVx2yQ 提取码:Leun vscode和Linux系统连接的详细过程1.下载Visual Studio Code

结构型设计模式之装饰模式

文章目录 1. 装饰模式概述2. 模式结构3. 装饰模式与继承的区别4. 装饰模式的优缺点优点缺点 5. C#代码示例5.1 基本示例 - 饮料与调料5.2 更复杂的示例 - 文本格式化器 6. C#中装饰器模式的实际应用6.1 C# I/O 流处理6.2 ASP.NET Core 中间件 7. 装饰模式与其他设计模式的比较8…

开发的几种格式,TCP的十个重要机制

自定义协议中, 我们有几种常见的数据格式: 1.xml 通过标签来组织数据 请求: 优势: 让数据的可读性变更好了 劣势: 标签非常繁琐,传输的时候也占用更多网络带宽(maven会使用xml来管理项目配…

ASP.NET Core OData 实践——Lesson9绑定和未绑定的Function和Action(C#)

大纲 概念支持的接口主要模型设计控制器设计数据源FunctionBound FunctionUnbound Function重载(overload) ActionBound ActionUnbound Action重载(overload)Bound ActionUnbound Action 主程序服务文档模型元文档 代码地址参考资…

描述性统计——让数据说话

第03篇:描述性统计——让数据说话 写在前面:大家好,我是蓝皮怪!前两篇我们聊了统计学的基本概念和数据类型,这一篇我们要正式进入数据分析的第一步——描述性统计。别被名字吓到,其实就是用一组数字&#x…

【MySQL基础】库的操作:创建、删除与管理数据库

MySQL学习: https://blog.csdn.net/2301_80220607/category_12971838.html?spm1001.2014.3001.5482 前言: 在上一篇我们已经讲解了数据库的基本内容,相信大家对数据库已经有了一些自己的理解,从这篇开始我们就开始正式进入如何…

国足抵达雅加达备战世预赛 力争两连胜晋级希望

中国男足国家队于6月2日晚抵达印度尼西亚首都雅加达,准备参加5日举行的2026美加墨世界杯亚洲区预选赛18强赛第9轮对阵印尼队的比赛。当地时间晚上10时30分,中国队在主教练伊万科维奇的带领下走出雅加达苏加诺-哈达国际机场,随后乘坐大巴前往酒店。伊万科维奇表示,中国队在…

中国龙舟文化“划”向全世界

央视网消息:这个端午假期,热气腾腾的“端午经济”成为消费活力升级的缩影。“国潮”风引领文化消费新风尚,传统文化元素与现代技术交融,非遗体验“烟火气”满满,打造出独特的“国潮端午”氛围,持续火热的国潮消费也一路“火”到了海外。这段时间,在义乌国际商贸城做3D打…

马斯克宣布离职:不想为政府政策负责 “政府效率部”成替罪羊

埃隆马斯克在接受美国哥伦比亚广播公司采访时提到,他并不想公开反对美国政府,但也不愿意为政府所做的一切承担责任。他表示,他领导的“政府效率部”成了所有问题的替罪羊,无论是真是假的裁员都归咎于这个部门。马斯克还表示,他对国会共和党正在讨论的数万亿美元减税与支出…

韩国5名候选人竞逐总统 李在明领跑民调

韩国第21届总统大选于当地时间6月3日6时正式开始,全国共设有14295个投票站。没有参加提前投票的选民凭本人身份证件前往指定投票站即可参加投票,投票将于当日20时结束。本次大选共有7位候选人进行了登记,但其中两位先后宣布退出,并表示支持国民力量党候选人金文洙。因此,选…

学者:李在明若胜将大幅调整外交政策 韩国大选临近决策点

韩国总统大选即将于3日迎来正式投票。根据选前多项民调结果,共同民主党候选人李在明仍以明显优势领先国民力量党的金文洙和改革新党的李俊锡。金文洙与李俊锡合并无望的情况下,李在明距离总统宝座仅一步之遥。2日举行的选前最后一场记者会几乎成为了李在明的“总统政策说明会…

2025/6月最新Cursor(0.50.5版本)一键自动更换邮箱无限续杯教程

使用前检查: 使用前请先看左下角,是否获取到Cursor的版本号 如果没有请先在 功能页面 -→ 自定义Cursor路径 选择你Cursor的安装的路径,并开启后重启YCursor,获取到版本后才能正常使用功能 检查软件左下角的权限标识是否为绿色 如…