Dynamic Programming
标签(空格分隔): Reinforcement Learning: An Introduction
Dynamic Programming
Policy Evaluation
Policy Evaluation 给定一个policy怎样来评价好坏的
首先开门见山给出经典的贝尔曼迭代公式
用state value 来评价Policy的好坏的(在这里假设,policy是一个固定的策略),于是在不断的进行马尔可夫决策过程,迭代 state value的值,最终达到收敛。
在书中,作者提到 两种更新state value的方式:
(1)采用两个数组,一个存储新的state value值,另一个存储旧的state value的值,这种方式,就是 每次更新都计算旧的state value里面的值;
(2)第二种,采用一个数组,方式差不多,但是每次都用的是最新的state value;
作者在书中提到第二种方式收敛的比较快
下图给出了,iterative policy evaluation的伪代码:
此外,作者还提到,Dynamic Programming是一种full back的方式。
full back:强化学习在进行贝尔曼公式迭代时,考虑到当前状态 st 的下一个状态 st+1 的所有情况,并求期望值(平均值)
Policy Improvement
该小节,如何改进policy, 在MDP中,不断的完善Ploicy
初始的Policy可能大多数都是随机的,本节利用上一节的Poliy Evaluation来完善。
当一个策略改变时,我们可以用state value来评价,这个改变是否使Policy更好了。
于是,这一段作者引入了state-action value
qπ(s)
于是就可以量化策略的改变是往哪个方向发展的
若满足以下方式,则可认为变化再往好的方面发展
于是,通过证明就可以得到以下结论:
证明过程:
这样,就得到了一个贪心的想法,如果每次,都是取state-action value最大的action, 这样在不断的迭代过程中,就能不断优化当前策略
这种贪心迭代方式被称为Policy Improvement,作者在本节结束举了个例子如下:
虽然上面的例子,不管是random policy 还是 greedy policy都能达到一样的策略,但是:
(1)greedy policy达到最佳值时,所用的迭代次数比较少;
(2)state value值 greedy policy 比较大
Policy Iteration
本节将policy evaluation和policy improvement结合进行policy 优化
整体的policy优化策略如下:
上图
E
表示policy evaluation;
上面伪代码,说明的是,每一个策略都需要进行policy evaluation到达收敛后,再进行Policy improvement 依次这样循环
Value Iteration
本节解决的问题是,Policy Iteration中,训练过慢,计算量过大的问题
作者给出的思路是,将policy evaluation 过程进行截断,然而,不影响收敛性。
最简单的方式是在policy evaluation的过程中,进行一次迭代,这样就加快了
伪代码如下图所示:
Asynchronous Dynamic Programming
该节面对的问题是Dynamic Programming 是一个full back,也就是说在当前状态下,需要遍历下一个状态所有的可能性,而导致计算量过大的文图
作者采用的迭代方式是之前所说的用一个数组存放state value的形式,具体细节没看 以后用到深究
Generalized Policy Iteration
该节主要对policy iteration 作出解释,然后 说明policy evaluation和policy improvement 相互促进,相互竞争最后达到策略和state value最优化的双赢局面
作者说明无论是policy iteration 和 value iteration 以及 Asynchronous Dynamic Programming都存在policy evaluation 和 policy improvement相互交互的局面,于是作者给了两张图形象的说明了
上面图说明了,evaluation和improvement如何相互作用的:
(1)对当前的策略
π
进行evaluation
(2)用state value 进行贪心来improve policy,达到收敛
重复(1),(2)一直达到收敛
下面的图说明的是两个阶段最终达到收敛的过程
作者给了相应的解释:
总的来说,如果evaluation阶段想要达到稳定 那么current policy 必须达到稳定;如果想要current policy 达到稳定 则,evaluation 的state value 也必须达到稳定。
作者提到两个阶段属于合作而又竞争的关系
(1)evaluation 的state value使得policy 不满足 greedy的关系;
(2)greedy的策略使得 当前的state value 不满足不断改变的策略。
Efficiency of Dynamic Programming
该节对Dynamic Programming这种算法的实用性进行辩证
Dynamic Programming可能在强化学习领域不算是特别实用的方法,但是它也有实用性
优点:
(1)Dynamic Programming在能够保障算法的收敛性;
(2)相对于直接搜索或者线性求解来说,它在节省了计算量;
缺点:
对于复杂的环境来说,计算量超大,因为每次都要遍历所有的可能性