强化学习系列(四):动态规划

一、前言

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

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

二、policy evaluation(策略估计)

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

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

下面我们来看一个小例子,简单分析Policy evaluation的工作过程:
强化学习系列(四):动态规划_第3张图片
假设有一个4*4的方格世界,其中左上角和右下角为terminal state,即此处的 v(s)=0 v ( s ) = 0 , 游戏结束。在方格世界除terminal state外的所有方格中(编号1-14),可以action={“上”,“下”,“左”,“右”},当在边界处(上边界为1,2,3)向上运动时会依然留在上边界处。且每次状态转移的reward Rt=1 R t = − 1 , 且discount= 1。现在假设在一个方格中,选择上下左右action的可能性均等,即策略 π(s|a)=0.25 π ( s | a ) = 0.25 ,求该策略的value function。
运用上述方法,求得如下结果,其中,左图表示 v(s) v ( s ) ,右图表示Greedy Policy,我们等下在讨论,现在将注意力放在左图中,分析一下policy evaluation的具体工作过程。
强化学习系列(四):动态规划_第4张图片
首先,k = 0 时,初始化所有 v0(s)=0 v 0 ( s ) = 0 。k = 1 时,除了最终状态外,无论往在哪个方格中,选取任意动作获得的 Rt=1.0 R t = − 1.0 ,所有的 v0(s)=0 v 0 ( s ′ ) = 0 , 所以对任意 v1(s)=0.25x(1.0)x4=1.0 v 1 ( s ) = 0.25 x ( − 1.0 ) x 4 = − 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)) − 1.7 ≈ 0.25 × ( − 1.0 + 0 ) + 0.25 x ( − 1.0 + ( − 1.0 ) ) + 0.25 x ( − 1.0 + ( − 1.0 ) ) + 0.25 x ( − 1.0 + ( − 1.0 ) ) (左边最终状态 v1(s)=0.0 v 1 ( s ) = 0.0 ,上下右均为 v1(s)=1.0 v 1 ( 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) a ≠ π ( s ) ,其他状态下保持与原策略 πs) π ( s ) 相同,获得新策略 π(s) π ′ ( s ) 。那么可以根据当前策略的 vπ(s) v π ( s ) 可以计算出新策略 π(s) π ′ ( s ) 在此处的action-value function qπ(s,a) q π ′ ( s , a ) :
这里写图片描述
现在假设新策略 π(s) π ′ ( s ) 是当前最优策略,比旧策略好,则有:
这里写图片描述

那么在每一个state s处都选择满足 maxqπ(s,a) m a x q π ( s , a ) 的action a=π(s) a = π ′ ( s ) ,那么可以推导出 vπ(s)vπ(s) v π ′ ( s ) ≥ v π ( s ) ,推导如下:
强化学习系列(四):动态规划_第5张图片

说明我们通过policy improvement 可以获得比当前策略好的新策略。那么我们如何获得最优策略呢?当策略提升到一个极限时,无法再进一步的提升了,我们就获得了最优策略,此时,有:
这里写图片描述

显然,这满足Bellman optimality equation :
这里写图片描述

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

3.2 Policy iteration

当给定一个策略 π π 时,如何获得最优策略,结合Policy evaluation 和Policy improvement ,首先通过不断迭代确定该策略的state-value function v(s) v ( s ) ,然后取最大的state-value function对应的Policy。
这里写图片描述

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

四、value iteration

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

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

算法伪代码如下:
强化学习系列(四):动态规划_第8张图片

五、Generalized Policy Iteration

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

六、总结

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

David Silver 课程
Reinforcement Learning: an introduction

你可能感兴趣的:(强化学习)