一、前言

强化学习系列(三):马尔科夫决策过程中,我们提到了什么是马尔科夫过程,并且表示大部分强化学习问题都可以看做满足马尔科夫决策过程,但我们没有说如何求解马尔科夫决策过程。在本章中,我们将介绍如何用动态规划(Dynamic Programming, DP)的方法求解马尔科夫决策过程,此处,我们假设需要求解的MDP是环境完全已知的。(注意:这不同于强化学习问题,大部分强化学习问题都是环境部分未知或全部未知的,但动态规划的思想对我们理解强化学习方法很有帮助,所以需要有一定了解。)

本章主要介绍两类问题,一类是预测问题(prediction problem),即给定一个策略π,求出该策略的 value function,在DP中也被叫做策略估计(policy evaluation)。另一类是控制问题(control problem),即求解最优策略。

二、policy evaluation(策略估计)

问题:当给定一个策略 π,要求解该策略的state-value function vπ
方法:迭代 Bellman expectation backup
强化学习系列(四):动态规划

假设有一系列的state-value function v0,v1,v2,..., 其中,v0为初始值函数,取随机值,那么随后的 v2,....可以通过上式迭代获得。以此类推,当 k时,可以求出vπ。通常在计算过程中,假设给定策略的value function是稳定的,所以不需要进行无限步迭代计算,可以通过给定一个 |vk+1(s)vk(s)|的阈值 θ 来停止迭代。上述过程的伪代码如下:
强化学习系列(四):动态规划

下面我们来看一个小例子,简单分析Policy evaluation的工作过程:
强化学习系列(四):动态规划
假设有一个4*4的方格世界,其中左上角和右下角为terminal state,即此处的v(s)=0, 游戏结束。在方格世界除terminal state外的所有方格中(编号1-14),可以action={“上”,“下”,“左”,“右”},当在边界处(上边界为1,2,3)向上运动时会依然留在上边界处。且每次状态转移的reward Rt=1, 且discount= 1。现在假设在一个方格中,选择上下左右action的可能性均等,即策略π(s|a)=0.25,求该策略的value function。
运用上述方法,求得如下结果,其中,左图表示 v(s),右图表示Greedy Policy,我们等下在讨论,现在将注意力放在左图中,分析一下policy evaluation的具体工作过程。
强化学习系列(四):动态规划
首先,k = 0 时,初始化所有v0(s)=0。k = 1 时,除了最终状态外,无论往在哪个方格中,选取任意动作获得的 Rt=1.0,所有的 v0(s)=0, 所以对任意v1(s)=0.25x(1.0)x4=1.0 。当k = 2时,第1格中(一开始定义时的编号),1.70.25×(1.0+0)+0.25x(1.0+(1.0))+0.25x(1.0+(1.0))+0.25x(1.0+(1.0)) (左边最终状态v1(s)=0.0,上下右均为 v1(s)=1.0)。

三、Policy iteration(策略迭代)

当我们拥有一个给定策略π时,我们很容易想到如果我们跟着这个策略走,会是最好的吗?我们是否可以根据一个给定策略,获得最优策略?

问题:找到最优策略(control problem)
解决:Bellman Expectation Equation + Greedy Policy Improvement

其中,Bellman Expectation Equation用于policy evaluation过程,即给定策略求解value function。获得value function后,我们将用value function进行策略提升(policy improvement ),下面将详细介绍policy improvement 的工作原理。

3.1 policy improvement

Policy improvement的作用是对当前策略 π 进行提升,先讨论一个简单情况下的策略提升,再讨论全局意义上的策略提升。

首先,考虑仅仅在状态 s 处选择动作 aπ(s),其他状态下保持与原策略πs) 相同,获得新策略π(s)。那么可以根据当前策略的vπ(s)可以计算出新策略 π(s) 在此处的action-value function qπ(s,a) :
强化学习系列(四):动态规划
现在假设新策略π(s)是当前最优策略,比旧策略好,则有:
强化学习系列(四):动态规划

那么在每一个state s处都选择满足maxqπ(s,a)的action a=π(s),那么可以推导出 vπ(s)vπ(s),推导如下:
强化学习系列(四):动态规划

说明我们通过policy improvement 可以获得比当前策略好的新策略。那么我们如何获得最优策略呢?当策略提升到一个极限时,无法再进一步的提升了,我们就获得了最优策略,此时,有:
强化学习系列(四):动态规划

显然,这满足Bellman optimality equation :
强化学习系列(四):动态规划

因此,对每一个state s 都满足vπ(s)=v(s),即π为最优策略。

3.2 Policy iteration

当给定一个策略π时,如何获得最优策略,结合Policy evaluation 和Policy improvement ,首先通过不断迭代确定该策略的state-value function v(s),然后取最大的state-value function对应的Policy。
强化学习系列(四):动态规划

算法伪代码如下:
强化学习系列(四):动态规划
通过观察方格世界的小例子的右边最后一幅图也发现,最优策略是指向state-value function 较大的方向。可是,我们发现尽管迭代次数不同,对应value function不同,但是右边最后三幅图都表示最优策略。那么我们是不是可以考虑不迭代这么多次,就能直接获得最优策略呢?答案是肯定的,我们接下来介绍一种方法就是这么干的。

四、value iteration

Policy iteration可以获得最优策略,但是他很费劲啊,在每次Policy improvement之前,都要进行很长的Policy evaluation,每一次Policy evaluation都需要遍历所有的状态,对时间和计算资源都是一种消耗。可不可以不这么费劲呢?如果每次evaluation 和 improvement 都单步执行会怎样?这就是value iteration方法。
value iteration的过程,可以表示成一个Bellman optimality backup 图:
强化学习系列(四):动态规划

首先根据给定的策略 π(s) 根据Bellman optimality equation 求出最大的value function vk+1(s),然后更新当前策略。

算法伪代码如下:
强化学习系列(四):动态规划

五、Generalized Policy Iteration

广义上的Policy Iteration 包括两部分:一部分是Policy evaluation,为了获得一个稳定的value function ,另一部分是Policy improvement,为了获得一个最优稳定的 Policy。如图,这两者之间通过不断交替,最终获得了最优 value function 和最优 Policy。
强化学习系列(四):动态规划
这两者之间是对立统一的。两者存在竞争关系:
为了获得一个最优Policy,需要不断探索新策略,从而引起value function的改变,value function的改变又引起了最优Policy的改变,只有当两者都趋于稳定时,才会获得最优value function 和最优 Policy。

六、总结

本章我们介绍了三种同步DP方法,分别用于处理prediction 和 control 问题,下面对他们进行以下简单小结:
强化学习系列(四):动态规划
尽管动态规划需要知道环境模型,(即精确的状态转移概率等),使得其在解决环境未知或部分未知问题时较为被动,但Generalized Policy Iteration(GPI)这一基本思想将广泛运用于强化学习中,如后续要讲述的Monte Carlo 、Time difference等算法。
另外,动态规划还分为同步和异步,本章所讨论的都是同步动态规划算法,异步动态规划对同步动态规划算法需要遍历state的缺点进行了改进,其以任意顺序更新state-value function,有兴趣可以自己详细了解,不作为本章重点。

David Silver 课程
Reinforcement Learning: an introduction

相关文章: