如何证明迭代式策略评价、值迭代和策略迭代的收敛性?

如何证明迭代式策略评价、值迭代和策略迭代的收敛性?

如何证明迭代式策略评价、值迭代和策略迭代的收敛性?

平时自己还是蛮懒惰的,一休息就只想打打游戏,睡觉啥的?注册知乎账号这么久,也没写过一些东西。最近受邀到深蓝学院讲强化学习,也是逼着自己重新去梳理一些知识吧。
接这个活的时候正是暑假开端,正好暑假在阿里实习,事前没有对实习和讲课的工作量有合理的预估,再加上一些生活琐事,一下子突然忙的焦头烂额。
心生一计:每次忙的心烦意乱的时候来知乎上写写东西,把心沉下来,也能给学员做做贡献。

在Sutton的RL书中的动态规划一节中,提到了三种算法:

  • 迭代式策略评价:用来估计给定策略下的值函数v_\pi
  • 策略迭代:求解最优策略 \pi_*
  • 值迭代:求解最优策略 \pi_*

书中提到了这三种迭代算法的收敛性,但是确没有给出证明。正所谓知其然,也要知其所以然。我们就来探究一下其收敛性的证明。其中收敛性主要包括三个:

  • 是否收敛?
  • 解是否唯一?
  • 以什么速度收敛?

压缩映射定理

整个证明过程需要用到contracting mapping定理,所以首先我们来讲一下这个定理

Contracting mapping theorem
对于完备metric space \langle M, d\rangle ,如果 f: M\mapsto M 是它的一个压缩映射,那么
* 在该metric space中,存在唯一的点 x_* 满足 f(x_*) = x_*
* 并且,对于任意的 x\in M , 定义序列 f^2(x) = f(f(x)) , f^3(x) = f(f^2(x)) , \cdots,  f^n(x)=f(f^{n-1}(x)), 该序列会收敛于 x_*\lim_{n\rightarrow \infty} f^n(x) = x_*


突然看到这个定理是不是一下子有点懵逼,别急,我们来对它慢慢剖析。

Metric Space

wiki

非正式定义 :如果一个集合中所有的点与点之间的距离都被定义了,那么这个集合被称为metric space。这些距离被称为该space的一个metric。

本质上metric其实是广义的欧式距离。欧式距离就是我们平时所说的直线距离。而最常见的metric space就是3D欧式空间(我们高中学立体几何时的xyz坐标轴描述的空间)

metric的概念比欧式距离更加丰富。比如,我们可以把每个人的心看成一个点,然后定义所有的心与心的距离(抖个机灵)。此时,所有的心就构成了一个metric space, 心与心的距离就是该space的metric。

好了,下面来一个正式版的定义吧。

定义:一个metric space由一个二元组 \langle M, d \rangle 组成,其中 M 表示集合, d 表示 M 的一个metric,即映射 d: M \times M \rightarrow \mathbb{R} 。其中 d 满足如下的距离的三条公理:
对于任意 x, y, z\in M , 有
1. (非负性) d(x, y) \ge 0 ,且 d(x, y)=0 \Leftrightarrow x =y
2.(对称性) d(x, y) = d(y, x)
3.(三角不等式) d(x, z) \le d(x, y) + d(y, z)


常见的metric有:

  • 范数metric: d(x, y) = \| x - y\|_n, \quad n\ge 1 , 其中 \|c\|_n 表示向量的 n 范数, \|c\|_n = (\sum_i |c_i|^n)^\frac{1}{n}
  • n=2 时即为欧式距离
  • n=1 时为绝对值距离,又叫曼哈顿距离,即 d(x, y) = \sum_i |x_i - y_i|
  • n=\infty 时为最大值距离,又叫切比雪夫距离,即 d(x, y) = \max_i |x_i - y_i|
  • 离散metric:

d(x, y) = \begin{cases} 0 \quad \text{if } x =y \\ 1 \quad \text{otherwise}\end{cases}\\

完备的metric space

在压缩映射定理中,我们提到了完备的metric space,那什么叫完备的metric space的呢?

定义 :一个metric space \langle M, d \rangle 是完备的(或者说是Cauchy的),当且仅当所有在 M 中的Cauchy序列,都会收敛到 M 中。即在完备的metric space中,对于任意在 M 中的点序列 a_1, a_2, a_3, \ldots \in M ,如果序列是Cauchy的,那么该序列收敛于 M , 即 \lim_{n\rightarrow \infty}a_n \in M .

好吧,又有新问题了!什么叫Cauchy序列呢?感觉继续解释会没完没了了。在我远古的记忆中,记得这个好像高数中有讲?我这里给个直观的定义吧,Cauchy序列指的是点整体上越靠越(这个“近”就是用metric来描述的)的序列。下面上边就是Cauchy的,下边就不是Cauchy的。

Cauchy序列
非Cauchy序列

换句话说,完备的metric space是没有缺失的点的。比如,对于有理数集合 \mathbb{R} , 用绝对值 |\cdot| 函数衡量两个有理数的距离,这是一个metric space,那么它是不是完备的呢?我们可以找到这样一个Cauchy序列:
 x_{n+1} = \begin{cases} 1 \quad &n=1 \\ \frac{x_n}{2} + \frac{1}{x_n} & n>1\end{cases}\\
可以看出这个序列中的值都是有理数,至于为什么是Cauchy的大家可以自行验证了。这个Cauchy序列收敛于哪个点呢?收敛后 x_{n+1} = x_n ,所以解方程 x_n = \frac{x_n}{2}+ \frac{1}{x_n} , 得到 x_n = \sqrt{2} 。因此这样一个有理数序列收敛的点不再集合 \mathbb{R} 中,因此我们认为有理数集合是有缺失的点的,不是一个完备的metric space。

完备的metric space这个概念非常的重要,很多时候我们很难证明一个序列是收敛的,但是比较容易证明它是Cauchy的,只要确认该Cauchy序列在完备的metric space中,即可直接得到收敛性。

压缩映射

有了metric space的定义之后,我们就能定义metric space中的压缩映射了。

定义 : 对于一个metric space \langle M, d\rangle ,和一个函数映射 f: M\mapsto M , 如果存在实数 k\in [0, 1) , 使得对于 M 中的任意两个点 x, y ,满足
d(f(x), f(y)) \le kd(x, y)
那么就成 f 是该metric space中的一个压缩映射,其中满足条件的最小的 k 值称为Lipschitz常数

这个压缩映射的定义很容易理解,就是映射前的两点之间的距离要大于映射后两点之间的距离,这也是“压缩”二字的由来。其中 k 就表达了压缩的系数, k 越小,表示压缩得越厉害。

压缩映射定理的证明

讲完上面的定义之后,我们现在可以证明压缩映射定理了。这里为了方便,再写一遍定理的形式

Contracting mapping theorem
对于完备metric space \langle M, d\rangle ,如果 f: M\mapsto M 是它的一个压缩映射,那么
* 在该metric space中,存在唯一的点 x_* 满足 f(x_*) = x_*
* 并且,对于任意的 x\in M , 定义序列 f^2(x) = f(f(x)) , f^3(x) = f(f^2(x)) , \cdots,  f^n(x)=f(f^{n-1}(x)), 该序列会收敛于 x_*\lim_{n\rightarrow \infty} f^n(x) = x_*

我们先证明定理的第二条,也就是序列的收敛性。由于metric space是完备的,所以我们只需要证明 f^n(x) 是Cauchy的即可。

对于任意的 x,y\in M ,我们有如下的不等式(第一个不等号用了两次三角不等式,第二个不等号用了对称性和压缩映射的定义)
 d(x,y) \le d(x, f(x)) + d(f(x), f(y)) + d(f(y), y) \\ \le d(f(x), x) + kd(x, y) + d(f(y), y)
kd(x,y) 移到左边,然后两边分别除以 1-k
 d(x, y) \le \frac{d(f(x), x) + d(f(y), y)}{1-k}\\
然后对于序列 f^n(x) 中的任意两个点 f^M(x), f^N(x) ,根据上面的结论,可得
 d(f^M(x), f^N(x)) \le\frac{d(f^{M+1}(x), f^M(x)) + d(f^{N+1}(x), f^N(x)) }{1-k} \\ \le\frac{k^Md(f(x), x) + k^Nd(f(x), x) }{1-k} \\ =\frac{k^M + k^N}{1-k} d(f(x), x)
因为 k\in[0,1) ,所以当 M, N \rightarrow \infty ,上式右边会趋近于0。所以证明得到序列 f^n(x) 是Cauchy的。由于 \langle M, d\rangle 是完备的,因此序列是收敛的。

由于序列 f^n(x) 是收敛的,我们可以假设它收敛于某个点 x_ *= \lim_{n\rightarrow\infty} f^n(x) 现在我们来证明该点是一个满足 f(x_*) =x_* 的固定点。根据压缩映射的定义我们知道 f 是连续的,所以
 f(x_*) = f(\lim_{n\rightarrow\infty} f^n(x)) = \lim_{n\rightarrow\infty} f(f^n(x)) = \lim_{n\rightarrow\infty} f^{n+1}(x) = x_*
最后我们来证明 x_* 的唯一性。用反证法,假设有两个点 x_*, y_* 满足 f(x_*) = x_*, f(y_*) = y_* ,那么

0< d(x_*, y_*) = d(f(x_*), f(y_*)) \le k d(x_*, y_*) <d(x_*, y_*)
得到了 d(x_*, y_*) < d(x_*, y_*) 这一矛盾的结果,因此 x_* 是唯一的固定点。

证毕


除此之外,我们还能求出收敛速度
 d(f^n(x), x_*) = d(f^n(x), f(x_*)) \le kd(f^{n-1}(x), x_*) \le k^n d(x, x_*)\\
因此序列 f^n(x)k 为线性速率收敛。


迭代式策略评价、值迭代和策略迭代

在强化学习中,假设状态集 \mathcal{S} = {s_1, s_2, \cdot, s_n} ,我们定义状态值函数向量
\mathbf{v}=\begin{bmatrix} v(s_1) \\v(s_2) \\ \vdots \\ v(s_n)\end{bmatrix}\\
该向量属于值函数空间 \mathcal{V} ,我们考虑 \mathcal{V} 是一个n维向量全空间。定义该空间的metric是无穷范数,即
 d(\mathbf{u}, \mathbf{v}) = \max_{s \in\mathcal{S}} |u(s) - v(s)|\\
由于 \mathcal{V} 是向量全空间,因此 \langle \mathcal{V}, d\rangle 是一个完备的metric space。

贝尔曼期望方程

强化学习中,贝尔曼期望方程的迭代形式写成向量矩阵形式如下:
 \mathbf{u}_{new} = T^\pi(\mathbf{u}) = \mathcal{R}^\pi +\gamma\mathcal{P}^\pi \mathbf{u}
我们可以说明它是一个压缩映射
 d(T^\pi(\mathbf{u}), T^\pi(\mathbf{v})) = \| (\mathcal{R}^\pi +\gamma\mathcal{P}^\pi \mathbf{u}) -(\mathcal{R}^\pi +\gamma\mathcal{P}^\pi \mathbf{v})\|_\infty \\ =\| \gamma \mathcal{P}^\pi (\mathbf{u} -\mathbf{v})\|_\infty\\ \le \| \gamma \mathcal{P}^\pi\|\mathbf{u} -\mathbf{v}\|_\infty\|_\infty\ \\ \le \gamma \|\mathbf{u} -\mathbf{v}\|_\infty = \gamma d(\mathbf{u}, \mathbf{v})
最后一个不等式利用了 \mathcal{P}^\pi 是一个概率分布,所有的元素都不大于1的特点

而且根据贝尔曼期望方程
 v_\pi =\mathcal{R}^\pi +\gamma\mathcal{P}^\pi v_\pi = T^\pi(v_\pi)
v_\pi 就是压缩映射 T^\pi 的固定点

根据压缩映射定理,我们可以直接得到如下的结论

  • 贝尔曼期望方程收敛于唯一v_\pi
  • 迭代式策略评价算法以 \gamma 的线性速率收敛于 v_\pi
  • 策略迭代收敛于 v_*

贝尔曼最优方程

同样的贝尔曼最优方程的迭代式也可以写成矩阵形式
\mathbf{u}_{new} = T^*(\mathbf{u}) = \max_{a\in \mathcal{A}}\mathcal{R}^a +\gamma\mathcal{P}^a \mathbf{u}\\
同样的,我们可以得到
d(T^*(\mathbf{u}), T^*(\mathbf{v})) \le \gamma d(\mathbf{u}, \mathbf{v})\\

而且根据贝尔曼最优方程

v_* =\mathcal{R}^a +\gamma\mathcal{P}^a v_* = T^\pi(v_*)\\

v_* ​就是压缩映射 T^* ​的固定点

根据压缩映射定理,我们可以直接得到如下的结论

  • 贝尔曼最优方程收敛于唯一的​ v_*
  • 值迭代算法以​的线性速率收敛于​ v_*
编辑于 2018-07-08

文章被以下专栏收录