一、前言
在强化学习系列(三):马尔科夫决策过程中,我们提到了什么是马尔科夫过程,并且表示大部分强化学习问题都可以看做满足马尔科夫决策过程,但我们没有说如何求解马尔科夫决策过程。在本章中,我们将介绍如何用动态规划(Dynamic Programming, DP)的方法求解马尔科夫决策过程,此处,我们假设需要求解的MDP是环境完全已知的。(注意:这不同于强化学习问题,大部分强化学习问题都是环境部分未知或全部未知的,但动态规划的思想对我们理解强化学习方法很有帮助,所以需要有一定了解。)
本章主要介绍两类问题,一类是预测问题(prediction problem),即给定一个策略 π π ,求出该策略的 value function,在DP中也被叫做策略估计(policy evaluation)。另一类是控制问题(control problem),即求解最优策略。
二、policy evaluation(策略估计)
问题:当给定一个策略
π
π
,要求解该策略的state-value function
vπ
v
π
方法:迭代 Bellman expectation backup

假设有一系列的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
)
|
的阈值
θ
θ
来停止迭代。上述过程的伪代码如下:

下面我们来看一个小例子,简单分析Policy evaluation的工作过程:
假设有一个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的具体工作过程。
首先,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.7≈0.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
)
,推导如下:

说明我们通过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。

算法伪代码如下:
通过观察方格世界的小例子的右边最后一幅图也发现,最优策略是指向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) π ( s ) 根据Bellman optimality equation 求出最大的value function vk+1(s) 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
本文介绍了强化学习中的动态规划方法,包括策略评估、策略迭代、值迭代和广义策略迭代。通过实例解释了策略评估的工作过程,并展示了如何通过策略迭代和值迭代找到最优策略。动态规划的思想对于理解和解决马尔科夫决策过程至关重要,尽管它依赖于完全已知的环境模型。
:动态规划&spm=1001.2101.3001.5002&articleId=81081106&d=1&t=3&u=8893f1c84a8b4e71b2ebc334dc9761e1)
965

被折叠的 条评论
为什么被折叠?



