简介
这篇博客对应课程的Topic2
)
前面我们讲到,强化学习的最终目的是为了得到一个最优的策略方案而不是监督学习这类问题的模型。而在一开始我们往往对于最优策略一无所知。我们需要做的是不断向我们的最优策略逼近。对于最优策略的获得我们一般的思路包括策略迭代和价值迭代两种,它们之间有着区别,也有着很多的共性。
策略迭代
策略评估和策略提升
策略评估是策略迭代的一个步骤。策略评估的本质通俗来说,就是计算在服从当前策略时,各个状态的价值函数,原理仍然是基于贝尔曼方程。
这个方法有很多,包括前文讲的DP动态规划,还有后续的蒙特卡洛随机抽样方法等。都可以计算出各个服从某个策略下的各个状态的价值函数,称为策略评估,由于老师课件里面的介绍都是数学公式,就不往上贴了。贴一张稍微清爽一些的算法伪码图。
策略评估之后可以获得最大的价值函数,我们需要进行策略提升,策略提升的具体方法是采用贪心算法的思想,倘若在该状态下由于选择了某个action而跳转到另一个状态过程中产生了最大价值,则将这个action作为需改进的部分写入原来的policy,从而完成了policy improvement
就这样,在遵循现有策略下对于每一个状态都计算出其最有价值的action,从而将策略提升,再采用更新后的策略继续循环重复前面的操作,最终,当新的策略不再发生变化则说明已经达到了收敛,该策略就是最优策略。
价值迭代
先放一张清凉点的伪码图。
价值迭代是另一种计算最佳策略的方法,下面从策略迭代的角度分析值迭代,上图中内层Loop循环的值函数更新可以拆分为两步:
1,策略提升:根据更新前的值函数进行策略提升,得到贪婪策略
2,策略评估:根据贪婪策略选择状态s下的贪婪动作(greedy action)a对应的值(value),更新s对应的值函数
价值迭代将两个步骤合在一起了,最终只迭代了一次策略,因此价值迭代其实也可以看成是迭代一次的策略迭代。价值迭代的价值函数更新的次数一般会多于策略迭代的次数,在现代的强化学习中运用得更多的是策略迭代。