3.3 策略改进
计算值函数的目的是利用值函数找到最优策略。既然值函数已经获得,接下来要解决的问题是如何利用值函数进行策略改善,从而得到最优策略。
一个很自然的方法是针对每个状态采用贪心策略对当前策略进行改进,即
其中,Qπ(s,a)可由下式获得:
在当前策略π的基础上,利用贪心算法选取行为,直接将所选择的动作改变为当前最优的动作。
改变之后,策略是不是变得更好了呢?
令动作改变后对应的策略为π',a'为在状态s下遵循策略π'选取的动作,同理a″为在状态s'下遵循策略π'选取的动作。改变动作的条件是Qπ(s,a')≥Vπ(s),则可得
可见,值函数对于策略的每一点改进都是单调递增的,因此对于当前策略π,可以放心地将其改进为
直到π'与π一致,不再变化,收敛至最优策略。
贪心这个词在计算机领域是指在对问题求解时,总是做出在当前看来是最好的选择,不从整体最优上加以考虑,仅针对短期行为(即一步搜索)求得局部最优解。将贪心算法应用在强化学习中求解最优策略实际上可以获得全局最优解,因为贪心策略公式中的值函数Vπ(s)、Qπ(s,a)已经考虑了未来的回报。因此在策略改进时,可以放心使用贪心算法求得全局最优解。