为什么 REINFORCE 算法中的贴现率会出现两次?

人工智能 强化学习 算法 萨顿巴托 加强
2021-11-03 20:26:20

我正在阅读Richard S. Sutton 和 Andrew G. Barto 的《强化学习:介绍》一书(完整的草稿,2017 年 11 月 5 日)。

在第 271 页,介绍了情景蒙特卡洛策略梯度方法的伪代码。看着这个伪代码,我不明白为什么折扣率似乎出现了 2 次,一次在更新状态,第二次在返回中。[见下图]

在此处输入图像描述

似乎步骤 1 之后的步骤的返回只是第一步返回的截断。此外,如果你只看书的上一页,你会发现一个只有 1 个折扣率的方程(回报中的那个)。

那么为什么伪代码看起来不一样呢?我的猜测是我误解了一些东西:

(13.6)θt+1 =˙ θt+αGtθπ(At|St,θt)π(At|St,θt).

3个回答

折扣因子确实出现了两次,这是正确的。

这是因为您试图在 REINFORCE 中针对一个情节问题(通过采用梯度)最大化的函数是从给定(分布)开始状态的预期回报:

J(θ)=Eπ(θ)[Gt|St=s0,t=0]

因此,在这一集中,当您对收益进行抽样时G1,G2等等,这些将与您正在解决的问题不太相关,正如您所指出的,第二次减少了折扣因子。在极端情况下出现偶发性问题和γ=0那么 REINFORCE 只会为第一个动作找到最优策略。

在持续的问题中,您将使用不同的公式J(θ),并且这些不会导致额外的因素γt.

尼尔的回答已经提供了一些关于为什么伪代码的直觉(带有额外的γt术语)是正确的。

我想另外澄清一下,您似乎没有误解任何东西,书中的公式(13.6)确实与伪代码不同

现在,我没有你在这里提到的那本书的版本,但我确实有 2018 年 3 月 22 日的后期草稿,关于这个特定主题的文本似乎很相似。在这个版本中:

  • 在第 326 页的末尾,明确提到他们将假设γ=1在他们对策略梯度定理的证明中。
  • 该证明最终导致第 329 页上的相同方程 (13.6)。
  • 在第 330 页的伪代码下方,他们实际上简要说明了方程式和伪代码之间的差异,并说这种差异是由于假设γ=1在证明中。
  • 就在下面,在练习 13.2中,他们给出了一些提示,说明如果你想为以下情况推导修改后的证明,你应该看什么γ<1.

这是一个微妙的问题。

如果您查看原始论文中的 A3C 算法(p.4 和附录 S3 的伪代码),他们的演员批评算法(相同的算法包括偶发问题和持续问题)相对于演员 -萨顿和巴托书中情节问题的评论家伪代码(http://incompleteideas.net/book/the-book.html的 2019 年 1 月版的第 332 页)。Sutton 和 Barto 的书中有额外的“第一”伽马,如您的图片中所示。那么,无论是书还是 A3C 论文都错了?并不真地。

关键在p。萨顿和巴托的书 199:

如果存在贴现(gamma < 1),则应将其视为一种终止形式,这可以简单地通过在 (9.2) 的第二项中包含一个因子来完成。

微妙的问题是对贴现因子 gamma 有两种解释:

  1. 一个乘法因素,对遥远的未来奖励的权重较小。
  2. 在任何时间步,模拟轨迹虚假终止的概率 1 - gamma。这种解释只适用于偶发病例,而不适用于持续病例。

字面实现:

  1. 只需将未来的奖励和相关数量(V 或 Q)乘以 gamma。
  2. 模拟一些轨迹并在每个时间步随机终止它们(1 - gamma)。终止的轨迹没有立即或未来的奖励。

伽玛的两种解释是有效的。但是选择一个或另一个意味着你正在解决一个不同的问题。数学略有不同,你最终得到一个额外的伽马乘法Glnπ(a|s)与第二种解释。

例如,如果您在步骤 t=2 且 gamma = 0.9,则第二种解释的算法是策略梯度为γ2Glnπ(a|s)或者0.81Glnπ(a|s). 该项的梯度功率比 t=0 项低 19%,原因很简单,即 19% 的模拟轨迹在 t=2 时消失。

对于伽马的第一次解释,没有这样的 19% 衰变。策略梯度只是Glnπ(a|s)在 t=2。但是伽马仍然存在于G打折未来的奖励。

您可以选择对 gamma 的任何解释,但您必须注意算法的后果。我个人更喜欢坚持解释 1,因为它更简单。所以我使用 A3C 论文中的算法,而不是 Sutton 和 Barto 的书。

你的问题是关于强化算法的,但我一直在讨论演员评论家。您在 REINFORCE 中遇到了与两种伽马解释和额外伽马有关的完全相同的问题。