关于策略迭代和价值迭代之间区别的几个问题

人工智能 强化学习 政策 价值迭代
2021-11-11 11:18:09

这个问题已经有了一些答案但我仍然觉得它很不清楚(也π(s)这里的意思q(s,a)?):

在此处输入图像描述

我不明白的几件事是:

  • 如果我们在每一次迭代中都贪婪地行动,为什么会有两次迭代之间的差异?根据许多来源,“价值迭代”没有明确的政策,但在这里我们可以看到政策是贪婪地行动v(s)
  • 政策改进究竟意味着什么?我们是只在特定迭代的特定状态下贪婪地行动,还是一旦我们对特定状态贪婪地行动,我们继续对该状态贪婪地行动,并且迭代地添加其他状态,直到在所有状态中我们都贪婪地行动?
  • 我们可以直观地理解,贪婪地行事v(s)会导致v(s)最终,但使用策略迭代最终会导致v(s)?

注意:我一直在考虑Gridworld上下文中的所有算法,但如果您认为有更好的示例来说明差异,欢迎您。

1个回答

π(s)并不意味着q(s,a)这里。π(s)是一种策略,表示特定状态在动作空间上的概率分布。q(s,a)是一个状态-动作对价值函数,它告诉我们通过采取行动期望获得多少奖励a处于状态s向前。

对于具有此更新公式的右侧的值迭代:

v(s)maxasp(ss,a)[r(s,a,s)+γv(s)]

我们有一个更新状态值的隐式贪婪确定性策略s基于给我们最大预期回报的贪婪行为。当值迭代基于贪婪行为收敛到它的值后n迭代我们可以得到明确的最优策略:

π(s)=argmaxasp(ss,a)[r(s,a,s)+γv(s)]

在这里,我们基本上是说对状态具有最高期望奖励的动作s概率为 1,动作空间中所有其他动作的概率为 0

对于左侧使用此更新公式的策略评估:

v(s)sp(ss,π(s))[r(s,π(s),s)+γv(s)]

我们有明确的政策π在一般情况下,一开始并不贪婪。该策略通常是随机初始化的,因此它所采取的行动不会是贪婪的,这意味着我们可以从采取一些非常糟糕的行动的政策开始。它也不需要是确定性的,但我想在这种情况下它是确定性的。这里我们正在更新状态值s根据现行政策π.
在策略评估步骤运行后n迭代我们从策略改进步骤开始:

π(s)=argmaxasp(ss,a)[r(s,a,s)+γv(s)]

在这里,我们根据通过策略评估步骤获得的状态值贪婪地更新我们的策略。可以保证我们的策略会改进,但不能保证我们的策略仅在一个策略改进步骤之后就会是最优的。在改进步骤之后,我们对新的改进策略进行评估步骤,然后我们再次进行改进步骤,依此类推,直到我们收敛到最优策略