在强化学习中,策略迭代和 值迭代有什么不同?
据我所知,在价值迭代中,你使用贝尔曼方程来求解最优策略,而在策略迭代中,你随机选择一个策略 π,然后找到该策略的回报。
我的疑问是,如果你在 PI 中选择一个随机策略 π,即使我们选择了几个随机策略,如何保证它是最优策略。
在 策略迭代算法中,您从一个随机策略开始,然后找到该策略的值函数(策略评估步骤) ,然后根据以前的值函数找到一个新的(改进的)策略,依此类推。在这个过程中,每个策略都保证是对前一个策略的严格改进(除非它已经是最优的)。给定一个策略,可以使用 行李员接线员获得它的值函数。
在 值迭代中,您从一个随机值函数开始,然后在迭代过程中找到一个新的(改进的)值函数,直到达到最优值函数。注意,您可以很容易地从最优值函数派生出最优策略。这个过程是基于 最优贝尔曼算子的。
在某种意义上,两种算法共享相同的工作原理,它们可以被看作是 广义策略迭代的两种情况。然而,最优 Bellman 算子包含一个 Max算子,它是非线性的,因此,它具有不同的特征。此外,在纯值迭代和纯策略迭代之间可以使用混合方法。
让我们一起来看看。突出显示了比较的关键部分。数据来自萨顿和巴托的书: 强化学习: 简介。
要点:
根据我的经验,策略迭代比 值迭代快,因为策略比值函数收敛得更快。我记得这也是书中所描述的。
我想这种困惑主要来自于这些有点类似的术语,这些术语以前也曾让我困惑。
就我个人而言,与@zyxue 的观点相反,VI 通常是 快多了而不是 PI。
原因很简单,正如你们已经知道的,贝尔曼方程是用来求解给定策略的值函数的。因为我们可以求解 最佳状态策略 直接的值函数,所以求解 目前策略的值函数显然是浪费时间。
至于你关于 PI 收敛性的问题,我认为你可能忽略了一个事实,如果你改进了每个信息状态的策略,那么你就改进了整个博弈的策略。这也很容易证明,如果你熟悉反事实遗憾最小化——每个信息状态的遗憾总和已经形成了整体遗憾的上限,因此每个状态的遗憾最小化将使整体遗憾最小化,从而导致最优策略。
最基本的区别是-
在 政策迭代中,你随机选择一个策略并找到与之相对应的值函数,然后根据先前的值函数找到一个新的(改进的)策略,等等,这将导致最优策略。
在 价值迭代中,你随机选择一个值函数,然后在迭代过程中找到一个新的(改进的)值函数,直到达到最优值函数,然后从该最优值函数导出最优策略。
政策迭代按照“政策评估ーー > 政策改进”的原则进行。
价值迭代的原理是“最优价值函数ーー > 最优策略”。
速度上的主要差异是由于值迭代(VI)的每次迭代中的最大运算所致。
在 VI 中,每个状态只使用一个动作(带有最大效用值)来计算更新后的效用值,但是它首先必须计算所有可能的动作的值,以便通过贝尔曼方程找到这个动作。
在策略迭代(PI)中,通过遵循中间策略来选择操作,在步骤1(策略评估)中省略了这个最大操作。
如果有 N 个可能的操作,VI 必须计算每个状态的贝尔曼方程 N 次,然后取最大值,而 PI 只计算一次(对于当前策略所述的操作)。
然而在 PI 中,有一个策略改进步骤仍然使用 max 操作符,并且和 VI 中的步骤一样慢,但是由于 PI 在较少的迭代中收敛,这个步骤不会像 VI 中那样经常发生。