强化学习基础 (3):动态规划求解
引言
动态规划 (Dynamic Programming, DP) 是指用于求解MDP问题的最优策略的一系列算法。
在解决实际的强化学习问题时,使用动态规划的场景并不多。因为动态规划算法需要大量的计算开销,并且要求对环境有完美的建模。然而,DP算法是其他强化学习算法的理论基石。现代的强化学习算法(如策略梯度算法等),都可以是对DP算法的一个近似,利用较少的计算开销以及不完整的环境建模,来达到尽可能接近DP算法的效果。
DP算法的核心思想在于:利用 价值函数 来指导和描述能够得到最优策略的搜索方法。
从上一篇文章我们得知,当我们已知最优的价值函数(无论是状态价值函数
下面我们将看到,DP算法实际上就是以贝尔曼最优方程作为状态更新的规则,通过多次迭代来逼近最优的价值函数。
最常用的DP算法有两种,分别称为 策略迭代 和 值迭代。
一、策略迭代
策略迭代 (policy iteration) 是一种求解最优策略
- 策略评估 (policy evaluation):求解当前策略
的状态价值函数 ; - 策略提升 (policy improvement):根据状态价值函数,找到更好的策略
。
下面我们将会说明,经过一轮策略迭代后得到的新策略
由于在有限MDP中策略的总数是有限的,因此只要迭代步数足够多,策略迭代总能够收敛到最优的策略和最优的价值函数。
1.1. 策略评估
我们已经知道,状态价值函数满足下面的 贝尔曼方程:
当
因此,我们在实践中一般使用迭代求解方法来求得近似解。
根据贝尔曼方程,我们可以写出如下的迭代公式:
从策略评估的迭代公式我们可以看到,某个状态
1.2. 策略提升
在得到状态价值函数
我们知道,在状态
策略提升的关键在于,通过动作价值函数
下面的策略提升定理能够保证进行贪婪选择后,得到的新策略
Theorem 1 (policy improvement theorem). 设
则策略
回看公式
这正是上一章中提到的 贝尔曼最优方程 的形式。
由于贝尔曼最优方程有且仅有唯一解,即最优的价值函数
1.3. 策略迭代的收敛性
在这一小节中,我们将证明策略迭代的收敛性,即:策略迭代算法在有限次迭代下即可收敛。
这个结论事实上说明了两件事情:
- 策略评估过程能够收敛
- 策略提升过程能够收敛到最优策略
其中第二点我们已经在上一小节中说明了,因此这里我们证明第一点,即策略评估的收敛性。
1.3.1. 巴拿赫不动点定理
首先我们介绍一下证明用到的数学工具:巴拿赫不动点定理 (Banach fixed point theorem),又被称为压缩映射定理 (Contraction mapping theorem)。
Theorem 2 (Banach fixed point theorem). 令
定理2的证明在附录中。
1.3.2. 贝尔曼算子及其收敛性证明
根据贝尔曼方程和贝尔曼最优方程,我们可以分别定义下面的贝尔曼算子
贝尔曼算子代表利用贝尔曼方程,对状态价值函数集
策略评估的过程,实际上就是不断地将贝尔曼算子
证明所用到的工具就是巴拿赫不动点定理。根据定理的表述,我们的证明思路如下:
- 找到一个完备的度量空间
,这里我们选择的度量空间是 ; - 证明贝尔曼算子
是这个完备度量空间上的一个压缩映射。
具体的证明见附录。
二、值迭代
我们已经知道,策略迭代算法的每一次迭代包括两个步骤:策略评估、策略提升。然而,这两步本身就是一个漫长的迭代过程。比如说,策略评估过程需要足够多的迭代次数,才能够收敛到精确的状态价值函数
一个自然的问题是:策略评估是否必须收敛到
这个问题的回答是肯定的。事实上,策略评估可以在达到一定步数之后停止,同时也能够保证整个策略迭代算法的收敛性。我们将要介绍的值迭代 (value iteration) 算法就是基于这样的思想。
在值迭代算法中,我们在策略评估时针对每个状态
对比可以发现,值迭代算法实际上就是根据贝尔曼最优方程进行迭代更新。因此,根据上面介绍的巴拿赫不动点定理,证明值迭代算法的收敛性就转为证明贝尔曼最优算子
附录
Proof of Theorem 1
下面我们证明策略提升定理,即动作价值函数
我们从公式
当且仅当
得证。
DP算法收敛性的相关证明
下面,我们先证明巴拿赫不动点定理,然后利用这个定理来证明两个DP算法的收敛性。
巴拿赫不动点定理证明
巴拿赫不动点定理表明,如果
这里涉及不少数学概念,下面顺带解释一下。
不动点:一个函数
函数不动点可以从复合函数的形式定义,即如果
证明是显然的:
度量空间:一个度量空间
由于
- 非负性:
,当且仅当 时等号成立; - 对称性:
; - 三角不等式:
。
完备的度量空间:一个度量空间
压缩映射:一个映射
其中
Proof of Theorem 2.
我们先证明不动点的存在性。我们只需要证明序列
将序列改写为
首先我们估计序列中相邻两项的距离。由于
因此,我们有:
对于任意的
当
这就证明了
我们再证明不动点的唯一性。假设
我们考虑
移项得:
由于
这就证明了不动点的唯一性。
至此,巴拿赫不动点定理得证。
贝尔曼算子(策略迭代)收敛性证明
根据巴拿赫不动点定理,我们只需要证明贝尔曼算子是某个完备度量空间下的压缩映射,就能够证明贝尔曼算子的收敛性。
**Lemma. ** 度量空间
Proof of Lemma. 考虑
由柯西序列的性质,对于任意
因此,对于一个固定的下标
即实数列
由于实数空间
下面我们证明柯西序列
我们固定下标
因此,对所有下标
即序列
下面我们证明贝尔曼算子的迭代过程是收敛的。
根据巴拿赫不动点定理,我们只需要证明贝尔曼算子
其中,贝尔曼算子的定义如下:
我们希望证明:对于任意的
其中,
首先,我们考察对于任意一个固定的状态
根据绝对值三角不等式
由无穷范数的定义我们可知:
由于上面的不等式对所有的状态
得证。
贝尔曼最优算子(值迭代)收敛性证明
Lemma. 对于实函数
Proof of Lemma. 记
我们设
又由于
得证。
我们希望证明贝尔曼最优算子
其中,贝尔曼最优算子的定义如下:
我们的目标是证明对于任意的
同样,我们考虑任意一个固定的状态
根据上面证明的引理,我们有:
根据三角不等式,有:
在上面的不等式左侧对所有状态
得证。