我如何理解 REINFORCE 与基线不是演员批评算法?

机器算法验证 强化学习
2022-04-12 12:47:11

我读了Sutton 的 RL 书,发现在第 333 页

尽管 REINFORCE-with-baseline 方法同时学习了策略和状态值函数,但我们不认为它是一个参与者-批评者方法,因为它的状态值函数仅用作基线,而不是批评者。也就是说,它不用于自举(从后续状态的估计值更新一个状态的值估计),而仅用作正在更新其估计的状态的基线。

REINFORCE-with-baseline 的伪代码是 在此处输入图像描述

actor-critic 的伪代码是

在此处输入图像描述

在上面的伪代码中,我如何理解bootstrapping,我认为 REINFORCE-with-baseline 和 actor-critic 是相似的,初学者很难区分。

3个回答

不同之处在于如何(以及何时)计算预测误差估计值δ

在带有基线的 REINFORCE 中:

δGv^(St,w) ; 剧情结束后

在演员评论家中:

δR+γv^(S,w)v^(S,w) ; 在线的

RL 中的自举是当使用来自后继状态来构建对前一个状态的更新时。到目前为止,这种对学习模型的自我引用允许在每一步进行更新,但代价是初始偏差会偏向于模型的初始化方式。总的来说,更快的更新通常可以带来更有效的学习。然而,偏差会导致不稳定。v^SS

在 REINFORCE 中,使用的是最终收益,这与您在 Monte Carlo 控制中使用的值相同。的值不是自举估计值,它是当前策略行为时所见回报的直接样本。因此,它没有偏见,但您必须等到每集结束后才能应用更新。GG

我会补充@Neil Slater给出的答案,并说你必须知道有两种方法可以减少MC Reinforce的方差,它们是:

  • 减去基线
  • 近似预期回报,而不是以 MC 方式估计它

Reinforce with baseline 仅使用第一种方法,而 Actor-critic 使用的是第二种方法。

您在此处展示并在 Sutton 的书中称为 actor-critic 的算法实际上是一个Advantage Actor Critic,并且正在使用这两种技术来减少方差。

这篇文章晚了四年。还是有什么要补充的……

我认为 REINFORCE-with-baseline 和 actor-critic 是相似的,初学者很难区分。

尼尔的回答很棒。但我想萨顿巴托书中的解释很好地阐明了上述引用的疑问。

( RLBook , pdf page 353, book page 331, section 13.5 Actor-Critic Methods)

在带基线的 REINFORCE 中,学习到的状态值函数估计每个状态转换的唯一第一个状态的值。该估计为后续回报设定了基线,但在过渡行动之前进行,因此不能用于评估该行动。另一方面,在 actor-critic 方法中,状态值函数也适用于转换的第二个状态。第二个状态的估计值,当打折并添加到奖励中时,构成一步回报,Gt:t+1,这是对实际回报的有用估计,因此是评估行动的一种方式。正如我们在本书通篇对价值函数的 TD 学习中所看到的,单步回报在方差和计算一致性方面通常优于实际回报,即使它引入了偏差。我们还知道如何通过 n 步回报和资格跟踪灵活地调节偏差的程度。当使用状态值函数以这种方式评估动作时,它被称为批评者,而整体策略梯度方法被称为演员-批评者方法请注意,梯度估计中的偏差不是由于自举本身;即使批评家是通过蒙特卡洛方法学习的,演员也会有偏见。

为了使其更直观,让我们看一下两者中的更新 rools。更准确地说,请注意 REINFORCE 与基线使用Gt=k=t+1Tγkt1Rk和演员评论家使用Gt:t+1=Rt+1+γv^(St+1,w)

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

PS1:

我没有在 Sutton Barto 的书中找到您引用的文字:

尽管 REINFORCE-with-baseline 方法同时学习了策略和状态值函数,但我们不认为它是一个参与者-批评者方法,因为它的状态值函数仅用作基线,而不是批评者。也就是说,它不用于自举(从后续状态的估计值更新一个状态的值估计),而仅用作正在更新其估计的状态的基线。