当前位置: 首页 > java >正文

策略梯度核心:Advantage 与 GAE 原理详解

一.Advantage(优势函数)详解

什么是 Advantage?

Advantage 表示当前动作比平均水平好多少。

其定义公式为:

A ( s , a ) = Q ( s , a ) − V ( s ) A(s, a) = Q(s, a) - V(s) A(s,a)=Q(s,a)V(s)

其中:

  • Q ( s , a ) Q(s, a) Q(s,a):在状态 s s s 下执行动作 a a a 所得到的期望回报
  • V ( s ) V(s) V(s):在状态 s s s 下的平均期望回报

简而言之:

  • 如果 A ( s , a ) > 0 A(s, a) > 0 A(s,a)>0,说明该动作比平均值好,应该增强其概率
  • 如果 A ( s , a ) < 0 A(s, a) < 0 A(s,a)<0,说明该动作不好,应该削弱其概率

在策略梯度算法中的作用

在策略梯度方法(如 PPO、REINFORCE)中,优化目标常写为:

L ( θ ) = − log ⁡ π θ ( a ∣ s ) ⋅ A ( s , a ) \mathcal{L}(\theta) = -\log \pi_\theta(a|s) \cdot A(s, a) L(θ)=logπθ(as)A(s,a)

含义是:

  • 当 Advantage 大时,增大该动作概率;
  • 当 Advantage 小时,减小该动作概率;
  • Advantage 起到了加权放大奖励信号的作用。

总结表格

项目描述
定义动作与当前状态平均价值的差异
数学表达 A ( s , a ) = Q ( s , a ) − V ( s ) A(s, a) = Q(s, a) - V(s) A(s,a)=Q(s,a)V(s)
主要用途用于衡量动作质量,指导策略梯度方向
使用场景PPO、REINFORCE、A2C、TRPO 等策略优化算法
是否关键是策略更新的核心量,通常结合 GAE 进一步估算

二.GAE:Generalized Advantage Estimation

什么是 GAE?

GAE 是一种用于计算 Advantage(优势函数)的方法,目的是 在偏差和方差之间取得平衡,从而提高策略梯度算法(如 PPO、TRPO)的稳定性与收敛速度。


背景知识

回顾基本定义:

  • 状态值函数 V ( s t ) V(s_t) V(st) 表示在状态 s t s_t st 下的期望回报。

  • 优势函数 A ( s t , a t ) = Q ( s t , a t ) − V ( s t ) A(s_t, a_t) = Q(s_t, a_t) - V(s_t) A(st,at)=Q(st,at)V(st),表示某动作比平均动作好多少。

  • TD误差(Temporal Difference Error)

    δ t = r t + γ V ( s t + 1 ) − V ( s t ) \delta_t = r_t + \gamma V(s_{t+1}) - V(s_t) δt=rt+γV(st+1)V(st)


GAE 的公式

GAE 使用加权和的形式累积多个时间步的 TD 误差:

A ^ t GAE ( γ , λ ) = ∑ l = 0 ∞ ( γ λ ) l δ t + l \hat{A}_t^{\text{GAE}(\gamma, \lambda)} = \sum_{l=0}^{\infty} (\gamma \lambda)^l \delta_{t+l} A^tGAE(γ,λ)=l=0(γλ)lδt+l

其中:

  • δ t = r t + γ V ( s t + 1 ) − V ( s t ) \delta_t = r_t + \gamma V(s_{t+1}) - V(s_t) δt=rt+γV(st+1)V(st) 是 TD 误差
  • γ \gamma γ:折扣因子(控制未来奖励的重要性)
  • λ \lambda λ:平滑因子(控制 bias vs. variance)

λ = 0 \lambda = 0 λ=0,只考虑一步 TD 误差(高偏低方);

λ → 1 \lambda \to 1 λ1,接近 Monte Carlo(低偏高方);


GAE 的优势

特性描述
降低方差多步估计会平滑短期噪声
保持较小偏差引入 λ \lambda λ 控制偏差
提高训练稳定性在 PPO、TRPO 等算法中大幅提升收敛性能
易于实现可用递推公式高效实现

递推公式(更高效)

实际中常用递推方式高效计算:

A ^ t = δ t + γ λ A ^ t + 1 \hat{A}_t = \delta_t + \gamma \lambda \hat{A}_{t+1} A^t=δt+γλA^t+1

从最后一个时间步开始反向计算,避免显式展开加权和。


总结

  • GAE 是 TD 和 MC 方法之间的折中
  • 关键控制参数是 λ \lambda λ,需调节其值以在 bias/variance 间权衡
  • 是现代策略优化算法中的核心技术之一

📚 推荐论文:GAE 原始论文 by Schulman et al., 2016

http://www.xdnf.cn/news/12304.html

相关文章:

  • 苍穹外卖|学习笔记|day06
  • Day13
  • Grafana-ECharts应用讲解(玫瑰图示例)
  • 定时任务的 cron 表达式
  • OpenEuler24.03 部署RagFlow学习记录(PVE虚拟化环境)
  • 实验科学中策略的长期效应评估学习笔记
  • Day45 Python打卡训练营
  • 图像分割算法入门:从基础到FCN
  • Bean的作用域
  • 代付系统:功能解析与多场景应用深度解读
  • 8天Python从入门到精通【itheima】-69~70(字符串的常见定义和操作+案例练习)
  • 软考 系统架构设计师系列知识点之杂项集萃(81)
  • Spring Bean是否是线程安全的
  • 虎扑正式易主,迅雷完成收购会带来什么变化?
  • Postman常见问题及解决方法
  • 红花基因组2-文献精读141
  • springBoot服务之间的转发
  • el-tabs 切换时数据不更新的问题
  • 驱动:字符驱动操控硬件
  • freeRTOS中断中为什么不能进行任务切换2
  • 基于红黑树的插入功能,对Set和Map部分功能进行封装实现
  • 打造智慧医疗枢纽,香港维尔利引领东南亚健康科技升级
  • 八:操作系统设备管理之RAID
  • STM32 智能小车项目 两路红外循迹模块原理与实战应用详解
  • HTV 3.3 | 秒播无卡顿 直播源每天维护更新
  • Q: 数据库增删改查的逻辑如何实现?
  • 996引擎-自定义装备/道具:限时装备、限时道具
  • 如何通过requests和time模块限制爬虫请求速率?
  • 算法题(162):火烧赤壁
  • React状态管理Context API + useReducer