为什么将策略迭代和价值迭代作为单独的算法进行研究?

人工智能 强化学习 比较 价值迭代 政策迭代
2021-11-16 06:21:04

在 Sutton 和 Barto 关于强化学习的书中,策略迭代和价值迭代被呈现为单独/不同的算法。

这非常令人困惑,因为策略迭代包括值的更新/更改,而值迭代包括策略的更改。它们是相同的东西,如广义策略迭代方法中所示。

那么,为什么在许多论文中也将它们(即策略和值迭代)视为两种独立的更新方法以达到最优策略?

2个回答

策略迭代由两个步骤组成。第一个是完整的策略评估,其中为当前策略计算价值函数。第二个是政策改进,政策在价值函数方面变得贪婪。

值迭代通过在一次迭代后停止策略评估来加快速度,使策略相对于该值函数变得贪婪,并重复直到收敛。

显然,这是两种不同的算法,因此它们被认为是不同的。然而,它们之间的联系非常紧密,这就是为什么你可能认为它们是“同一件事”。我想你可以说它们属于同一个算法家族。

策略迭代基于这样的见解,即对于给定的策略,可以直接准确地计算价值函数(处于给定阶段的长期预期贴现值)——它是该点的一组线性方程。因此,我们更新策略,然后计算状态的确切值以始终遵循该特定策略,并在此基础上再次更新策略,等等。

相比之下,价值迭代没有使用这种洞察力。它只是一次一步地更新对处于状态的值的估计。如果这些值被初始化为 0,你可以认为i如果我们知道 MDP 将i迭代我们从来没有真正需要明确地考虑策略(尽管我们实际上每次迭代都在计算一个策略),也从来没有直接计算预期折扣奖励的无限总和。

这些只是普通变体,可以混合和匹配这些想法——例如,您可能不会通过显式求解线性方程组来评估策略,而只是进行一些迭代——但普通变体显然是不同的。