策略迭代与价值迭代

Policy Iteration vs Value Iteration

在强化学习中,我试图理解策略迭代和值迭代之间的区别。对此有一些一般性的答案,但我有两个具体的问题我找不到答案。

1) 我听说策略迭代 "works forwards",而值迭代 "works backwards"。这是什么意思?我认为这两种方法都只是采用每个状态,然后查看它可以达到的所有其他状态,并由此计算值——通过边缘化策略的动作分布(策略迭代)或通过将 argmax 与行动价值(价值迭代)。那么为什么会有任何 "direction" 的概念,其中每个方法 "moves"?

2) Policy iteration需要在policy evaluation的时候有一个迭代的过程,找到value function -- by 但是value iteration只需要一步。为什么这是不同的?为什么值迭代一步收敛?

谢谢!

I have heard that policy iteration "works forwards", whereas value iteration "works backwards". What does this mean?

我在网上找不到任何从方向上描述策略迭代和值迭代的东西,据我所知这不是解释它们之间区别的常用方法。

一种可能是有人指的是值迭代中传播的值的视觉印象。第一次扫描后,值在 1 个时间步长范围内是正确的。如果您还有 1 tilmestep 可活,每个值都会正确地告诉您如何做才能最大化您的累积奖励。这意味着过渡到最终状态并获得奖励的状态具有正值,而其他大多数情况下均为 0。每次扫描,值都会在一个时间步长的范围内变得正确。因此,随着范围的扩大,这些值从终端状态向后向后 蠕变。在策略迭代中,您计算​​当前策略的完整价值函数,而不是仅仅将值传播回一步。然后你改进策略并重复。我不能说它具有 forward 的含义,但它肯定缺少向后的外观。您可能希望看到 Pablo's answer 对类似问题的不同之处的另一种解释,这可能有助于您将所听到的内容背景化。

您也有可能听说过这种前后对比,这种对比与某些相关但不同的事物有关;时间差异学习算法的实现。在这种情况下,方向指的是更新状态-动作值时您看向的方向; forwards 意味着您需要了解有关未来操作结果的信息,而 backwards 意味着您只需要有关之前发生的事情的信息。您可以在 Reinforcement Learning: An Introduction 2nd edition.

的第 12 章中阅读相关内容

Why does policy iteration have to do a bunch of value function calculations when value iteration seemingly just does one that ends up being optimal? Why does value iteration converge in just one step?

在政策评估中,我们已经有了一项政策,我们只是在计算按照它的指示采取行动的价值。它反复查看每个状态并将状态的值移向策略操作将过渡到的状态的值(直到值停止变化并且我们认为它收敛)。这个价值函数不是最优的。它之所以有用,是因为我们可以将它与策略改进定理结合使用来改进策略。提取新策略的昂贵过程很少发生,而且策略似乎很快收敛,这需要我们在一个状态下最大化行动。因此,尽管政策评估步骤看起来很耗时,但 PI 实际上非常快。

值迭代只是策略迭代,您只进行一次策略评估迭代并同时提取新策略(最大化操作是隐式策略提取)。然后你一遍又一遍地重复这个迭代-提取过程,直到值停止变化。这些步骤合并在一起的事实使它在纸面上看起来更直接,但每次扫描时最大化是昂贵的,并且意味着价值迭代通常比策略迭代慢。

@Nick Walker 提供的答案是正确且非常完整的,但是我想添加一个图形解释来解释值迭代和策略迭代之间的区别,这可能有助于回答您问题的第二部分。

PI 和 VI 这两种方法都遵循基于 Generalized Policy Iteration 的相同工作原理。这基本上意味着他们在改进策略(这需要知道它的价值函数)和计算新的、改进的策略的价值函数之间交替。

在此迭代过程结束时,值和策略都收敛到最优值。

但是,请注意,没有必要精确计算完整的价值函数,相反,需要一步才能收敛。在下图中,(b) 表示由 Policy Iteration 执行的操作,其中计算了完整的价值函数。而 (d) 显示了值迭代的工作原理。

显然这两种方法的这种表示都是简单的,但它突出了每种算法背后的关键思想之间的差异。