学习RL(五)

更新记录

2025-12-15:从策略下的系统演进路径推导PG为什么不需要对环境迁移概率求导从而引出baseline的概念。

1. 为什么要有Policy Gradient

学习RL(三)当中提到,相比策略评估和策略迭代分开进行的方法,GPI已经有了进步,能够在策略评估的阶段就先把actions: (离散的)遍历一遍,找到使得action-value (为了把概念表达清晰,这里我想纠正我之前的blog当中对action-value采用的符号:)最大的那个 : 。之前在写blog的时候,脑子里面一直就藏着一个大问号:如果是控制电机的转速这种连续的场景,该怎么遍历 呢?当时我的想法是将 分段考虑,但是直到我知道有Policy Gradient

2. 什么是函数的Gradient

梯度一般是在函数自变量空间当中的一个向量(假设函数的自变量是一个向量),坐标系统是在一个垂直正交的系统中,就是一个在坐标系统中有方向有大小的向量,方向代表了自变量沿着该方向移动微小距离,函数变化最大。)。 Gradient pic

3. 算法推导

对比之前的依据action-value寻找上的,本方法依旧会使用,但是并不在每次的迭代中(GDI)去直接做action的选择,而是参与到对(1)的梯度计算当中。

In this chapter we consider methods for learning the policy parameter based on the gradient of some performance measure with respect to the policy parameter. These methods seek to maximize performance, so their updates approximate gradient ascent in

Sutton's Book解释了为什么要计算的梯度,因为每次迭代的过程其实就是先计算该梯度,然后更新, 直到最后更新的变化量很小,终止迭代,完成学习。

  • 为了推导,首先针对进行梯度计算。

  • 下面的图作为一个提纲性的指导,把如何迭代地计算某状态的价值函数对的梯度进行了分解。

  • 推导过程中,因为策略是关于的函数,所以都是关于的函数。

  • 使用实际应用的推导

  • 上面的问题,我从书里找到了答案:是环境的输出,在agent基于采取行动之后,输出了和新的。配合下面的图一起看。

这个事件发生的概率是纯粹由环境决定的,跟agent采取什么样的策略无关。所以,该概率不是的函数,从而求梯度为0。

answer to above question
  • 继续推导,把上面对行动价值的梯度结果写入到对价值函数的梯度当中,如下图Policy Gradient的第一个公式,观察该公式是遍历了状态之后的所有可能

  • 都是关于状态的函数,跟action无关,最后推导的结果是,把action隐藏起来了。

  • 直接对策略优化的方法,是on-policy的一种。由于事先并不知道,在一个episode开始的时候,从某一个状态起步,把当作是,所以:

  • 下图解释了在状态离散的情况下,是某种状态出现的次数,通过归一化,就可以计算该状态出现的概率,从而可以扩展到连续状态下,该状态出现的概率密度。

4. baseline的引入

先放上让人望而生畏的公式: 只看这个没有思路。

衡量一个策略是否好(some performance measure of policy)从回合制(Episodic)来讲,就是看积累的收益的期望:大还是小;好的能够提升,那么就存在一个使得最大化。不同的策略会导致在环境当中的路径不同:如何定义路径?如果只是状态,那就跟策略没关系了,我们需要把策略连带进来:在相同的状态下,不同策略选择的行动是不一样的,按照某一种策略行动所得到的和按照另外一种策略行动所得到是不一样的,这个过程是靠积累才慢慢看出来的,所以,就是靠路径区分不同策略。Going Deeper Into Reinforcement Learning: Fundamentals of Policy Gradients。后面的推导,其实是建立在这个想法的基础上的。我觉得文章作者的这个Trajectory:的提出非常好,既跟环境联系,也跟策略联系起来。 某种策略某次试验下的收益:既然外部环境是混沌的,就代表,就算是相同状态相同策略下,每次实验得到的是不一样的。为了准确建模每一次,我们需要改一下上面的:改为 这个概念看作一种元数据,就是暂时先不关心每次状态-行动-奖励-状态-行动的传导细节,只关心更长的一个传导链条

  • 强调的是环境的反馈,但是相同状态下,采取不同的得到的不同,所以,后面会牵扯进来,但是现在不会。
  • 不需要一步直接找到,通过求去更新
  • 先不着急展开,先整体看: 梯度变为了一个期望。但是还太粗糙,需要继续细化:代表一个路径,路径拆分成一串独立的SARSA:
  • 单独看(计算:策略下形成的概率的对数对策略参数的梯度),顺便就把整个对数计算了:
  • 从而(下面的公式中,等同于):
  • 到这里,还不够精细,我们希望摆脱走整条轨迹之后,才可以计算期望,看看能不能每一步(step)都可以计算出来这个期望。本能地,拆开看看: 代入,得到

两组连加相乘可以转为各个项目相乘再连加,变为: 到这里,困扰我的问题(如何得到的())自然就得到了解决。还是从轨迹的形成过程来看,我们取时刻,当时,,因为从时刻之后的动作选择是跟当前时刻的奖励无关的,即 还有:

所以,得到下面的简化版本,每一行是按照相乘,逐行项目增加1。第列提取出,跟其相乘的提取到连加:

根据状态-动作价值函数的定义State-Action-Fucntion

2026-01-12:这里更正一下,状态-动作价值函数定义是下式,是对多个轨迹求期望的结果。(Q的真实值,像是只有上帝才知道的量,我们人类只能尽量去估计)

是说,在这一条轨迹上,时刻之后的衰减收益。所以,总结这里的问题就是,在时刻的状态收益并不等于在时刻的状态收益的期望。只不过,在后续的基于策略梯度的改进框架中,例如A2C,不断改进的策略会影响环境对动作的奖励,从而单条轨迹上的收益越来越接近很多条轨迹的期望收益。

从时间先后看,假设,当的时候,计算出来的很不稳定。因为我们并不能很好预测未来很远的情况。能不能把一个和当前时刻强相关的概念加进来,去抵消一下未来的不确定性?而且这个量自己也具有不确定性,因为如果确定了,那就没有意义了。

Greensmith, Evan, Bartlett, Peter L, and Baxter, Jonathan. Variance reduction techniques for gradient estimates in reinforcement learning

baseline

上面的问题,就开辟出了很大的想象空间。

中,reward那里加入baseline:

就是baseline。 单独看第二个期望:

上面的推导证明了引入baseline不会导致对梯度的估计产生偏差(bias)。重点是,为什么会减小波动,提高估计的稳定性?那就看看方差

实际上,一个期望的方差是0,因为期望是一个常数,并不会随着期望里面的变量性质变化而变化,但是实际操作,期望会有很大的变动,原因是求和后面的因素导致了不稳定。所以就跨过严格的数学定义,直接看求和的实际变动。 chapter: Understanding the Baseline (下面的公式引自链接文章!)公式中

中,当较小时,方差较小;所以,当在时候,尽可能根据找到和接近的,最理想的就是:。更通俗的话来说,就是每次迭代,动态给定一个望向未来的“海平面”或者“基准线”,我们把眼睛贴近到这个东西上面去,那么未来的()的所谓的收益会因为这个基准的设定而要么浮在上面,要么沉在下面,且不会距离基准特别远。

向实际应用考虑

中,如何去选择就决定最终迭代的方向。类似于,该函数的具体形式决定了优化过程的“山”的形态,不同的山,也就决定了每一步的方向。

Advantage Function

State-Action-Fucntion里面: Advantage Function的定义: 从直觉理解,这个函数能够评价采取行动的预期收益“大于”采取“平均行动(Avg. Action)”所获得的预期收益的程度。某种程度上,状态的价值函数就是在该状态下,采取平均行动(Avg. Action)”所获得的预期收益:和状态-行动价值形成一致的理解。

这篇论文generalized advantage estimation(GAE)详细介绍了如何更好地通过估计Advantage Function 来实现策略梯度。

Quote from GAE:

The choice yields almost the lowest possible variance, though in practice, the advantage function is not known and must be estimated. This statement can be intuitively justified by the following interpretation of the policy gradient: that a step in the policy gradient direction should increase the probability of better-than-average actions and decrease the probability of worse-than-average actions. The advantage function, by it’s definition , measures whether or not the action is better or worse than the policy’s default behavior. Hence, we should choose to be the advantage function , so that the gradient term points in the direction of increased if and only if . See Greensmith et al. (2004) for a more rigorous analysis of the variance of policy gradient estimators and the effect of using a baseline.

总结

的得到,和Policy Gradient最后的结果是一致的。后续基于这个理论的改良,都是想办法降低期望的方差,尽量找到对的

参考


学习RL(五)
https://warden2018.github.io/2025/06/09/2025-06-09-RL_5/
作者
Yang
发布于
2025年6月9日
许可协议