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

一、前言

强化学习系列(三):马尔科夫决策过程中,我们提到了什么是马尔科夫过程,并且表示大部分强化学习问题都可以看做满足马尔科夫决策过程,但我们没有说如何求解马尔科夫决策过程。在本章中,我们将介绍如何用动态规划(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 v 0 , v 1 , v 2 , . . . , 其中, v 0 为初始值函数,取随机值,那么随后的 v 2 , . . . . 可以通过上式迭代获得。以此类推,当 k 时,可以求出 v π 。通常在计算过程中,假设给定策略的value function是稳定的,所以不需要进行无限步迭代计算,可以通过给定一个 | v k + 1 ( s ) v k ( s ) | 的阈值 θ 来停止迭代。上述过程的伪代码如下:
这里写图片描述

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

那么在每一个state s处都选择满足 m a x q π ( 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 v k + 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

猜你喜欢

转载自blog.csdn.net/LagrangeSK/article/details/81081106