《强化学习数学原理》学习笔记5——压缩映射定理的证明
紧接着上一篇博客中贝尔曼最优方程的矩阵-向量形式:
v=f(v)(1)v = f(v) \tag{1} v=f(v)(1)
为了分析式(1),首先需要介绍一下压缩映射定理(Contraction Mapping Theorem)。
一、先搞懂基础概念
在开始证明前,得先清楚两个关键概念:不动点和压缩映射。
(一)不动点
考虑一个函数 f(x)f(x)f(x),其中 x∈Rdx \in \mathbb{R}^dx∈Rd,且 f:Rd→Rdf: \mathbb{R}^d \to \mathbb{R}^df:Rd→Rd。如果有一个点 x∗x^*x∗,满足 f(x∗)=x∗f(x^*) = x^*f(x∗)=x∗,那这个 x∗x^*x∗ 就被称为不动点。简单说,就是这个点经过函数映射后,结果还是它自己,所以叫不动点。
(二)压缩映射
如果存在一个 γ∈(0,1)\gamma \in (0, 1)γ∈(0,1),使得函数 fff 是压缩映射(也叫压缩函数),那么对于任意的 x1,x2∈Rdx_1, x_2 \in \mathbb{R}^dx1,x2∈Rd,都有 ∥f(x1)−f(x2)∥≤γ∥x1−x2∥\|f(x_1) - f(x_2)\| \leq \gamma \|x_1 - x_2\|∥f(x1)−f(x2)∥≤γ∥x1−x2∥。这里的 ∥⋅∥\|\cdot\|∥⋅∥ 表示向量或者矩阵的范数。直观理解,就是函数 fff 把两个点 x1x_1x1 和 x2x_2x2 映射后的距离,比原来的距离“压缩”了,而且压缩比例不超过 γ\gammaγ(γ\gammaγ 小于1)。
二、压缩映射定理
对于形如 x=f(x)x = f(x)x=f(x) 的方程,其中 xxx 和 f(x)f(x)f(x) 都是实向量,如果 fff 是压缩映射,那么有以下性质:
- 存在性:一定存在一个不动点 x∗x^*x∗,满足 f(x∗)=x∗f(x^*) = x^*f(x∗)=x∗。
- 唯一性:这个不动点 x∗x^*x∗ 是唯一的。
- 算法性:考虑迭代过程
xk+1=f(xk)(2)x_{k + 1} = f(x_k) \tag{2}xk+1=f(xk)(2)
其中 k=0,1,2,…k = 0, 1, 2, \dotsk=0,1,2,…,对于任意初始值 x0x_0x0 (人为随意给定),当 k→∞k \to \inftyk→∞ 时,xk→x∗x_k \to x^*xk→x∗,而且收敛速度是指数级的。
三、详细证明过程
证明分四个部分,咱们一步步来~
(一)证明迭代序列 {xk=f(xk−1)}k=1∞\{x_k = f(x_{k - 1})\}_{k = 1}^{\infty}{xk=f(xk−1)}k=1∞是收敛的
要证明序列收敛,这里需要柯西序列的概念。柯西序列的定义是:如果一个序列 x1,x2,⋯∈Rx_1,x_2, \cdots \in \mathbb{R}x1,x2,⋯∈R 满足:对于任意小的 ε>0\varepsilon > 0ε>0,存在一个有限整数 NNN,使得任意 m,n>Nm, n > Nm,n>N 时,都有 ∥xm−xn∥<ε\|x_m - x_n\| < \varepsilon∥xm−xn∥<ε,那么该序列被称为柯西序列。该条件的直观解释为, NNN 之后的所有元素彼此足够接近。柯西序列的重要性在于,它保证了序列一定收敛到一个极限。
现在来证明 {xk=f(xk−1)}k=1∞\{x_k = f(x_{k - 1})\}_{k = 1}^{\infty}{xk=f(xk−1)}k=1∞ 是柯西序列:
首先,因为 fff 是压缩映射,所以对于 xk=f(xk−1)x_k = f(x_{k - 1})xk=f(xk−1) 和 xk−1=f(xk−2)x_{k - 1} = f(x_{k - 2})xk−1=f(xk−2),有
∥xk+1−xk∥=∥f(xk)−f(xk−1)∥≤γ∥xk−xk−1∥(3)\|x_{k + 1} - x_k\| = \|f(x_k) - f(x_{k - 1})\| \leq \gamma \|x_k - x_{k - 1}\| \tag{3} ∥xk+1−xk∥=∥f(xk)−f(xk−1)∥≤γ∥xk−xk−1∥(3)
类似地,∥xk−xk−1∥≤γ∥xk−1−xk−2∥\|x_k - x_{k - 1}\| \leq \gamma \|x_{k - 1} - x_{k - 2}\|∥xk−xk−1∥≤γ∥xk−1−xk−2∥,以此类推,∥x2−x1∥≤γ∥x1−x0∥\|x_2 - x_1\| \leq \gamma \|x_1 - x_0\|∥x2−x1∥≤γ∥x1−x0∥。
所以可以递推得到:
∥xk+1−xk∥≤γ∥xk−xk−1∥≤γ2∥xk−1−xk−2∥⋮≤γk∥x1−x0∥(4)\begin{align*} \|x_{k + 1} - x_k\| &\leq \gamma \|x_k - x_{k - 1}\| \\ &\leq \gamma^2 \|x_{k - 1} - x_{k - 2}\| \\ &\vdots \\ &\leq \gamma^k \|x_1 - x_0\| \end{align*} \tag{4} ∥xk+1−xk∥≤γ∥xk−xk−1∥≤γ2∥xk−1−xk−2∥⋮≤γk∥x1−x0∥(4)
因为 γ<1\gamma < 1γ<1,所以对于任意的x0,x1x_0,x_1x0,x1,当 k→∞k \to \inftyk→∞ 时,∥xk+1−xk∥\|x_{k + 1} - x_k\|∥xk+1−xk∥ 会指数级地收敛到0。不过,光有 ∥xk+1−xk∥→0\|x_{k + 1} - x_k\| \to 0∥xk+1−xk∥→0 还不足以证明序列 {xk}\{x_k\}{xk} 收敛,所以得进一步考虑 m>nm > nm>n 时的 ∥xm−xn∥\|x_m - x_n\|∥xm−xn∥。
把 ∥xm−xn∥\|x_m - x_n\|∥xm−xn∥ 拆成:
∥xm−xn∥=∥xm−xm−1+xm−1−⋯−xn+1+xn+1−xn∥(4)\|x_m - x_n\| = \|x_m - x_{m - 1} + x_{m - 1} - \cdots - x_{n + 1} + x_{n + 1} - x_n\| \tag{4} ∥xm−xn∥=∥xm−xm−1+xm−1−⋯−xn+1+xn+1−xn∥(4)
根据范数的三角不等式(即 ∥a+b∥≤∥a∥+∥b∥\|a + b\| \leq \|a\| + \|b\|∥a+b∥≤∥a∥+∥b∥),上式可以得到:
∥xm−xn∥≤∥xm−xm−1∥+⋯+∥xn+1−xn∥(5)\|x_m - x_n\| \leq \|x_m - x_{m - 1}\| + \cdots + \|x_{n + 1} - x_n\| \tag{5} ∥xm−xn∥≤∥xm−xm−1∥+⋯+∥xn+1−xn∥(5)
再代入式(4)得到的 ∥xk+1−xk∥≤γk∥x1−x0∥\|x_{k + 1} - x_k\| \leq \gamma^k \|x_1 - x_0\|∥xk+1−xk∥≤γk∥x1−x0∥ ,就有:
∥xm−xn∥≤γm−1∥x1−x0∥+⋯+γn∥x1−x0∥=γn(γm−1−n+⋯+1)∥x1−x0∥≤γn(1+γ+⋯+γm−1−n+γm−n+⋯)∥x1−x0∥\begin{align*} \|x_m - x_n\| &\leq \gamma^{m - 1} \|x_1 - x_0\| + \cdots + \gamma^n \|x_1 - x_0\| \\ &= \gamma^n (\gamma^{m - 1 - n} + \cdots + 1) \|x_1 - x_0\| \\ &\leq \gamma^n (1 + \gamma + \cdots + \gamma^{m-1-n} + \gamma^{m-n} + \cdots) \|x_1 - x_0\| \tag{6} \end{align*} ∥xm−xn∥≤γm−1∥x1−x0∥+⋯+γn∥x1−x0∥=γn(γm−1−n+⋯+1)∥x1−x0∥≤γn(1+γ+⋯+γm−1−n+γm−n+⋯)∥x1−x0∥(6)
而等比数列 1+γ+γ2+⋯1 + \gamma + \gamma^2 + \cdots1+γ+γ2+⋯ 的和是 11−γ\frac{1}{1 - \gamma}1−γ1(因为 γ<1\gamma < 1γ<1),所以:
∥xm−xn∥≤γn1−γ∥x1−x0∥(7)\|x_m - x_n\| \leq \frac{\gamma^n}{1 - \gamma} \|x_1 - x_0\| \tag{7} ∥xm−xn∥≤1−γγn∥x1−x0∥(7)
上式表明,对于任意的 ε>0\varepsilon > 0ε>0,我们总能找到一个 NNN,使得当 m,n>Nm, n > Nm,n>N 时,∥xm−xn∥<ε\|x_m - x_n\| < \varepsilon∥xm−xn∥<ε。所以这个序列是柯西序列,必然收敛到一个极限点,记为 x∗=limk→∞xkx^* = \lim_{k \to \infty} x_kx∗=limk→∞xk。
(二)证明极限 x∗=limk→∞xkx^* = \lim_{k \to \infty} x_kx∗=limk→∞xk 是不动点
因为 ∥f(xk)−xk∥=∥xk+1−xk∥≤γk∥x1−x0∥\|f(x_k) - x_k\| = \|x_{k + 1} - x_k\| \leq \gamma^k \|x_1 - x_0\|∥f(xk)−xk∥=∥xk+1−xk∥≤γk∥x1−x0∥,当 k→∞k \to \inftyk→∞ 时,∥f(xk)−xk∥\|f(x_k) - x_k\|∥f(xk)−xk∥ 以指数级速度收敛到0。
又因为函数 fff 是连续的(压缩映射是连续的),所以对 xk+1=f(xk)x_{k + 1} = f(x_k)xk+1=f(xk) 两边取极限 k→∞k \to \inftyk→∞,就有 limk→∞xk+1=limk→∞f(xk)\lim_{k \to \infty} x_{k + 1} = \lim_{k \to \infty} f(x_k)limk→∞xk+1=limk→∞f(xk),也就是 x∗=f(x∗)x^* = f(x^*)x∗=f(x∗),所以 x∗x^*x∗ 是不动点。
(三)证明不动点是唯一的
假设存在另一个不动点 x′x'x′,满足 f(x′)=x′f(x') = x'f(x′)=x′。
那么 ∥x′−x∗∥=∥f(x′)−f(x∗)∥\|x' - x^*\| = \|f(x') - f(x^*)\|∥x′−x∗∥=∥f(x′)−f(x∗)∥,因为 fff 是压缩映射,所以 ∥f(x′)−f(x∗)∥≤γ∥x′−x∗∥\|f(x') - f(x^*)\| \leq \gamma \|x' - x^*\|∥f(x′)−f(x∗)∥≤γ∥x′−x∗∥。
也就是 ∥x′−x∗∥≤γ∥x′−x∗∥\|x' - x^*\| \leq \gamma \|x' - x^*\|∥x′−x∗∥≤γ∥x′−x∗∥。
因为 γ<1\gamma < 1γ<1,要让这个不等式成立,只能是 ∥x′−x∗∥=0\|x' - x^*\| = 0∥x′−x∗∥=0,所以 x′=x∗x' = x^*x′=x∗,不动点唯一。
(四)证明 xkx_kxk 指数级收敛到 x∗x^*x∗
回忆式(7)得到的 ∥xm−xn∥≤γn1−γ∥x1−x0∥\|x_m - x_n\| \leq \frac{\gamma^n}{1 - \gamma} \|x_1 - x_0\|∥xm−xn∥≤1−γγn∥x1−x0∥。
因为 mmm 可以任意大,当 m→∞m \to \inftym→∞ 时,
∥x∗−xn∥=limm→∞∥xm−xn∥≤γn1−γ∥x1−x0∥(8)\|x^* - x_n\| = \lim_{m \to \infty} \|x_m - x_n\| \leq \frac{\gamma^n}{1 - \gamma} \|x_1 - x_0\| \tag{8} ∥x∗−xn∥=m→∞lim∥xm−xn∥≤1−γγn∥x1−x0∥(8)
又因为 γ<1\gamma < 1γ<1,所以当 n→∞n \to \inftyn→∞ 时,误差 ∥x∗−xn∥\|x^* - x_n\|∥x∗−xn∥ 会指数级收敛到0。