[RL Notes] 策略改进
通过迭代策略评估得到给定策略下的价值函数后,就可以据此对策略进行改进,以得到更好的策略。
假设已知某个策略 π 的价值函数 vπ,我们希望知道如果在某个状态 s 上选择一个不同于策略 π 的动作 a≠π(s),是否会带来改善。已知在状态 s 上继续遵守策略 π 的价值为 vπ(s);考虑在状态 s 选择动作 a,然后继续遵循现有策略 π,这种策略的值为
qπ(s,a)≐E[Rt+1+γvπ(St+1)|St=s,At=a]=∑s′,rp(s′,r|s,a)[r+γvπ(s′)]
如果上式的值大于 vπ(s),说明在 s 选择动作 a、然后继续使用策略 π 比一直使用策略 π 更优,由此就得到了一个新的更优的策略。
更一般地,策略改进定理表明,对于任意的两个策略 π 和 π′ 和任意状态 s∈S,如果
qπ(s,π′(s))≥vπ(s)
则称策略 π′ 相比于 π 一样好或更好。即对任意状态 s∈S,π′ 肯定能得到与 π 一样或更好的期望回报
vπ′(s)≥vπ(s)
如果式 (2) 中的不等式在某个状态下是严格不等的,则式 (3) 在这个状态下也是严格不等的。
前面讨论了在已有策略中只修改在一个状态下的特定动作所带来的改变。更进一步地,如果在每个状态 s 下根据 qπ(s,a) 选择一个最优的动作,就得到了一个贪心策略 π′
π′(s)≐argmaxaqπ(s,a)=argmaxaE[Rt+1+γvπ(St+1)|St=s,At=a]=argmaxa∑s′,rp(s′,r|s,a)[r+γvπ(s′)]
这个策略采取短期内最优的动作,相当于根据 vπ 向前做了一步搜索。这样构造出来的贪心策略满足策略改进定理,确保了新策略 π′ 和原策略 π 一样好或更好。像这样根据原策略的价值函数执行贪心算法,来构造一个更好的策略的过程,称为策略改进。
使用上面的方法不断进行迭代,就可以得到一系列越来越好的策略。如果新的贪心策略 π′ 和原策略 π 一样好,即有 vπ=vπ′,对于任意 s∈S,有
vπ′(s)=maxaqπ′(s,a)=maxaE[Rt+1+γvπ′(St+1)|St=s,At=a]=maxa∑s′,rp(s′,r|s,a)[r+γvπ′(s′)]
注意式 (5) 和贝尔曼最优方程具有相同的形式,说明 vπ′ 是与 v∗ 相同,且 π 与 π′ 都是最优策略。可见除了在原策略已经是最优策略的情况下,策略改进一定会给出一个更优的策略。