为什么策略评估和策略迭代中价值函数的更新规则不同?

人工智能 强化学习 比较 政策迭代 政策评估 动态规划
2021-10-18 10:11:19

在 Richard Sutton 和 Andrew Barto 的教科书《强化学习:简介》中,策略评估的伪代码如下:

在此处输入图像描述

更新方程为V(s)来自贝尔曼方程vπ(s)为方便起见,在下面提到(更新方程):

vk+1(s)=aπ(a|s)s,rp(s,r|s,a)[r+γvk(s)]

现在,在策略迭代中,策略评估进入第 2 阶段,如以下伪代码中所述:

在此处输入图像描述

在这里,在政策评估阶段,V(s)使用不同的等式更新:

vk+1(s)=s,rp(s,r|s,π(s))[r+γvk(s)]
在哪里a=π(s)用来。

有人可以帮助我理解为什么在策略迭代中进行此更改吗?这两个方程是一样的吗?

1个回答

是的,这两个更新方程是等价的。顺便说一句,从技术上讲,您给出的方程式不是贝尔曼方程式,而是将更新步骤重写为方程式-在贝尔曼方程式中而不是vk+1(s)或者vk(s)(显示近似值函数的迭代),你会有vπ(s)(代表政策下一个国家的真实价值π)。

方程之间的区别在于

  • 在策略评估的第一种情况下,为了通用,随机策略π(a|s):S×AR=Pr{At=a|St=s}用来。这意味着要获得期望值,您必须汇总所有可能的操作a并通过策略函数输出对它们进行加权。

  • 在策略迭代的情况下,确定性策略π(s):SA用来。为此,您不需要知道所有可能的值a对于概率,但直接使用策略函数的输出作为代理所采取的操作。因此,该动作的概率为1在给定状态下被策略选择。

对于确定性策略,策略迭代中使用的方程已简化。如果你愿意,你可以使用代表政策π(a|s)并使用与政策评估相同的方程式。如果您这样做,您还需要将策略改进策略更新步骤更改为:

amaxargmaxar,sp(r,s|s,a)[r+γV(s)]

 for each aA(s)

π(a|s)1 if a=amax,0 otherwise 

这样做会产生与以前完全相同的价值函数和策略。这样做的唯一原因是在处理确定性策略时显示两组更新方程之间的等价性。