在强化学习中,策略迭代和值迭代之间有什么区别?
据我所知,在价值迭代中,您使用Bellman方程来求解最优策略,而在策略迭代中,您随机选择策略π,并找到该策略的奖励。
我怀疑的是,如果您在PI中选择随机策略π,即使我们选择了几个随机策略,它如何保证成为最优策略。
答案 0 :(得分:71)
让我们并排看看它们。强调了比较的关键部分。数据来自Sutton和Barto的书:强化学习:简介。
根据我的经验,策略迭代比值迭代更快,因为策略比值函数收敛得更快。我记得书中也有描述。
我猜这种混乱主要来自所有这些有些相似的术语,这些术语之前也让我很困惑。
答案 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汇合的问题,我想你可能会忽略这样一个事实,即如果你改进每个信息状态的策略,那么你就会改进整个游戏的策略。这也很容易证明,如果你熟悉反事实后悔最小化 - 每个信息状态的遗憾总和已形成整体遗憾的上限,从而最大限度地减少每个州的遗憾将最大限度地减少整体后悔,导致最优政策。