Chapter04 Dynamic Programming

上一章讲了马尔科夫决策过程的概念,末尾提出了针对MDP的value-state、value-action-state建立方法,很明显可以看出是使用了动态规划的方法,这一章就在上一章基础上,进一步讲述如何使用动态规划来训练以及优化MDP问题的强化学习算法。

对了这里给一个概念辨析,关于MDP和MRP的,其实两者是不一样的,通过状态转移得到reward的是MRP,通过action得到reward的是MDP。不过话说,有区别吗?action的结果就是state的转换。哈哈,还有有区别的,因为在本书中例子都比较简单,一般action和state的转换基本是对应的,有一个例子可以帮助理解这个问题,就是trajectory sampling的例程,这里每个action对应一个随机的branch,而每个branch对应的next state也是随机的,所以用MDP来解释的话,reward是对应action的,不同的action对应reward;用MRP解释的话,action之后,还要考虑导致了的哪个branch最终转到哪个state了,然后reward根据(current state,next state)来给定,这就和MDP差别很大了。一般简单来说两者是可以混用的…

4.1 Policy Evaluation

首先理解什么是策略的评估

策略的评估也可以认为是一种预测行为,是解决MDP问题的必要环节。通过评估,我们使用已有的policy选择action(大部分问题policy是一个随机函数,即按照一定的概率分布产生action),使用动态规划的方法更新整个state-set的value并达到收敛。评估结果即value-table,是我们决策的重要依据,所以可以为未知的player如何行动提供预测的参考。

评估模型经常使用迭代运算的方式,迭代同时分为原地迭代和旧值迭代,区别仅是在动态规划使用未来状态来更新当前value的时候,是否使用更新后的值,运算通式是:

png

评估算法的伪代码:

png

4.2 Policy Improvement

一开始看的时候,一直没明白上一步评估的作用何在,在策略提升这部分就讲了,策略评估是为了改进用的,因为如果在某个state s上,我改变了action a->a’,那么可以认为我采用了一种新的策略π’,即这一步我采取的行为是π’(s),如果有:

则可以推出新的策略π’一定不差于原来的π,即:

推导过程:

png

顺势我们推出一种greedy的提升方法,就是直接获得最大reward的action:

png

这种方法也为下一部分的Policy迭代优化提供一种优化的思路。

4.3 Policy Iteration

直接给出迭代优化的伪代码:

png

可以看出来算法其实就是评估和提升交替进行的,迭代终止条件就是没办法对当前的v_π(s)进一步优化了。

4.4 Value Iteration

上面的策略迭代优化的方法很明显有个问题,就是每次提升的前提是需要对策略进行评估,value Iteration提出一种将提升和评估放在一起进行的方法,这个思路比较像4.1中评估的时候使用的in-place方法。

算法伪代码如下:

png

算法结束条件就是当value-table更新幅度小于阈值Θ时停止。

4.5 4.6 4.7

因为后面三部分都很短,也没有给出具体的解释,所以我就放一块写。

4.5讲的是异步动态规划,其实前面讲的value iteration就是异步动态规划的一种,主要是希望可以改进DP算法会遍历整个state set的问题,有的value state没必要多次更新,而有的可以多次更新,具体的算法会在第8章提出。

4.6讲的是统一的策略迭代(GPI),意指evaluation和improvement是相互竞争合作的,大部分强化学习都是这两者相互作用达到最优的policy和state-value。

4.7讲的是动态规划算法的效率,大致意思就是动规对于large-state的问题计算量仍旧很大,但是可以用异步动规来解决,policy iteration和value iteration现在仍很常用。