一、前言
在强化学习系列(三):马尔科夫决策过程中,我们提到了什么是马尔科夫过程,并且表示大部分强化学习问题都可以看做满足马尔科夫决策过程,但我们没有说如何求解马尔科夫决策过程。在本章中,我们将介绍如何用动态规划(Dynamic Programming, DP)的方法求解马尔科夫决策过程,此处,我们假设需要求解的MDP是环境完全已知的。(注意:这不同于强化学习问题,大部分强化学习问题都是环境部分未知或全部未知的,但动态规划的思想对我们理解强化学习方法很有帮助,所以需要有一定了解。)
本章主要介绍两类问题,一类是预测问题(prediction problem),即给定一个策略 ,求出该策略的 value function,在DP中也被叫做策略估计(policy evaluation)。另一类是控制问题(control problem),即求解最优策略。
二、policy evaluation(策略估计)
问题:当给定一个策略
,要求解该策略的state-value function
方法:迭代 Bellman expectation backup
假设有一系列的state-value function
, 其中,
为初始值函数,取随机值,那么随后的
可以通过上式迭代获得。以此类推,当
时,可以求出
。通常在计算过程中,假设给定策略的value function是稳定的,所以不需要进行无限步迭代计算,可以通过给定一个
的阈值
来停止迭代。上述过程的伪代码如下:
下面我们来看一个小例子,简单分析Policy evaluation的工作过程:
假设有一个4*4的方格世界,其中左上角和右下角为terminal state,即此处的
, 游戏结束。在方格世界除terminal state外的所有方格中(编号1-14),可以action={“上”,“下”,“左”,“右”},当在边界处(上边界为1,2,3)向上运动时会依然留在上边界处。且每次状态转移的reward
, 且discount= 1。现在假设在一个方格中,选择上下左右action的可能性均等,即策略
,求该策略的value function。
运用上述方法,求得如下结果,其中,左图表示
,右图表示Greedy Policy,我们等下在讨论,现在将注意力放在左图中,分析一下policy evaluation的具体工作过程。
首先,k = 0 时,初始化所有
。k = 1 时,除了最终状态外,无论往在哪个方格中,选取任意动作获得的
,所有的
, 所以对任意
。当k = 2时,第1格中(一开始定义时的编号),
(左边最终状态
,上下右均为
)。
三、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 处选择动作
,其他状态下保持与原策略
相同,获得新策略
。那么可以根据当前策略的
可以计算出新策略
在此处的action-value function
:
现在假设新策略
是当前最优策略,比旧策略好,则有:
那么在每一个state s处都选择满足
的action
,那么可以推导出
,推导如下:
说明我们通过policy improvement 可以获得比当前策略好的新策略。那么我们如何获得最优策略呢?当策略提升到一个极限时,无法再进一步的提升了,我们就获得了最优策略,此时,有:
显然,这满足Bellman optimality equation :
因此,对每一个state s 都满足 ,即 为最优策略。
3.2 Policy iteration
当给定一个策略
时,如何获得最优策略,结合Policy evaluation 和Policy improvement ,首先通过不断迭代确定该策略的state-value function
,然后取最大的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 图:
首先根据给定的策略 根据Bellman optimality equation 求出最大的value function ,然后更新当前策略。
算法伪代码如下:
五、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