学习笔记(策略梯度)

发布时间:2026/11/6 7:51:07
学习笔记(策略梯度)

前文所述方法都是基于value进行评估,现在我们转向policy,并有值近似转向策略近似。

Basic idea of policy gradient

在先前,策略是用表格来表示的,我们可以直观地取出或改变表格的值。

现在,策略可以用参数方程表示,θ是一个向量。

这个方程可以是一个神经网络,输入是s,输出是采取各行动的概率,参数是θ。这种表示法的优势是,当状态空间很大的时候,表格法在存储和泛化上效率较差,而函数近似有更好的性能。

策略表格表示和函数表示之间存在差异

第一,如何来定义最优策略?

函数的定义是,这个策略能否最大化一个确定的标量度量。

第二,如何获取行动的概率?

表格法是直接查表,而函数法我们需要根据函数结构和参数计算π(a|s, θ)的值。

第三,如何更新策略?

表格法中,我们可以直接改变对应位置的策略值来更新策略,而函数法,我们只能通过改变θ的值来更新策略。

策略梯度的基本观点很简单,第一步,定义一个目标函数(metrics)来定义最优策略;第二步,通过梯度优化的方式来寻找最优策略。

Metrics to define optimal policies

有两个metrics,第一个是平均状态价值(average state value),定义如下

其中,d(s)>0代表state的权重,且∑d(s)=1,我们可以认为它是一个概率分布,因此平均价值可以被写为

,s服从d分布。

向量形式为

如何选择d的分布呢,我们有两种方法。

第一种方法是认为d是独立于策略pi的,这种方法相对简单,因为这样metric的梯度计算要更简单,d(s)求导时被视作常数。这种方法中,我们将

选择d0的分布也有两种方法,一种认为所有状态是同等重要的,也就是d0是均匀分布d0(s) = 1/|S|;第二种是我们只关注一个特定状态s0,例如在一些任务中episode经常从s0出发,此时我们只关注从s0出发的long-term return,因此有d0(s0) = 1, d0(s != s0) = 0,此时的目标函数被简化为J(w)=Vpi(s0)。

average value存在等价写法

利用全期望公式,按初始状态分布d对各个状态价值加权求和。

第二种方法是认为d取决于策略pi,一种通用的方法是认为d是策略pi下的stationary distribution,此时d满足,Pπ是状态转移矩阵。

第二个metric是average one-step reward或简写为average reward,平均奖励,定义如下

,S服从d分布dπ是stationary distribution,式中的rπ(s)是,是从状态s出发的平均单步奖励。

又有

此外,average reward还有一个等价的定义,假设一个agent遵循一个给定策略并生成了一个轨迹获得了一系列reward,那么沿着这条轨迹的平均单步reward就是

,s0是起始状态。固定起点s0,采样无数独立轨迹,把同一步奖励在不同轨迹上取平均,消除随机性,其中,E[∑ Rt+k]的含义是一个轨迹走n步,求总奖励的期望值,1/n是在求时间步上的平均,我们不是求n步一共拿多少奖励,而是在求每一步平均能拿多少奖励。

以上所述的两个metrics都是π的函数,因为θ是π的参数,所以metrics也是θ的函数,此外不同θ值会产生不同的metrics值,因此我们可以通过寻找θ的值使metrics值最大化。这是梯度下降方法的基本观点。

直觉上来说,average reward要更加短视,因为它仅仅考虑即时奖励,而average value则考虑总奖励,但事实上,这两个值之间存在数学关系。

Gradients of the metrics

metrics的计算是一个很复杂的问题,我们需要分辨不同的metrics还需要分discount和undiscount的情况。我们直接给出结果

一些特殊情况

这种的式子我们很难运用到计算中,因此我们对其做变形

这种形式的好处是,我们可以用采样值来近似期望,于是有

因为我们需要计算ln函数,因此我们要确保对所有的s、a、θ有π(a|s, θ) > 0,我们可以通过softmax的方法来归一化数据,这种方式可以被视作一个神经网络,输入为s,参数为θ,输出为π(a|s, θ),这个网络的输出层的激活函数应为softmax,因为对所有的a有π(a|s, θ) > 0,它已经兼具搜索的广度和深度,因此可以用greedy policy来更新策略。

Gradient-ascent algorithm

有了metrics的导数后,我们就可以得到梯度更新的算法了

梯度上升算法的目的是最大化目标函数

真实用

利用采样代替期望,又因为我们不知道qπ,因此用qt来近似。

估计qt又有两种方式,一种是MC,另一种是TD和其他方法。

如何进行采样?

因为behavior policy和target policy相同,所以是on-policy的。

因为π(at|st, θt)>0,当β大于0时,说明qt(st,at)大于零,说明这个action有效,会使下一次采取这个action的概率上升,反之β小于0时,说明action有害,下次采取这个action的概率下降。

同时β有助于平衡探索的广度和深度

β和qt成正比,如果qt大,β也变大,算法会给这个action更大概率。

β和π(at|st, θt)成反比,如果π(at|st, θt)小,β变大,因此算法会深入探索那些小概率的策略。

REINFORCE algorithm

回到基本算法中

如果qt以MC的方式来估计(用一个episode中s,a对后续的return作为qt的估计值),这个算法就被叫做REINFORCE。