值迭代和策略迭代之间有什么区别?

时间:2016-05-22 02:43:25

标签: machine-learning reinforcement-learning markov-models value-iteration

在强化学习中,策略迭代值迭代之间有什么区别?

据我所知,在价值迭代中,您使用Bellman方程来求解最优策略,而在策略迭代中,您随机选择策略π,并找到该策略的奖励。

我怀疑的是,如果您在PI中选择随机策略π,即使我们选择了几个随机策略,它如何保证成为最优策略。

5 个答案:

答案 0 :(得分:71)

让我们并排看看它们。强调了比较的关键部分。数据来自Sutton和Barto的书:强化学习:简介

enter image description here 要点:

  1. 政策迭代包括:政策评估 + 政策改进,并且两者会反复重复,直到政策收敛为止。
  2. 价值迭代包括:查找最佳价值函数 +一个政策提取。两者没有重复,因为一旦价值函数是最优的,那么它的政策也应该是最优的(即收敛)。
  3. 查找最佳价值函数也可视为政策改进(由于最大值)和截断政策评估的组合(仅在一次扫描所有状态后重新分配v_(s),而不管收敛)。
  4. 政策评估查找最佳价值函数的算法非常相似,但最大操作除外(如突出显示)
  5. 同样,政策改进政策提取的关键步骤是相同的​​,除了前者涉及稳定性检查。
  6. 根据我的经验,策略迭代值迭代更快,因为策略比值函数收敛得更快。我记得书中也有描述。

    我猜这种混乱主要来自所有这些有些相似的术语,这些术语之前也让我很困惑。

答案 1 :(得分:55)

策略迭代算法中,您从随机策略开始,然后找到该策略的值函数(策略评估步骤),然后根据之前的值函数查找新的(改进的)策略, 等等。在这个过程中,每个策略都保证是对前一个策略的严格改进(除非它已经是最优的)。给定策略,可以使用 Bellman运算符获取其值函数。

值迭代中,您从随机值函数开始,然后在迭代过程中找到新的(改进的)值函数,直到达到最佳值函数。请注意,您可以从最佳值函数轻松派生出最优策略。此过程基于最优性Bellman算子

在某种意义上,两种算法都具有相同的工作原理,它们可以被视为generalized policy iteration的两种情况。但是,Bellman算子的最优性包含 max 运算符,它是非线性的,因此具有不同的特征。此外,可以在纯值迭代和纯策略迭代之间使用混合方法。

答案 2 :(得分:2)

基本区别是-

Policy Iteration 中-您随机选择一个策略并找到与其对应的价值函数,然后根据先前的值函数找到一个新的(改进的)策略,依此类推,这将导致最优政策。

值迭代中-您随机选择一个值函数,然后在迭代过程中找到一个新的(改进的)值函数,直到达到最优值函数,然后从该最优值中得出最优策略。功能。

政策迭代遵循“政策评估--->政策改进”的原则。

价值迭代基于“最优价值功能->最优策略”的原理。

答案 3 :(得分:1)

速度的主要差异是由于值迭代 (VI) 的每次迭代中的最大操作。

在 VI 中,每个状态将仅使用一个动作(具有最大效用值)来计算更新的效用值,但它首先必须计算所有可能动作的值,以便通过贝尔曼方程找到该动作。

在策略迭代 (PI) 中,此最大操作在步骤 1(策略评估)中被省略,只需遵循中间策略来选择操作。

如果有 N 个可能的动作,VI 必须为每个状态计算 N 次贝尔曼方程,然后取最大值,而 PI 只计算一次(针对当前策略规定的动作)。

但是在 PI 中,有一个策略改进步骤仍然使用 max 运算符,并且与 VI 中的步骤一样慢,但由于 PI 在较少的迭代中收敛,因此该步骤不会像 VI 中那样频繁发生。< /p>

答案 4 :(得分:0)

就我而言,与@zyxue的想法相反,VI通常比PI强快得多

原因非常简单,正如您所知,Bellman方程用于解决给定策略的价值函数。由于我们可以直接解决最优政策的价值函数,解决当前政策的价值函数显然是浪费时间。

至于你关于PI汇合的问题,我想你可能会忽略这样一个事实,即如果你改进每个信息状态的策略,那么你就会改进整个游戏的策略。这也很容易证明,如果你熟悉反事实后悔最小化 - 每个信息状态的遗憾总和已形成整体遗憾的上限,从而最大限度地减少每个州的遗憾将最大限度地减少整体后悔,导致最优政策。