深入理解广义优势估计(GAE):PPO算法中平衡偏差与方差的关键

广义优势估计(GAE)是PPO的关键技术,它通过平衡偏差与方差,解决了强化学习中的信用分配问题,为策略优化提供稳定梯度。

原文标题:广义优势估计(GAE):端策略优化PPO中偏差与方差平衡的关键技术

原文作者:数据派THU

冷月清谈:

本文深入探讨了广义优势估计(GAE)在强化学习,特别是近端策略优化(PPO)算法中的重要作用。GAE旨在解决强化学习中信用分配的问题,即如何准确判断哪些历史动作应该被奖励。文章解释了GAE如何通过结合资格迹和时序差分λ(TD-λ)的思想,在偏差和方差之间取得平衡。GAE通过对不同步长的优势估计进行加权平均,在减小偏差的同时控制方差,从而为策略优化提供更稳定的梯度信号。与传统的TD-λ算法不同,GAE可以作为损失函数的关键组件,集成到策略梯度方法中,这使得它成为现代强化学习算法(如PPO)中不可或缺的一部分。

怜星夜思:

1、GAE是如何在偏差和方差之间取得平衡的?除了文章中提到的n步优势的指数加权平均值方法,还有没有其他思路?
2、文章提到TD-λ是一个完整的算法,而GAE是将其思想应用于策略梯度方法。那么,GAE在实际应用中,除了PPO,还能应用于哪些其他的强化学习算法中?
3、GAE主要就是为了解决信用分配问题,大家觉得在强化学习中,除了GAE,还有什么其他的思路可以用来解决信用分配问题?

原文内容

来源:Deephub Imba

本文约1500字,建议阅读6分钟

本文通过系统分析明确了GAE的技术本质、理论来源以及其在当前强化学习领域最先进算法(尤其是PPO)中的核心作用。


广义优势估计(Generalized Advantage Estimation, GAE)由Schulman等人在2016年的论文中提出,是近端策略优化(PPO)算法的重要基础理论,也是促使PPO成为高效强化学习算法的核心因素之一。


GAE的理论基础建立在资格迹(eligibility traces)和时序差分λ(TD-λ)之上,为深入理解GAE的核心价值,我们需要先分析其解决的根本问题。


强化学习中的核心问题


在策略梯度方法及广义强化学习框架中,信用分配问题(credit assignment problem)始终是一个关键挑战:当系统中的奖励延迟出现时,如何准确地判定哪些历史动作应当获得强化?

这一问题本质上是寻求偏差(bias)与方差(variance)之间的最佳平衡点。当算法考虑远期回报以强化当前动作时,会引入较大方差,因为准确估计真实期望回报需要大量采样轨迹。当算法仅关注短期回报时,会导致估计偏差增大,特别是当我们将状态价值估计为较小步数(如TD残差为1时)的n步回报加权平均时。

现有技术工具


在解决上述问题方面,强化学习领域已有资格迹和λ-returns等工具,以及Sutton与Barto在《强化学习导论》中详细讨论的TD-λ算法。而λ-returns方法需要完整的训练回合(episode)才能进行计算,传统TD-λ作为一个完整算法,直接将资格迹整合到梯度向量中。在PPO等现代算法中,我们期望将优势函数作为损失函数的一部分,这与TD-λ的直接应用方式不相兼容。

GAE的技术创新


广义优势估计从本质上将TD-λ的核心思想引入策略梯度方法,通过系统性地估计优势函数,使其能够有效集成到算法损失函数中。回顾优势函数的定义,它计量特定动作价值与策略预期动作价值之间的差异,即衡量某动作相比于当前策略平均表现的优劣程度。

图片

GAE的工作原理


从直觉上理解,优势函数的构建需要准确评估状态-动作对的价值,以便测量其与状态价值函数或当前策略的偏差。由于无法直接获取真实值,需要构建既低方差又低偏差的估计器。GAE采用n步优势的指数加权平均值方法,其中单个n步优势定义为:
图片

这些不同步长的优势估计各有特点:

上述估计中,TD(0)具有高偏差但低方差特性,而蒙特卡洛(MC)方法则表现为高方差低偏差。GAE通过对各种不同步长优势估计的加权组合,实现了在t时刻的优势估计是状态或状态-动作价值的n步估计的衰减加权和。这种方法精确地实现了我们的目标:通过引入更精确的长期估计来减小偏差,同时通过适当降低远期估计权重来控制方差。

GAE与TD-λ的技术区别


TD-λ本质上是一个完整的算法,它以"反向"方式利用资格迹,使我们能够在每个时间步进行更新,该算法将资格迹直接整合到梯度更新中:
图片

这一特性使TD-λ成为价值函数估计的有效工具,但在策略梯度方法中,我们需要自定义损失函数(如PPO中使用的损失函数),并且优化目标是策略而非价值函数。GAE的创新之处在于找到了将这一思想应用于策略梯度方法的有效途径。

图片

通过这种方式,GAE可以作为损失函数中需要最小化的关键组件,为策略优化提供更稳定的梯度信号。

总结


本文通过系统分析明确了GAE的技术本质、理论来源以及其在当前强化学习领域最先进算法(尤其是PPO)中的核心作用。GAE通过巧妙平衡偏差与方差,为解决强化学习中的信用分配问题提供了一种数学严谨且实用高效的方法。

编辑:王菁



关于我们

数据派THU作为数据科学类公众号,背靠清华大学大数据研究中心,分享前沿数据科学与大数据技术创新研究动态、持续传播数据科学知识,努力建设数据人才聚集平台、打造中国大数据最强集团军。



新浪微博:@数据派THU

微信视频号:数据派THU

今日头条:数据派THU

从控制论的角度看,GAE可以理解为一种滤波方法,它试图从嘈杂的奖励信号中提取出有效的控制信号。
除了加权平均,还可以考虑使用卡尔曼滤波或者其他更复杂的滤波算法,这些算法可以根据模型的置信度动态调整偏差和方差的权重。此外,还可以借鉴因果推断的思想,尝试识别真正导致奖励的动作序列,从而更准确地进行信用分配。

我觉得可以推广到任何需要对动作价值进行评估的算法中。例如,在多智能体强化学习中,每个智能体都需要评估其他智能体的动作价值,GAE可以帮助更准确地进行评估。另外,在层级强化学习中,高层策略需要评估底层策略的价值,GAE同样可以发挥作用。

与其绞尽脑汁地分配信用,不如想想怎么设计 reward function,让信用分配变得更简单。 比如说,把 reward 设计成稀疏的、延迟的,那么需要 credit assignment 的地方就少了。当然,这需要对问题有更深入的理解,而且 reward shaping 本身也是个 tricky 的问题。

除了GAE这种基于时间差分的方法,还有一些基于注意力机制的方法,可以学习不同时间步之间的依赖关系,从而更准确地进行信用分配。 另外,有些研究尝试用因果推断的方法,分析动作和奖励之间的因果关系,避免把不相关的动作也算进来。

GAE的核心是优势函数的估计,只要是用到策略梯度的算法,理论上都可以用GAE来优化。比如Actor-Critic方法,REINFORCE算法等等。甚至一些模仿学习的算法,如果涉及到策略优化,也可以尝试用GAE来提升效果。

借鉴经济学中的 Shapley value 感觉也是个思路。可以把每个动作看作一个参与者,把最终的奖励看作是合作的结果,然后用 Shapley value 来衡量每个动作对奖励的贡献。 虽然计算复杂度可能比较高,但理论上应该能给出更公平的信用分配。

文章里提到的n步优势的指数加权平均,本质上就是个“取长补短”的策略。短期估计偏差大,长期估计方差大,GAE就是把不同长度的估计值按权重加起来,综合考虑。其他思路的话,感觉可以尝试用bootstrap之类的方法来估计方差,或者用集成学习的思想,训练多个不同的优势函数估计器,然后取平均或者投票。

其实我感觉,偏差和方差的平衡,说白了就是模型复杂度的问题。太简单的模型偏差大,太复杂的模型方差大。GAE相当于在模型复杂度上做了一个折中。如果想有新思路,可以考虑从正则化的角度入手,比如在损失函数里加入一些惩罚项,限制模型的复杂度。或者用一些模型选择的方法,比如交叉验证,来选择合适的模型复杂度。

GAE本质上就是在做 smoother,让 reward 的估计更平滑更可靠。所以我觉得在任何需要 smooth reward 的地方都可以用,不局限于特定的强化学习算法。比如说,在机器人控制领域,如果 reward 信号噪声比较大,就可以用 GAE 来过滤噪声,提高控制的稳定性。