策略迭代与值迭代

时间:2017-05-02 01:35:35

标签: machine-learning reinforcement-learning

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

1)我听说政策迭代“向前工作”,而价值迭代“向后工作”。这是什么意思?我认为这两种方法只需要采用每个状态,然后查看它可以达到的所有其他状态,并从中计算出值 - 通过边缘化策略的动作分配(策略迭代)或者将argmax与动作值(值迭代)。那么为什么每个方法都“移动”的“方向”有什么概念呢?

2)策略迭代需要在策略评估期间进行迭代过程,以找到值函数 - 但是,值迭代只需要一步。为什么会有所不同?为什么值迭代只需一步收敛?

谢谢!

2 个答案:

答案 0 :(得分:5)

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

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

enter image description here

在这个迭代过程结束时,价值和政策都收敛到最优。

然而,注意到没有必要精确计算全值函数,相反,需要一步来允许收敛。在下图中,(b)表示Policy Iteration执行的操作,其中计算了完整值函数。而(d)显示了值迭代的工作原理。

enter image description here

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

答案 1 :(得分:2)

  

我听说政策迭代“向前工作”,而价值迭代“向后工作”。这是什么意思?

我找不到任何在线描述政策迭代和价值迭代的方向,据我所知,这不是解释它们之间差异的常用方法。

一种可能性是某人指的是在价值迭代中传播的价值的视觉印象。在第一次扫描之后,值在1倍的时间范围内是正确的。如果您有1个tilmestep生活,每个值都会正确地告诉您如何最大化您的累积奖励。这意味着指出转换到终端状态并接收奖励具有正值,而大多数其他所有其他值都为0.每次扫描,值变为正确的一个时间长度的地平线。因此,当地平线扩展时,值从末端状态向开始状态向后蔓延。在策略迭代中,您不是仅将值传回一步,而是计算当前策略的完整值函数。然后你改进政策并重复。我不能说这有一个前进的内涵,但它肯定缺乏向后的外观。您可能希望查看Pablo's answer类似的问题,以获得可能有助于您将所听内容置于语境中的差异的其他解释。

你也可能听说过这种向前 - 向后对比的相关事物,但不同;时间差异学习算法的实现。在这种情况下,方向指的是在更新状态操作值时查看的方向; 转发表示您需要获取有关未来操作结果的信息,而向后表示您只需要有关之前发生的事情的信息。您可以在Reinforcement Learning: An Introduction 2nd edition的第12章中了解这一点。

  

为什么策略迭代必须进行一堆值函数计算,当值迭代似乎只是最终是最优的?为什么值迭代只需一步收敛?

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

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