1

我正在尝试学习用于强化学习的策略梯度方法,但我停留在分数函数部分。

在搜索函数中的最大或最小点时,我们取导数并将其设置为零,然后寻找保持该方程的点。

在策略梯度方法中,我们通过获取轨迹期望的梯度来做到这一点,我们得到:

目标函数图像

在这里,我无法理解这种对数策略的梯度如何改变分布(通过其参数 θ)以在数学上增加其样本的分数?正如我上面解释的那样,我们不是在寻找使这个目标函数的梯度为零的东西吗?

4

1 回答 1

1

你想要最大化的是

J(theta) = int( p(tau;theta)*R(tau) ) 

积分结束tau(轨迹)并且p(tau;theta)是它的概率(即,看到序列状态、动作、下一个状态、下一个动作,...),这取决于环境的动态和策略(由 参数化theta) . 正式地

p(tau;theta) = p(s_0)*pi(a_0|s_0;theta)*P(s_1|s_0,a_0)*pi(a_1|s_1;theta)*P(s_2|s_1,a_1)*...

其中P(s'|s,a)是动力学给出的转移概率。

由于我们无法控制动态,只能控制策略,因此我们对其参数进行优化,并通过梯度上升来实现,这意味着我们采用梯度给出的方向。您图像中的方程式来自 log-trick df(x)/dx = f(x)*d(logf(x))/dx

在我们的例子f(x)p(tau;theta),我们得到了你的等式。然后,由于我们只能访问有限数量的数据(我们的样本),我们用期望来近似积分。

一步一步,您将(理想情况下)达到梯度为 0 的点,这意味着您达到了(局部)最优值。

您可以在此处找到更详细的说明。

编辑

非正式地,您可以考虑学习增加看到高回报概率的策略R(tau)。通常,R(tau)是奖励的累积总和。因此,对于每个状态-动作对,您可以最大化您在状态下执行并随后(s,a)执行所获得的奖励总和。检查这个伟大的总结了解更多细节(图 1)。aspi

于 2019-05-24T18:44:04.997 回答