强化学习-----第三课 动态规划
一.简介
动态规划算法是解决复杂问题的一个方法,算法通过把复杂问题分解为子问题,通过求解子问题进而得到整个问题的解。在解决子问题的时候,其结果通常需要存储起来被用来解决后续复杂问题。
当问题具有下列特性时,通常可以考虑使用动态规划来求解:
1)第一个特性是一个复杂问题的最优解由数个小问题的最优解构成,可以通过寻找子问题的最优解来得到复杂问题的最优解;
2)子问题在复杂问题内重复出现,使得子问题的解可以被存储起来重复利用。
马尔科夫决定过程(MDP)具有上述两个属性:Bellman方程把问题递归为求解子问题,价值函数就相当于存储了一些子问题的解,可以复用。因此可以使用动态规划来求解MDP。
我们用动态规划算法来求解一类称为“规划”的问题。“规划”指的是在了解整个MDP的基础上求解最优策略,也就是清楚模型结构的基础上:包括状态行为空间、转换矩阵、奖励等。这类问题不是典型的强化学习问题,我们可以用规划来进行预测和控制。
二.迭代法策略评估Iterative Policy Evaluation
1.理论
问题:评估一个给定的策略π,也就是解决“预测”问题。
解决方案:反向迭代应用Bellman期望方程
即:一次迭代内,状态s的价值等于前一次迭代该状态的即时奖励与所有s的下一个可能状态s' 的价值与其概率乘积的和,如图示:
公式的矩阵形式是:
例子: 方格世界
已知:
状态空间S:如图。S1 - S14非终止状态,ST终止状态,下图灰色方格所示两个位置;
行为空间A:{n, e, s, w} 对于任何非终止状态可以有东南西北移动四个行为;
转移概率P:任何试图离开方格世界的动作其位置将不会发生改变,其余条件下将 100%地转移到动作指向的状态;
即时奖励R:任何在非终止状态间的转移得到的即时奖励均为-1,进入终止状态即时奖励 为0;
衰减系数γ:1;
当前策略π:Agent采用随机行动策略,在任何一个非终止状态下有均等的几率采取任一移动方向这个行为,即π(n|•) = π(e|•) = π(s|•) = π(w|•) = 1/4。
问题:评估在这个方格世界里给定的策略。
该问题等同于:求解该方格世界在给定策略下的(状态)价值函数,也就是求解在给定策略下,该方格世界里每一个状态的价值。
迭代法求解(迭代法进行策略评估)
(左图为状态价值函数,右图为pai,即策略。
按照公式
进行求解,pss‘为1,表示在选定某个动作a时,只对应着一个状态值s’,对于超出放个世界的方向,v(s‘)取本身 )
2.如何改善策略
通过方格世界的例子,我们得到了一个优化策略的办法,分为两步:首先我们在一个给定的策略下迭代更新价值函数:
随后,在当前策略基础上,贪婪地选取行为,使得后继状态价值增加最多:
在刚才的格子世界中,基于给定策略的价值迭代最终收敛得到的策略就是最优策略,但通过一个回合的迭代计算价值联合策略改善就能找到最优策略不是普遍现象。通常,还需在改善的策略上继续评估,反复多次。不过这种方法总能收敛至最优策略