策略梯度方法中概率对数的梯度具体是什么?

人工智能 强化学习 目标函数 政策梯度 坡度
2021-11-18 03:53:28

我对在策略梯度方法中计算梯度的具体程度感到有些困惑(只是对它的直观理解)。

这个数学堆栈交换帖子很接近,但我还是有点困惑。

在标准的监督学习中,可以专门获得偏导数,因为我们想了解成本对输入参数的导数,然后朝着最小化这个误差的方向进行调整。

策略梯度则相反,因为我们希望最大限度地提高采取良好行动的可能性。但是,我不明白我们得到的偏导数是什么 - 换句话说,成本函数的“等价物”是什么,特别是对于θlogπθ?

2个回答

考虑一个函数f(x)在哪里x是一个随机变量,其分布取决于θ. 目标是最小化

Ex[f(x)]=xf(x)π(x,θ)dx
在哪里π(x,θ)是概率密度x给定参数θ(要正式,您应该使用虚拟变量代替 x)。那么梯度是
(1)θEx[f(x)]=xf(x)θπ(x,θ)dx
方程。(1)本质上是策略梯度。我认为当写成 Eq 时。(1),很清楚梯度的实际含义。

要了解为什么这是策略梯度,首先我们有

xf(x)θπ(x,θ)dx=xf(x)θπ(x,θ)π(x,θ)π(x,θ)dx=Ex[f(x)θlogπ(x,θ)].
现在解释x作为行动,并解释f(x)成为预期回报。我省略了这个的全部细节,但希望你能明白。

策略梯度只是预期收益的梯度,相对于动作分布的参数。

我建议不要试图将这一点与监督学习联系起来。

政策π(;θ)只是一个由 theta 参数化的函数。如果我们采取log这个函数,它仍然只是一个函数。我们希望对该函数对参数进行(偏)导数,以便我们可以对参数执行梯度上升步骤。

一个简单的例子可以通过让π(a;α,β)=exp(α+βa). 在策略梯度定理中,我们必须首先记录可以给我们的策略log(π(a;α,β))=α+βa, 参数的偏导数是αlog(π(a;α,β))=1βlog(π(a;α,β))=a. 然后我们可以使用这些偏导数在我们的目标(价值函数,这当然是我们想要最大化的)的梯度方向上执行梯度上升更新αβ对于给定的回报Gt和行动at经过

α=α+Gt×αlog(π(at;α,β))=α+Gt×1β=β+Gt×αlog(π(at;α,β))=β+Gtat.

然而,在实践中,您可能需要一个更复杂的策略函数,通常是某种描述的神经网络。然而,一切都转化为这些更复杂的函数,你将需要计算更多的偏导数。