目录
一、参考文献
1、David Silver 第三讲
2、《强化学习第二版》
二、引言
前面的博客介绍了RL的基本应用场景——马尔科夫决策过程(MDP);还介绍了基本的数学公式——贝尔曼期望方程和贝尔曼最优方程。但是并没有应用到真实的例子中,本节的目标就是用DP算法来寻找真实的例子中的最优策略。
其实本质上利用贝尔曼方程是可以解出RL的解的,但是涉及矩阵求逆等,当环境的维数比较大时,计算复杂度比较高。实际中常用的价值函数的计算都是利用迭代的方式进行的。
三、DP是什么
我认为这个不是RL的重点,重点是如何应用DP,所以这里将David的课件重述一遍。
动态规划方法需要待解决的问题包含两个性质:
1、最优子结构,使得问题的最优解可以分解为子问题的最优解
2、重叠子问题,子问题重复出现多次,因而我们可以缓存并重新使用子问题的解
而MDP正好满足这两个特性,所以可以使用动态规划的方法完成对MDP的求解
四、MDP的求解步骤
强化学习的目标是找到最优策略,求解的步骤一般分为两步:
1、预测:给定某个策略,评估相应的状态价值函数和状态行为值函数
2、控制:步骤1完成后,根据V值和Q值,就可以得到当前状态对应的最优动作。
五、MDP问题中DP的分类
1、策略迭代(和给定的策略相关)
2、值迭代(和策略无关,直接找最优)
3、广义策略迭代
六、策略迭代
6.1 迭代策略评估
策略迭代分为两个步骤:预测和控制,其中的预测步骤也叫做:迭代策略评估。举个例子来理解一下
首先,任给一个策略,需要对该策略进行预测(评估相应的状态价值函数和状态行为值函数)。如下图:
对于这个策略如何评估相应的状态价值函数呢?
答:利用迭代策略评估。具体如下:
这是如何得来的呢?
1、随机给一个V表,例如全零
2、利用第k次的V表,根据贝尔曼期望方程,得到第k+1次的V表,迭代公式为:
图中的k表示第k个V表,k+1表示的K+1个V表
3、当满足条件时(比如迭代N次或连续两次V表的值的差小于某个值),停止迭代。这是得到的V表就是给定策略下的V表。
6.2 策略改进
在6.1中得到了给定策略下的V表,根据V表,我们可以改进策略。如下图:
至此这一次策略迭代中的第一次迭代完成,即完成了对前一次策略的改进,如下图
6.3 迭代很多轮
上述只是完成了策略迭代的一次迭代,根据第一次迭代出来的改进策略,再次进行迭代策略评估,即给定
求该策略下的V表。
得到V表之后,再次策略改进,重复多次,得到该MDP问题的最优解。本文举的例子的最终最优解为:
这里发现和一次迭代的解一样,这是由于本问题的状态空间比较小,一次迭代即找到了最优解
6.4 总结
策略迭代里面包含了两重迭代,第一重迭代是为了计算给定策略下该策略的V表(迭代的目的是为了计算V表),第二重迭代指的是策略改进很多次(迭代的目的是为了获得MDP问题的最优解),如下图所示:
第一重迭代寓于每一次策略改进中,而第二重迭代指引着方向,朝着最优解。
或者:
每一个向上的箭头都是一个迭代过程,假如说一个向上的箭头表示N次迭代,总共有10个向上的箭头,则策略迭代中总共的迭代次数是10*N+1。其中的1表示整个大方向上的迭代。
策略迭代中最核心的就是上述的两层迭代。
值迭代见下节