第五章:邻近算法

9309 字
47 分钟
第五章:邻近算法
文章摘要

邻近算子与 Moreau 包络、极大单调算子、邻近点算法 PPA 及其松弛、邻近梯度算法 PGA。

5.1 引言:为什么需要邻近算法#

在前几章讨论的梯度下降法及其变体中,一个隐含的前提是目标函数 f(x)f(x) 处处可微——只有这样才能计算梯度、沿负梯度方向更新。然而,许多重要的优化问题包含不可微的成分。典型的例子包括:1\ell_1 范数 x1=ixi\|x\|_1 = \sum_i |x_i|(在零点处不可微,用于稀疏正则化)、凸集上的指示函数 ιΩ(x)\iota_\Omega(x)(在集合边界处不可微,用于编码约束)、以及核范数 X\|X\|_*(用于低秩矩阵恢复)。对于这类问题,梯度下降法无法直接应用。

次梯度法是一种可行的替代方案,但它的收敛速度较慢(O(1/k)O(1/\sqrt{k})),且需要递减步长。能否找到一种方法,既能处理不可微函数,又能保持与梯度下降相当的收敛性?邻近算子(proximal operator)正是这个问题的答案。邻近算子的核心思想可以用一句话概括:在当前点附近找一个使目标函数尽可能小的点,但不能离当前点太远。它是”不可微版本的梯度步”——对光滑函数,邻近算子退化为梯度下降;对不可微函数,邻近算子自动处理不可微性,无需显式计算次梯度。

本章的逻辑主线如下。首先,Tikhonov 正则化揭示了”将凸问题转化为强凸问题”的动机,但存在根本性缺陷;邻近点算法(PPA)克服了这一缺陷,成为处理不可微优化的基础框架。随后引入邻近算子的系统理论,建立与次梯度、预解算子之间的联系。接下来,Moreau 包络将不可微函数”光滑化”,提供理解 PPA 的另一个视角——PPA 等价于在 Moreau 包络上做梯度下降。为了严格证明 PPA 的收敛性(特别是不可微情形),需要极大单调算子理论作为工具,其核心结论是预解算子的稳定非扩张性。在此基础上,松弛 PPA 通过引入松弛参数对标准 PPA 进行推广,提供了更灵活的迭代策略。最后,邻近梯度算法(PGA)将 PPA 与梯度下降结合,解决”可微 + 不可微”复合问题,是稀疏优化、压缩感知等领域的核心实用算法。

5.2 从 Tikhonov 正则化到邻近点算法#

5.2.1 Tikhonov 正则化:动机与缺陷#

强凸(strongly convex)是优化中一个非常好的性质——它保证解的唯一性和算法的快速收敛。但实际问题中,目标函数 f(x)f(x) 往往只是凸的,并不具备强凸性。一个自然的思路是:能否通过某种变换将凸函数转化为强凸函数?

回忆强凸函数的定义:f(x)f(x)μ\mu-强凸的,当且仅当 f(x)μ2x2f(x) - \frac{\mu}{2}\|x\|^2 仍然是凸的。因此,给一个凸函数加上强凸项 μ2x2\frac{\mu}{2}\|x\|^2,整体就变成了强凸函数——凸加强凸等于强凸。

Tikhonov 正则化的做法正是在原始目标函数上添加一个正则项:

minx  f(x)+ϵk2x2\min_x \; f(x) + \frac{\epsilon_k}{2}\|x\|^2

其中 ϵk>0\epsilon_k > 0 是正则化参数。添加正则项后整个目标函数变成强凸的,可以利用强凸函数的良好性质进行求解。

然而,为了保证正则化问题的解与原问题的解一致,需要在迭代过程中令正则项趋于零。由于 xx 的最优值不一定为零,不能期望 x20\|x\|^2 \to 0,因此需要令系数 ϵk0\epsilon_k \to 0。这里存在一个根本性的矛盾:随着 ϵk0\epsilon_k \to 0,正则项的作用越来越弱,函数的强凸性也随之减弱,条件数变差,算法收敛速度退化。

Tikhonov 正则化的核心矛盾:为了等价性需要 ϵk0\epsilon_k \to 0,但 ϵk0\epsilon_k \to 0 又会使强凸性消失,导致算法性能退化。

5.2.2 邻近点算法的迭代格式#

为了克服 Tikhonov 正则化的缺陷,引入邻近点算法(Proximal Point Algorithm, PPA)。PPA 的迭代格式为:

xk+1=argminx{f(x)+12αxxk2}x^{k+1} = \arg\min_x \left\{ f(x) + \frac{1}{2\alpha}\|x - x^k\|^2 \right\}

其中 α>0\alpha > 0 是步长参数(可以固定,也可以取为 αk\alpha_k)。后面的二次项 12αxxk2\frac{1}{2\alpha}\|x - x^k\|^2 称为邻近项(proximal term)。

与 Tikhonov 正则化的关键区别在于:邻近项是关于 xxkx - x^k 的二次项(以当前迭代点为中心),而不是关于 xx 本身的二次项。这意味着邻近项的中心随迭代更新,不需要令系数趋于零就能保持等价性。邻近项本身是强凸的,所以整个目标函数也是强凸的,并且这种强凸性不会随迭代减弱。

回忆梯度下降法的线性化展开形式:xk+1=argminx{f(xk)+f(xk)(xxk)+12αxxk2}x^{k+1} = \arg\min_x \left\{ f(x^k) + \nabla f(x^k)^\top(x - x^k) + \frac{1}{2\alpha}\|x - x^k\|^2 \right\}。PPA 中同样出现了邻近项 12αxxk2\frac{1}{2\alpha}\|x - x^k\|^2,但 PPA 保留了完整的 f(x)f(x) 而非其线性近似。

5.2.3 PPA 与隐式梯度下降#

对 PPA 迭代中的目标函数 f(x)+12αxxk2f(x) + \frac{1}{2\alpha}\|x - x^k\|^2 关于 xx 求次梯度并令其包含零(最优性条件):

0f(xk+1)+1α(xk+1xk)0 \in \partial f(x^{k+1}) + \frac{1}{\alpha}(x^{k+1} - x^k)

整理可得:

xk+1xkαf(xk+1)x^{k+1} \in x^k - \alpha \,\partial f(x^{k+1})

这可以理解为隐式梯度下降(implicit gradient descent)。与显式梯度下降 xk+1=xkαf(xk)x^{k+1} = x^k - \alpha \,\nabla f(x^k) 对比,两者的关键区别在于:显式方法在当前点 xkx^k 处计算梯度,而隐式方法在下一步的点 xk+1x^{k+1} 处计算次梯度。隐式方法虽然在形式上更复杂(需要求解一个子问题),但具有更好的稳定性和收敛性。

5.3 邻近算子#

5.3.1 定义与良定义性#

给定闭凸函数 h:RnR{+}h: \mathbb{R}^n \to \mathbb{R} \cup \{+\infty\},其邻近算子(proximal operator)定义为:

proxh(x):=argminudomh{h(u)+12ux2}\mathrm{prox}_h(x) := \arg\min_{u \in \mathrm{dom}\,h} \left\{ h(u) + \frac{1}{2}\|u - x\|^2 \right\}

如果 hh 是闭凸(proper closed convex)函数,那么对任意 xRnx \in \mathbb{R}^n,邻近算子的值存在且唯一。这意味着邻近算子是一个单值映射(single-valued mapping),不会出现一对多的情况。

单值性非常重要:回忆在研究单调包含问题(monotone inclusion)时,预解算子(resolvent operator)也是单值映射,从而可以将"\in"关系转换为"=="关系。邻近算子同样具备这个性质,因此后续将 PPA 转化为不动点问题时,可以将包含关系转换为等式关系。

5.3.2 直觉理解#

邻近算子的定义虽然以优化问题的形式给出,但其几何含义十分直观。proxh(x)\mathrm{prox}_h(x) 所求解的子问题包含两个相互竞争的目标:

  • h(u)h(u) 要求 uu 使函数值尽可能小——这是”下降”的驱动力;
  • 12ux2\frac{1}{2}\|u - x\|^2 要求 uu 不能离 xx 太远——这是”保守”的约束。

邻近算子的输出 proxh(x)\mathrm{prox}_h(x) 正是这两个力量达到平衡的点。当 hh 本身是光滑函数时,对 h(u)+12ux2h(u) + \frac{1}{2}\|u-x\|^2 求导令其为零:h(u)+(ux)=0\nabla h(u) + (u - x) = 0,即 u=xh(u)u = x - \nabla h(u)。若 h\nabla h 变化缓慢(局部近似为常数),则 uxh(x)u \approx x - \nabla h(x),这正是梯度下降的一步。因此,邻近算子是梯度下降从光滑函数到非光滑函数的自然推广。

5.3.3 邻近算子与次梯度的关系#

hh 是闭凸函数,则以下等价关系成立:

u=proxh(x)xuh(u)u = \mathrm{prox}_h(x) \quad \Longleftrightarrow \quad x - u \in \partial h(u)

直观理解:uu 是邻近算子在 xx 处的值,意味着在 uu 处对目标 h(u)+12ux2h(u) + \frac{1}{2}\|u - x\|^2 的最优性条件成立。对 uu 求次梯度并令其包含零:0h(u)+(ux)0 \in \partial h(u) + (u - x),整理即得 xuh(u)x - u \in \partial h(u)

5.3.4 预解算子形式#

将 PPA 的隐式梯度下降写成算子形式。将含 xk+1x^{k+1} 的项移至左边:

(I+αf)xk+1=xk(I + \alpha\,\partial f)\,x^{k+1} = x^k

两边取逆:

xk+1=(I+αf)1xkx^{k+1} = (I + \alpha\,\partial f)^{-1}\,x^k

其中 (I+αf)1(I + \alpha\,\partial f)^{-1} 即为预解算子(resolvent operator),记为 JαfJ_{\alpha\partial f}。PPA 的邻近算子形式为:

xk+1=proxαf(xk)x^{k+1} = \mathrm{prox}_{\alpha f}(x^k)

即邻近算子与预解算子是同一迭代的两种等价表示。

5.3.5 常见函数的邻近算子#

邻近算子的实用性在很大程度上取决于它是否具有解析解。幸运的是,许多在稀疏优化和约束优化中常见的函数都具有闭式的邻近算子。下表给出主要的实例(参数 α>0\alpha > 0):

函数 h(x)h(x)proxαh(x)\mathrm{prox}_{\alpha h}(x)名称
x1=ixi\|x\|_1 = \sum_i \|x_i\|Sα(x)\mathcal{S}_\alpha(x),逐分量 $[\mathcal{S}_\alpha(x)]_i = \mathrm{sign}(x_i)\max{x_i
ιΩ(x)\iota_\Omega(x)(凸集 Ω\Omega 的指示函数)PΩ(x)=argminuΩuxP_\Omega(x) = \arg\min_{u \in \Omega}\|u - x\|投影算子
x2\|x\|_22\ell_2 范数,非平方)(1αmax{x2,α})x\left(1 - \frac{\alpha}{\max\{\|x\|_2,\,\alpha\}}\right) x块软阈值
12x22\frac{1}{2}\|x\|_2^22\ell_2 范数平方)11+αx\frac{1}{1+\alpha} x缩放
δ{0}(x)\delta_{\{0\}}(x)(零点指示函数)00置零

表中各条目的推导将在 5.6 节给出前两个的完整证明,其余可用类似方法验证。

软阈值算子(soft-thresholding operator)Sα\mathcal{S}_\alpha 是稀疏优化的核心构件:当 xi>α|x_i| > \alpha 时,xix_i 向零的方向”收缩”α\alpha;当 xiα|x_i| \leq \alpha 时,xix_i 直接被压缩为零。这种”大值收缩、小值归零”的行为正是 1\ell_1 正则化产生稀疏解的机制。

投影算子 PΩP_\Omega 是约束优化的基本运算:它将点映射到约束集上距其最近的点。指示函数的邻近算子之所以等于投影,是因为指示函数在集合外取值 ++\infty,最小化自动要求可行。

块软阈值处理 2\ell_2 范数(非平方),其行为类似软阈值但作用于整个向量:当 x2α\|x\|_2 \leq \alpha 时整个向量被置零,否则沿径向收缩。这在 group LASSO 等结构化稀疏问题中出现。

5.4 Moreau 包络#

邻近算子将不可微函数的最小化问题转化为一系列可解的子问题。一个自然的追问是:这些子问题的最优值——即邻近算子定义中那个 min\min 的取值——本身是否具有某种良好的结构?答案是肯定的,而且这个取值函数有一个非常重要的性质:即使原函数不可微,它也是光滑的。这就是 Moreau 包络。

理解 Moreau 包络对本章后续内容有两个作用:其一,它揭示了 PPA 的另一种解读——PPA 等价于在一个光滑函数上做梯度下降,这解释了 PPA 为何能同时处理不可微性并保持良好收敛性;其二,Moreau 包络的梯度公式将邻近算子与光滑优化联系起来,为收敛速度分析提供了工具。

5.4.1 定义与基本性质#

给定闭凸函数 ff 和参数 α>0\alpha > 0ffMoreau 包络(Moreau envelope,也称 Moreau-Yosida 正则化)定义为:

Mαf(x):=minu{f(u)+12αux2}M_{\alpha f}(x) := \min_u \left\{ f(u) + \frac{1}{2\alpha}\|u - x\|^2 \right\}

Moreau 包络与邻近算子的关系是直接的:Mαf(x)M_{\alpha f}(x) 是邻近算子定义中那个最小化问题的最优值,而 proxαf(x)\mathrm{prox}_{\alpha f}(x) 是取到最优值的点。

Moreau 包络的核心意义在于:即使 ff 本身不可微,MαfM_{\alpha f} 也是光滑的。具体地,MαfM_{\alpha f} 在全空间可微,且其梯度为:

Mαf(x)=1α(xproxαf(x))\nabla M_{\alpha f}(x) = \frac{1}{\alpha}\left(x - \mathrm{prox}_{\alpha f}(x)\right)

这个结论的证明可参见教材定理 8.9。其直觉是:Mαf(x)M_{\alpha f}(x) 作为以 uu 为变量的优化问题的值函数(value function),其关于 xx 的变化率由最优解处的边际效应决定。由于邻近项 12αux2\frac{1}{2\alpha}\|u-x\|^2 关于 xx 的梯度为 1α(ux)-\frac{1}{\alpha}(u-x),而最优解 u=proxαf(x)u = \mathrm{prox}_{\alpha f}(x),代入即得上式。

此外,Mαf\nabla M_{\alpha f} 是 Lipschitz 连续的(Lipschitz 常数为 1α\frac{1}{\alpha}),因此 MαfM_{\alpha f} 不仅可微,还具有良好的数值性质。

5.4.2 Moreau 包络的光滑近似性质#

Moreau 包络 MαfM_{\alpha f} 与原函数 ff 具有相同的最小值点:argminxf(x)=argminxMαf(x)\arg\min_x f(x) = \arg\min_x M_{\alpha f}(x)。这意味着最小化 ff 可以等价地转化为最小化其光滑近似 MαfM_{\alpha f}

以指示函数为例:f=ιCf = \iota_C 时,Mαf(x)=12αdist2(x,C)M_{\alpha f}(x) = \frac{1}{2\alpha}\mathrm{dist}^2(x, C),即到集合 CC 的距离平方(除以 2α2\alpha)。原函数 ιC\iota_C 在边界处跳跃式地从 0 变为 ++\infty,而 MαfM_{\alpha f} 则用光滑的二次函数过渡。

1\ell_1 范数为例:f(x)=x1f(x) = \|x\|_1 时,Mαf(x)M_{\alpha f}(x) 是分量可分的 Huber 损失函数。每个分量上,xi|x_i| 在零点处的”尖角”被 MαfM_{\alpha f} 替换为二次函数 xi22α\frac{x_i^2}{2\alpha}(当 xiα|x_i| \leq \alpha),而在远离零的区域仍近似为 xiα2|x_i| - \frac{\alpha}{2}。参数 α\alpha 控制光滑化的程度:α\alpha 越大,光滑化范围越宽,但对原函数的逼近越粗糙。

5.4.3 PPA 作为 Moreau 包络上的梯度下降#

Moreau 包络提供了理解 PPA 的另一个视角。对 Mαf(x)M_{\alpha f}(x) 使用固定步长 α\alpha 的梯度下降:

xk+1=xkαMαf(xk)=xk(xkproxαf(xk))=proxαf(xk)x^{k+1} = x^k - \alpha \,\nabla M_{\alpha f}(x^k) = x^k - \left(x^k - \mathrm{prox}_{\alpha f}(x^k)\right) = \mathrm{prox}_{\alpha f}(x^k)

这正是 PPA 的迭代格式。因此,PPA 可以理解为:先将不可微的 ff 替换为其光滑近似 MαfM_{\alpha f},再对光滑函数做梯度下降。这一解释揭示了 PPA 为何能同时处理不可微性和保持良好收敛性——它实际上是在一个光滑函数上做梯度下降。

5.5 极大单调算子#

5.5.1 为什么需要极大单调算子#

在 5.4.3 节中,我们从 Moreau 包络的角度直观理解了 PPA 的工作原理。但直觉不能替代严格证明。要证明 PPA 的收敛性,核心问题是:迭代映射 T=proxαf=(I+αf)1T = \mathrm{prox}_{\alpha f} = (I + \alpha\,\partial f)^{-1} 具有什么性质?

ff 可微时,f={f}\partial f = \{\nabla f\} 是单值映射,f\nabla f 的单调性(凸性的直接推论)足以证明 TT 是稳定非扩张的(5.7.1 节将给出完整证明)。然而,当 ff 不可微时,f\partial f 是集值映射——对同一个 xxf(x)\partial f(x) 可能是一个集合而非单个向量。这时”f\nabla f 的单调性”不再适用,我们需要一个能处理集值映射的单调性理论。

极大单调算子正是为此而设计的概念。它把单调性从单值函数推广到集值映射,并且保证了一个关键结论:闭凸函数的次微分 f\partial f 是极大单调算子,从而其预解算子 (I+αf)1(I + \alpha\,\partial f)^{-1} 是稳定非扩张的。有了这个结论,PPA 在不可微情形下的收敛性就可以用与可微情形相同的框架来证明。

5.5.2 从单调性到极大单调性#

回忆第二章中的单调算子定义。对于单值映射 A:RnRnA: \mathbb{R}^n \to \mathbb{R}^n,单调性是指:

A(x)A(y),  xy0,x,yRn\langle A(x) - A(y),\; x - y \rangle \geq 0, \quad \forall\, x, y \in \mathbb{R}^n

A=fA = \nabla fff 是凸可微函数)时,这个性质由凸性直接保证。

对于集值映射 Φ:RnRn\Phi: \mathbb{R}^n \rightrightarrows \mathbb{R}^n(一个 xx 可能对应多个输出值),单调性的定义需要稍作调整:对任意 x,yx, y 以及任意 uΦ(x)u \in \Phi(x)vΦ(y)v \in \Phi(y),都有

vu,  yx0\langle v - u,\; y - x \rangle \geq 0

含义是:无论从 Φ(x)\Phi(x)Φ(y)\Phi(y) 中各取哪个元素,输出的增量方向与输入的增量方向之间的夹角都不超过 90 度。当 Φ\Phi 是单值映射时,这就退化为上面的标准定义。

然而,单调性本身还不够。考虑一个一维例子:定义映射 Φ(x)={1}\Phi(x) = \{1\}(当 x>0x > 0),Φ(x)={1}\Phi(x) = \{-1\}(当 x<0x < 0),在 x=0x = 0Φ(0)=\Phi(0) = \emptyset(未定义)。可以验证 Φ\Phi 在其定义域上满足单调性。但这个映射在 x=0x = 0 处有一个”缺口”——我们完全可以补充 Φ(0)=[1,1]\Phi(0) = [-1, 1](零处的所有值),得到一个”更完整”的单调映射 Ψ\Psi,使得 Φ\Phi 的图(所有输入-输出对的集合)被 Ψ\Psi 的图严格包含。

极大单调算子排除了这种”有缺口”的情况。设 Φ:RnRn\Phi: \mathbb{R}^n \rightrightarrows \mathbb{R}^n 是集值映射,Φ\Phi 称为极大单调算子,如果它满足两个条件:(1) Φ\Phi 是单调的;(2) 不存在单调映射 Ψ\Psi 使得 Φ\Phi 的图被 Ψ\Psi 的图严格包含。第二个条件的含义是:Φ\Phi 在所有单调映射中已经是”最完整的”,无法再向其中添加任何输入-输出对而保持单调性。

在上面的例子中,Φ\Phi(在零处未定义的版本)不是极大单调的,因为可以扩展;但补全后的 Ψ\PsiΨ(0)=[1,1]\Psi(0) = [-1, 1])是极大单调的——恰好就是 x|x| 的次微分 \partial|\cdot|

5.5.3 闭凸函数的次微分是极大单调算子#

极大单调算子理论中最重要的结论之一是:

f:RnR{+}f: \mathbb{R}^n \to \mathbb{R} \cup \{+\infty\} 是闭凸函数,则 f\partial f 是极大单调算子。

这个结论(Rockafellar 定理)的证明需要较多凸分析的技术工具,此处不展开。它的意义在于:闭凸函数的次微分不仅是单调的(这由凸性直接得到),而且是”最完整的单调映射”——在保持单调性的前提下,f\partial f 已经包含了所有可能的次梯度信息,没有遗漏。

5.5.4 预解算子的稳定非扩张性#

极大单调算子理论的核心应用在于以下结论。设 Φ\Phi 是极大单调算子,则对任意 c>0c > 0

  1. 预解算子 JcΦ=(I+cΦ)1J_{c\Phi} = (I + c\,\Phi)^{-1} 的定义域和值域均为 Rn\mathbb{R}^n,且 JcΦJ_{c\Phi} 是单值映射
  2. JcΦJ_{c\Phi}稳定非扩张的(firmly nonexpansive)

第一条保证了预解算子在整个空间上都有定义且输出唯一——这是将不动点迭代从”包含”关系(xTxx \in Tx)转化为”等式”关系(x=Txx = Tx)的前提。第二条是收敛性的关键:稳定非扩张映射的不动点迭代是收敛的(第二章定理)。

将这两条结论与 5.5.3 节的结论结合,就得到了 PPA 在不可微情形下收敛的完整逻辑链:

f 是闭凸函数    f 是极大单调算子    Jαf=(I+αf)1 是稳定非扩张的    PPA 收敛f \text{ 是闭凸函数} \;\Rightarrow\; \partial f \text{ 是极大单调算子} \;\Rightarrow\; J_{\alpha\partial f} = (I + \alpha\,\partial f)^{-1} \text{ 是稳定非扩张的} \;\Rightarrow\; \text{PPA 收敛}

极大单调算子理论对本章的价值集中在上述逻辑链中。读者不必深入极大单调算子的一般理论细节,只需记住两点:(1) 闭凸函数的次微分是极大单调算子;(2) 极大单调算子的预解算子是稳定非扩张的。这两点足以支撑 PPA 及后续 PGA 的收敛性分析。

5.6 PPA 的两个重要例子#

在给出 PPA 的收敛性证明之前,先通过两个具体例子展示邻近算子的计算方法,它们同时验证了 5.3.5 节邻近算子表中的前两条。

5.6.1 指示函数上的 PPA 等价于投影#

f=ιΩf = \iota_\Omega 为凸集 Ω\Omega 上的指示函数:

ιΩ(x)={0,xΩ+,xΩ\iota_\Omega(x) = \begin{cases} 0, & x \in \Omega \\ +\infty, & x \notin \Omega \end{cases}

指示函数是凸的(当 Ω\Omega 为凸集时),但不可微(其次微分是法锥)。

对指示函数应用 PPA:

xk+1=argminx{ιΩ(x)+12αxxk2}x^{k+1} = \arg\min_x \left\{ \iota_\Omega(x) + \frac{1}{2\alpha}\|x - x^k\|^2 \right\}

由于 xΩx \notin \OmegaιΩ(x)=+\iota_\Omega(x) = +\infty,最小化自动要求 xΩx \in \Omega。此时 ιΩ(x)=0\iota_\Omega(x) = 0,问题简化为:

xk+1=argminxΩ  12αxxk2x^{k+1} = \arg\min_{x \in \Omega} \; \frac{1}{2\alpha}\|x - x^k\|^2

系数 12α\frac{1}{2\alpha} 不影响最优解,因此这等价于:

xk+1=argminxΩ  xxk2=PΩ(xk)x^{k+1} = \arg\min_{x \in \Omega} \; \|x - x^k\|^2 = P_\Omega(x^k)

即在凸集 Ω\Omega 上对 xkx^k投影(projection)。因此,投影梯度法可以视为 PPA 作用在指示函数上的特例。

算子形式验证:从零包含问题出发,PPA 的最优性条件为:

0ιΩ(xk+1)+1α(xk+1xk)0 \in \partial\,\iota_\Omega(x^{k+1}) + \frac{1}{\alpha}(x^{k+1} - x^k)

整理为算子形式:

xk+1=(I+αιΩ)1xkx^{k+1} = (I + \alpha\,\partial\,\iota_\Omega)^{-1}\,x^k

而此前已证明 (I+αιΩ)1=PΩ(I + \alpha\,\partial\,\iota_\Omega)^{-1} = P_\Omega,即预解算子等于投影算子,与上面的结论一致。

5.6.2 1\ell_1 范数上的 PPA 得到收缩算子#

f(x)=x1=i=1nxif(x) = \|x\|_1 = \sum_{i=1}^n |x_i|xRnx \in \mathbb{R}^n。对其应用 PPA:

xk+1=argminx{x1+12αxxk2}x^{k+1} = \arg\min_x \left\{ \|x\|_1 + \frac{1}{2\alpha}\|x - x^k\|^2 \right\}

展开为分量形式:

=argminxi=1n{xi+12α(xixik)2}= \arg\min_x \sum_{i=1}^n \left\{ |x_i| + \frac{1}{2\alpha}(x_i - x_i^k)^2 \right\}

由于各分量之间不存在耦合项(coupling term)——即不存在 xixjx_ix_jiji \neq j)的交叉项——可以对每个分量独立求解:

xik+1=argminxi{xi+12α(xixik)2}x_i^{k+1} = \arg\min_{x_i} \left\{ |x_i| + \frac{1}{2\alpha}(x_i - x_i^k)^2 \right\}

情况一xik+1>0x_i^{k+1} > 0。此时 xi=xi|x_i| = x_i,对 xix_i 求导令其为零:

1+1α(xik+1xik)=0    xik+1=xikα1 + \frac{1}{\alpha}(x_i^{k+1} - x_i^k) = 0 \implies x_i^{k+1} = x_i^k - \alpha

此情况要求 xik+1>0x_i^{k+1} > 0,即 xik>αx_i^k > \alpha

情况二xik+1<0x_i^{k+1} < 0。此时 xi=xi|x_i| = -x_i,对 xix_i 求导令其为零:

1+1α(xik+1xik)=0    xik+1=xik+α-1 + \frac{1}{\alpha}(x_i^{k+1} - x_i^k) = 0 \implies x_i^{k+1} = x_i^k + \alpha

此情况要求 xik+1<0x_i^{k+1} < 0,即 xik<αx_i^k < -\alpha

情况三xik+1=0x_i^{k+1} = 0。此时 xi|x_i| 在零处不可微,需要使用次微分。xi|x_i| 在零处的次微分为 0=[1,1]\partial|0| = [-1, 1]。最优性条件变为:

0[1,1]+1α(0xik)0 \in [-1, 1] + \frac{1}{\alpha}(0 - x_i^k)

xikα[1,1]\frac{x_i^k}{\alpha} \in [-1, 1],等价于 xik[α,α]x_i^k \in [-\alpha, \alpha]

综合三种情况,得到软阈值公式(soft-thresholding):

xik+1=Sα(xik):={xikα,xik>α0,xikαxik+α,xik<αx_i^{k+1} = \mathcal{S}_\alpha(x_i^k) := \begin{cases} x_i^k - \alpha, & x_i^k > \alpha \\ 0, & |x_i^k| \leq \alpha \\ x_i^k + \alpha, & x_i^k < -\alpha \end{cases}

这就是收缩算子(shrinkage operator),也写作:

Sα(xik)=sign(xik)max{xikα,  0}\mathcal{S}_\alpha(x_i^k) = \mathrm{sign}(x_i^k) \cdot \max\{|x_i^k| - \alpha,\; 0\}

5.7 PPA 的收敛性分析#

本节用三种不同的方法证明 PPA 的收敛性。给出三种证明并非为了重复,而是因为它们各自适用于不同的条件并揭示了不同的数学结构。方法一最直接,在可微情形下从预解算子的定义出发验证稳定非扩张性;方法二处理不可微情形,将 5.5 节建立的极大单调算子理论付诸应用,展示了从凸分析到算子理论再到收敛性的完整逻辑链条;方法三基于最优性条件和费杰单调性(Fejer monotonicity),不依赖算子理论的抽象框架,是最”自给自足”的证明路径——它只需要凸性和基本的不等式技巧,因此适用范围也最广,后续松弛 PPA(5.8 节)和 PGA(5.9 节)的收敛性证明都沿用方法三的思路。

5.7.1 方法一:算子形式证明(可微情形)#

条件ff 凸且可微,步长 α>0\alpha > 0 固定,f\nabla f 是单调算子。

目标:证明 T=(I+αf)1T = (I + \alpha\,\nabla f)^{-1} 是稳定非扩张的(firmly nonexpansive)。

证明:令 u=T(x)u = T(x)v=T(y)v = T(y),则:

x=u+αf(u),y=v+αf(v)x = u + \alpha\,\nabla f(u), \qquad y = v + \alpha\,\nabla f(v)

根据稳定非扩张的定义,需证明:

T(x)T(y)2xy,  T(x)T(y)\|T(x) - T(y)\|^2 \leq \langle x - y,\; T(x) - T(y) \rangle

即证 uv2xy,  uv\|u - v\|^2 \leq \langle x - y,\; u - v \rangle。将 x,yx, y 的表达式代入右侧:

xy,  uv=(u+αf(u))(v+αf(v)),  uv\langle x - y,\; u - v \rangle = \langle (u + \alpha\,\nabla f(u)) - (v + \alpha\,\nabla f(v)),\; u - v \rangle
=uv2+αf(u)f(v),  uv= \|u - v\|^2 + \alpha\,\langle \nabla f(u) - \nabla f(v),\; u - v \rangle

由于 f\nabla f 是单调算子,有 f(u)f(v),  uv0\langle \nabla f(u) - \nabla f(v),\; u - v \rangle \geq 0。又 α>0\alpha > 0,故:

xy,  uvuv2\langle x - y,\; u - v \rangle \geq \|u - v\|^2

这正是稳定非扩张的定义。根据不动点迭代的收敛定理,稳定非扩张映射的不动点迭代是收敛的,从而 PPA 收敛。\blacksquare

5.7.2 方法二:算子形式证明(不可微情形)#

ff 凸但不可微时,方法一的证明思路不再直接适用,因为 f\partial f 是集值映射,不能简单地写成 x=u+αf(u)x = u + \alpha\,\nabla f(u) 这样的等式。此时需要调用 5.5 节建立的极大单调算子理论。

证明的逻辑链条如下:ff 是闭凸函数 \Rightarrow f\partial f 是极大单调算子(5.5.3 节)\Rightarrow (I+αf)1(I + \alpha\,\partial f)^{-1} 是稳定非扩张的(5.5.4 节性质 2)\Rightarrow 不动点迭代收敛(第二章不动点定理)。

这条逻辑链中,每一步都已在前面的章节中建立,此处只需串联即可。方法二的价值在于它表明:可微情形的证明(方法一)可以通过极大单调算子的框架自然地推广到不可微情形,而无需引入任何本质上不同的新技巧。

5.7.3 方法三:利用最优性条件和费杰单调性#

条件ff 凸,步长 α>0\alpha > 0 固定。设 xx^* 是最优解。

PPA 迭代xk+1=xkαf(xk+1)x^{k+1} = x^k - \alpha\,\nabla f(x^{k+1})(以可微情形为例)。

步骤 1:分析 xk+1x2\|x^{k+1} - x^*\|^2

xk+1x2=xk+1xk+xkx2\|x^{k+1} - x^*\|^2 = \|x^{k+1} - x^k + x^k - x^*\|^2

在中间加减 xkx^k,展开:

=xk+1xk2+xkx2+2xk+1xk,  xkx= \|x^{k+1} - x^k\|^2 + \|x^k - x^*\|^2 + 2\langle x^{k+1} - x^k,\; x^k - x^*\rangle

进一步在内积中加减 xk+1x^{k+1}

=xk+1xk2+xkx2+2xk+1xk,  xk+1x= -\|x^{k+1} - x^k\|^2 + \|x^k - x^*\|^2 + 2\langle x^{k+1} - x^k,\; x^{k+1} - x^*\rangle

步骤 2:代入 PPA 迭代关系 xk+1xk=αf(xk+1)x^{k+1} - x^k = -\alpha\,\nabla f(x^{k+1})

=xkx2xk+1xk22αf(xk+1),  xk+1x= \|x^k - x^*\|^2 - \|x^{k+1} - x^k\|^2 - 2\alpha\,\langle \nabla f(x^{k+1}),\; x^{k+1} - x^*\rangle

步骤 3:利用最优性条件。xx^* 是最优解,故 f(x)=0\nabla f(x^*) = 0。因此:

f(xk+1),  xk+1x=f(xk+1)f(x),  xk+1x\langle \nabla f(x^{k+1}),\; x^{k+1} - x^*\rangle = \langle \nabla f(x^{k+1}) - \nabla f(x^*),\; x^{k+1} - x^*\rangle

ff 凸可知 f\nabla f 是单调算子,故上式 0\geq 0。加上 2α-2\alphaα>0\alpha > 0),得:

2αf(xk+1),  xk+1x0-2\alpha\,\langle \nabla f(x^{k+1}),\; x^{k+1} - x^*\rangle \leq 0

步骤 4:综合以上结果:

xk+1x2xkx2xk+1xk2\|x^{k+1} - x^*\|^2 \leq \|x^k - x^*\|^2 - \|x^{k+1} - x^k\|^2

这是经典的费杰单调性(Fejer monotonicity)不等式。它表明:

  • xkx2\|x^k - x^*\|^2 是单调递减序列(有下界 0),故收敛
  • k=0xk+1xk2<\sum_{k=0}^{\infty}\|x^{k+1} - x^k\|^2 < \infty,故 xk+1xk0\|x^{k+1} - x^k\| \to 0

后续步骤与不动点迭代收敛性证明完全相同,从而得出 PPA 收敛。\blacksquare

5.8 松弛 PPA#

5.8.1 动机:标准 PPA 的局限性#

标准 PPA 的迭代 xk+1=proxαf(xk)x^{k+1} = \mathrm{prox}_{\alpha f}(x^k) 在理论上具有良好的收敛性,但在实践中存在两个局限。

其一,每步迭代要求精确求解邻近子问题 argminx{f(x)+12αxxk2}\arg\min_x \{f(x) + \frac{1}{2\alpha}\|x-x^k\|^2\}。对于复杂的 ff,精确求解代价可能很高,而只需要近似求解就足以保证收敛。松弛参数提供了一种系统化的近似机制:当 ρk<1\rho_k < 1 时,新的迭代点只向邻近映射的方向走一部分,相当于用一个”保守版”的邻近步替代精确邻近步。

其二,标准 PPA 的每步移动量完全由邻近映射决定,没有利用迭代之间的惯性信息。当 ρk>1\rho_k > 1 时,算法在邻近映射的基础上进一步外推,类似于 Nesterov 加速中的动量项,在某些问题上可以加速收敛。

松弛 PPA 通过引入一个松弛参数 ρk(0,2)\rho_k \in (0, 2),将标准 PPA 推广为更灵活的迭代格式。当 ρk=1\rho_k = 1 时退化为标准 PPA,ρk<1\rho_k < 1 对应保守的松弛步,ρk>1\rho_k > 1 对应激进的惯性步。下面给出具体的迭代格式和收敛性分析。

5.8.2 迭代格式#

松弛 PPA 的迭代由两步组成:

x^k+1=argminx{f(x)+12αxxk2}\hat{x}^{k+1} = \arg\min_x \left\{ f(x) + \frac{1}{2\alpha} \|x - x^k\|^2 \right\}
xk+1=(1ρk)xk+ρkx^k+1x^{k+1} = (1 - \rho_k) x^k + \rho_k \hat{x}^{k+1}

其中 α>0\alpha > 0 是邻近参数,ρk(0,2)\rho_k \in (0, 2) 是松弛参数。第一步与标准 PPA 完全相同,计算邻近映射得到中间点 x^k+1\hat{x}^{k+1};第二步则对 xkx^kx^k+1\hat{x}^{k+1} 做加权组合,得到新的迭代点 xk+1x^{k+1}。当 ρk=1\rho_k = 1 时,松弛 PPA 退化为标准 PPA,即 xk+1=x^k+1x^{k+1} = \hat{x}^{k+1}

5.8.3 松弛参数的几何含义#

松弛参数 ρk\rho_k 的取值范围 (0,2)(0, 2) 可以进一步细分为两个区间,它们具有不同的几何含义。

松弛步ρk(0,1)\rho_k \in (0, 1)):此时 xk+1=(1ρk)xk+ρkx^k+1x^{k+1} = (1 - \rho_k) x^k + \rho_k \hat{x}^{k+1}xkx^kx^k+1\hat{x}^{k+1} 的凸组合。新的迭代点 xk+1x^{k+1} 落在 xkx^kx^k+1\hat{x}^{k+1} 之间的线段上,相当于只走了”一部分”邻近步(under-relaxation)。

惯性步ρk(1,2)\rho_k \in (1, 2)):将迭代式改写为 xk+1=x^k+1+(ρk1)(x^k+1xk)x^{k+1} = \hat{x}^{k+1} + (\rho_k - 1)(\hat{x}^{k+1} - x^k),此时 xk+1x^{k+1} 沿 x^k+1xk\hat{x}^{k+1} - x^k 方向”冲出”了 x^k+1\hat{x}^{k+1},超越了标准 PPA 的中间点。这种行为称为惯性步(over-relaxation),算法沿着当前移动方向进行了外推。

5.8.4 收敛性分析#

下面证明在 ρk(0,2)\rho_k \in (0, 2) 的条件下,序列 {xkx2}\{\|x^k - x^*\|^2\} 具有非递增单调性。

步骤 1:展开迭代点与最优解的距离。将 xk+1x^{k+1} 的表达式代入,展开 xk+1x2\|x^{k+1} - x^*\|^2

xk+1x2=(1ρk)(xkx)+ρk(x^k+1x)2\|x^{k+1} - x^*\|^2 = \|(1 - \rho_k)(x^k - x^*) + \rho_k(\hat{x}^{k+1} - x^*)\|^2
=xkx2+ρk2x^k+1xk2+2ρkxkx,x^k+1xk= \|x^k - x^*\|^2 + \rho_k^2 \|\hat{x}^{k+1} - x^k\|^2 + 2\rho_k \langle x^k - x^*, \hat{x}^{k+1} - x^k \rangle

步骤 2:处理交叉项。对 xkx,x^k+1xk\langle x^k - x^*, \hat{x}^{k+1} - x^k \rangle 插入 x^k+1\hat{x}^{k+1}

xkx,x^k+1xk=x^k+1xk2+x^k+1x,x^k+1xk\langle x^k - x^*, \hat{x}^{k+1} - x^k \rangle = -\|\hat{x}^{k+1} - x^k\|^2 + \langle \hat{x}^{k+1} - x^*, \hat{x}^{k+1} - x^k \rangle

代入后得到:

xk+1x2=xkx2+(ρk22ρk)x^k+1xk2+2ρkx^k+1x,x^k+1xk\|x^{k+1} - x^*\|^2 = \|x^k - x^*\|^2 + (\rho_k^2 - 2\rho_k)\|\hat{x}^{k+1} - x^k\|^2 + 2\rho_k \langle \hat{x}^{k+1} - x^*, \hat{x}^{k+1} - x^k \rangle

步骤 3:利用最优性条件消去内积项。x^k+1\hat{x}^{k+1} 是邻近映射的解,满足 x^k+1xk=αf(x^k+1)\hat{x}^{k+1} - x^k = -\alpha \,\partial f(\hat{x}^{k+1})。同时 xx^* 是全局最优解,0f(x)0 \in \partial f(x^*)。代入内积项:

x^k+1x,x^k+1xk=αx^k+1x,f(x^k+1)f(x)\langle \hat{x}^{k+1} - x^*, \hat{x}^{k+1} - x^k \rangle = -\alpha \langle \hat{x}^{k+1} - x^*, \partial f(\hat{x}^{k+1}) - \partial f(x^*) \rangle

步骤 4:利用单调性。当 ff 是凸函数时,f\partial f 是单调算子,故 x^k+1x,f(x^k+1)f(x)0\langle \hat{x}^{k+1} - x^*, \partial f(\hat{x}^{k+1}) - \partial f(x^*) \rangle \geq 0。因此内积项前带负号 α-\alpha,使得 2ρkx^k+1x,x^k+1xk02\rho_k \langle \hat{x}^{k+1} - x^*, \hat{x}^{k+1} - x^k \rangle \leq 0

步骤 5:得出收敛条件。将上述不等式代回:

xk+1x2xkx2+ρk(ρk2)x^k+1xk2\|x^{k+1} - x^*\|^2 \leq \|x^k - x^*\|^2 + \rho_k(\rho_k - 2)\|\hat{x}^{k+1} - x^k\|^2

由于 x^k+1xk20\|\hat{x}^{k+1} - x^k\|^2 \geq 0ρk>0\rho_k > 0,要使右端第二项非正需要 ρk20\rho_k - 2 \leq 0,即 ρk2\rho_k \leq 2。因此当 ρk(0,2)\rho_k \in (0, 2) 时:

xk+1x2xkx2\|x^{k+1} - x^*\|^2 \leq \|x^k - x^*\|^2

这就证明了序列 {xkx2}\{\|x^k - x^*\|^2\} 关于 kk 非递增单调,从而保证松弛 PPA 的收敛性。\blacksquare

5.9 邻近梯度算法#

5.9.1 复合优化问题#

邻近梯度算法(Proximal Gradient Algorithm, PGA)用于求解复合优化(composite optimization)问题:

minx  F(x):=f(x)+g(x)\min_{x} \; F(x) := f(x) + g(x)

其中 f(x)f(x)光滑函数(可微,且梯度 Lipschitz 连续),g(x)g(x)非光滑函数(可能不可微),但通常是凸的。这类问题在机器学习和信号处理中极为常见——f(x)f(x) 通常是数据拟合项(如最小二乘损失),g(x)g(x) 通常是正则化项(如 1\ell_1 范数)。

核心思想是:对光滑部分 ff梯度下降,对非光滑部分 gg邻近点算法,将两者结合形成一步迭代。这种”分而治之”的思路也称为前向-后向分裂法(Forward-Backward Splitting Method, FBSM)。

5.9.2 迭代格式推导#

PGA 的迭代格式为:

xk+1=argminx{g(x)+f(xk),xxk+12αkxxk2}x^{k+1} = \arg\min_{x} \left\{ g(x) + \langle \nabla f(x^k),\, x - x^k \rangle + \frac{1}{2\alpha_k} \|x - x^k\|^2 \right\}

构造逻辑如下:对光滑部分 ff 在当前点 xkx^k 处做一阶 Taylor 展开(线性化近似),对非光滑部分 gg 保持不动,同时加入邻近项 12αkxxk2\frac{1}{2\alpha_k}\|x - x^k\|^2 控制迭代步长。

对线性项和二次项进行配方:

xk+1=argminx{g(x)+12αkx(xkαkf(xk))2}x^{k+1} = \arg\min_{x} \left\{ g(x) + \frac{1}{2\alpha_k} \left\| x - \left( x^k - \alpha_k \nabla f(x^k) \right) \right\|^2 \right\}

这正是 gg 关于点 xkαkf(xk)x^k - \alpha_k \nabla f(x^k) 的邻近算子。记为:

xk+1=proxαkg ⁣(xkαkf(xk))\boxed{x^{k+1} = \mathrm{prox}_{\alpha_k g}\!\left( x^k - \alpha_k \nabla f(x^k) \right)}

直觉非常清晰:先对光滑部分 ff 做一步梯度下降得到中间点 xkαkf(xk)x^k - \alpha_k \nabla f(x^k),再对非光滑部分 gg 施加邻近算子进行修正。

5.9.3 算法伪代码#

将 PGA 的完整算法整理如下。


算法 5.1:邻近梯度算法(PGA / ISTA)

输入:初始点 x0Rnx^0 \in \mathbb{R}^n,步长 α>0\alpha > 0(满足 α<1/L\alpha < 1/L,其中 LLf\nabla f 的 Lipschitz 常数),最大迭代次数 KK,容差 ε>0\varepsilon > 0

for k=0,1,2,,K1k = 0, 1, 2, \ldots, K-1 do

\quad 1. 梯度步:vk=xkαf(xk)v^k = x^k - \alpha \,\nabla f(x^k)

\quad 2. 邻近步:xk+1=proxαg(vk)x^{k+1} = \mathrm{prox}_{\alpha g}(v^k)

\quad 3. 停机检查:若 xk+1xk<ε\|x^{k+1} - x^k\| < \varepsilon,则停止

end for

输出xk+1x^{k+1}


g(x)=λx1g(x) = \lambda\|x\|_1 时,邻近步就是软阈值运算,此时 PGA 也称为迭代收缩阈值算法(Iterative Shrinkage-Thresholding Algorithm, ISTA)。ISTA 和 PGA 实质上是同一个算法在不同文献中的不同称呼——前者在信号处理领域广泛使用,后者在优化理论文献中更常见。其加速版本 FISTA(Fast ISTA)引入 Nesterov 动量项,将收敛速度从 O(1/k)O(1/k) 提升到 O(1/k2)O(1/k^2)

步长的选取有两种常见策略:固定步长 α=1/L\alpha = 1/L(需要已知 LL)和回溯线搜索(Backtracking line search,不需要 LL 但每步可能多次计算函数值)。

5.9.4 算子形式与分裂算法#

对 PGA 迭代式求最优性条件。由于 gg 非光滑,对其取次梯度:

0g(xk+1)+f(xk)+1αk(xk+1xk)0 \in \partial g(x^{k+1}) + \nabla f(x^k) + \frac{1}{\alpha_k}(x^{k+1} - x^k)

A=fA = \nabla f(梯度算子),B=gB = \partial g(次梯度算子),c=αkc = \alpha_k(步长参数),整理得 PGA 的算子迭代形式:

xk+1=JcB ⁣(IcA)xk\boxed{x^{k+1} = J_{cB}\!\left( I - cA \right) x^k}

其中 JcB=(I+cB)1J_{cB} = (I + cB)^{-1}BB 的预解算子。

原始优化问题的零包含形式为 0f(x)+g(x)0 \in \nabla f(x) + \partial g(x),即 0Ax+Bx0 \in Ax + Bx。这正是经典的分裂算法(splitting method)框架:将零包含问题中的算子拆分为 AA(易于计算梯度的部分)和 BB(易于计算预解式的部分),分别处理后组合。

5.9.5 收敛性分析#

gg 为凸函数,B=gB = \partial g 为极大单调算子,PGA 在以下三个条件下收敛:

  • 条件一JcBJ_{cB} 是稳定非扩张映射(已在 PPA 收敛性证明中建立)
  • 条件二A=fA = \nabla f 满足余强制(cocoercive)条件,即存在 δ>0\delta > 0 使得 AxAy,xyδAxAy2\langle Ax - Ay,\, x - y \rangle \geq \delta \|Ax - Ay\|^2
  • 条件三:步长参数 cc 满足 c<2δc < 2\delta

证明:设 xx^* 是不动点(满足 x=JcB(IcA)xx^* = J_{cB}(I - cA)x^*),计算:

xk+1x2=JcB(IcA)xkJcB(IcA)x2\|x^{k+1} - x^*\|^2 = \|J_{cB}(I - cA)x^k - J_{cB}(I - cA)x^*\|^2

第一步:利用 JcBJ_{cB} 的非扩张性:

xk+1x2(IcA)xk(IcA)x2\|x^{k+1} - x^*\|^2 \leq \|(I - cA)x^k - (I - cA)x^*\|^2

第二步:展开右端:

(IcA)xk(IcA)x2=xkx2+c2AxkAx22cxkx,AxkAx\|(I - cA)x^k - (I - cA)x^*\|^2 = \|x^k - x^*\|^2 + c^2\|Ax^k - Ax^*\|^2 - 2c\langle x^k - x^*,\, Ax^k - Ax^* \rangle

第三步:利用 AA 的 cocoercive 条件,xkx,AxkAxδAxkAx2\langle x^k - x^*, Ax^k - Ax^* \rangle \geq \delta \|Ax^k - Ax^*\|^2,代入得:

xk+1x2xkx2+(c22cδ)AxkAx2\|x^{k+1} - x^*\|^2 \leq \|x^k - x^*\|^2 + (c^2 - 2c\delta)\|Ax^k - Ax^*\|^2

第四步:由 c>0c > 0c<2δc < 2\deltac22cδ<0c^2 - 2c\delta < 0,从而:

xk+1x2xkx2(2cδc2)AxkAx2\|x^{k+1} - x^*\|^2 \leq \|x^k - x^*\|^2 - (2c\delta - c^2)\|Ax^k - Ax^*\|^2

其中 2cδc2>02c\delta - c^2 > 0,证明了费杰单调性。结合不动点迭代的一般收敛定理,即可得出 PGA 的收敛性。\blacksquare

PGA 的收敛性证明与 PPA、投影梯度法的证明一脉相承:核心都是验证迭代映射的稳定非扩张性或费杰单调性,然后套用不动点迭代的一般收敛定理。

5.10 PGA 的应用实例#

5.10.1 投影梯度算法作为 PGA 的特例#

考虑约束优化问题 minxf(x)  s.t.  xΩ\min_{x} f(x) \;\text{s.t.}\; x \in \OmegaΩ\Omega 是闭凸集)。利用指示函数 ιΩ(x)\iota_\Omega(x) 将其转化为无约束复合优化形式 minxf(x)+ιΩ(x)\min_{x} f(x) + \iota_\Omega(x),其中 f(x)f(x) 光滑,ιΩ(x)\iota_\Omega(x) 非光滑但凸,恰好符合 PGA 的适用框架。

g=ιΩg = \iota_\Omega 代入 PGA 的迭代格式并配方:

xk+1=argminx{ιΩ(x)+12αkx(xkαkf(xk))2}x^{k+1} = \arg\min_{x} \left\{ \iota_\Omega(x) + \frac{1}{2\alpha_k}\left\| x - \left( x^k - \alpha_k \nabla f(x^k) \right) \right\|^2 \right\}

由于指示函数的邻近算子就是投影算子 PΩP_\Omega(已在 5.6.1 节证明),因此:

xk+1=PΩ ⁣(xkαkf(xk))\boxed{x^{k+1} = P_\Omega\!\left( x^k - \alpha_k \nabla f(x^k) \right)}

这正是投影梯度算法(Projected Gradient Method)的迭代格式。投影梯度算法是 PGA 在 g=ιΩg = \iota_\Omega 时的特例。

算子形式验证:通过零包含问题的最优性条件整理后可得 xk+1=(I+αkιΩ)1(xkαkf(xk))=PΩ(xkαkf(xk))x^{k+1} = (I + \alpha_k \partial \iota_\Omega)^{-1}(x^k - \alpha_k \nabla f(x^k)) = P_\Omega(x^k - \alpha_k \nabla f(x^k)),利用了 JαkιΩ=PΩJ_{\alpha_k \partial \iota_\Omega} = P_\Omega 的结论。

5.10.2 LASSO 问题的 PGA 求解#

考虑压缩感知(compressed sensing)中的 LASSO 问题:

minx  12Axb22+λx1\min_{x} \; \frac{1}{2}\|Ax - b\|_2^2 + \lambda \|x\|_1

其中 ARm×nA \in \mathbb{R}^{m \times n}nmn \gg m)为观测矩阵,bb 为观测信号,λ>0\lambda > 0 为正则化参数。前一项 f(x)=12Axb22f(x) = \frac{1}{2}\|Ax - b\|_2^2 光滑,后一项 g(x)=λx1g(x) = \lambda\|x\|_1 非光滑但凸。这正是 PGA 框架中 f+gf + g 的复合结构。

下面逐步写出 PGA 在 LASSO 问题上的具体迭代。

第一步:计算梯度。 f(x)=12Axb22f(x) = \frac{1}{2}\|Ax-b\|_2^2 的梯度为:

f(x)=A(Axb)\nabla f(x) = A^\top(Ax - b)

f\nabla f 的 Lipschitz 常数为 L=AA2=σmax2(A)L = \|A^\top A\|_2 = \sigma_{\max}^2(A)AA 的最大奇异值的平方),因此步长取 α1/L\alpha \leq 1/L

第二步:梯度步。 计算中间向量:

vk=xkαA(Axkb)v^k = x^k - \alpha \,A^\top(Ax^k - b)

这一步只涉及矩阵-向量乘法 AxkAx^kO(mn)O(mn))和 A()A^\top(\cdot)O(mn)O(mn)),计算代价明确。

第三步:邻近步。 求解 λ1\lambda\|\cdot\|_1 的邻近算子:

xk+1=proxαλ1(vk)=Sαλ(vk)x^{k+1} = \mathrm{prox}_{\alpha\lambda\|\cdot\|_1}(v^k) = \mathcal{S}_{\alpha\lambda}(v^k)

即对 vkv^k 的每个分量独立施加阈值 αλ\alpha\lambda 的软阈值运算:

xik+1=sign(vik)max{vikαλ,  0},i=1,,nx_i^{k+1} = \mathrm{sign}(v_i^k) \cdot \max\{|v_i^k| - \alpha\lambda,\; 0\}, \quad i = 1, \ldots, n

这一步的计算代价为 O(n)O(n),每个分量独立处理,可完全并行化。

完整的一步迭代因此为:

xk+1=Sαλ ⁣(xkαA(Axkb))\boxed{x^{k+1} = \mathcal{S}_{\alpha\lambda}\!\left( x^k - \alpha \,A^\top(Ax^k - b) \right)}

每步迭代的主要计算量在梯度步的矩阵-向量乘法(O(mn)O(mn)),邻近步的软阈值运算代价可忽略。

为什么不能直接用 PPA:如果将 f(x)+g(x)f(x) + g(x) 整体作为 PPA 的目标函数,展开 Axb22\|Ax - b\|_2^2 后会出现 AAA^\top A 项,产生分量之间的耦合项。例如取 A=(1101)A = \begin{pmatrix} 1 & 1 \\ 0 & 1 \end{pmatrix},则 Ax2=(x1+x2)2+x22\|Ax\|^2 = (x_1 + x_2)^2 + x_2^2,展开后出现 x1x2x_1 x_2 的耦合。这种耦合使得无法对各分量独立求解,丧失了 1\ell_1 范数的可分离性。

而 PGA 通过对 ff 做线性化近似,将 AAA^\top A 的作用限制在梯度计算 f(xk)=A(Axkb)\nabla f(x^k) = A^\top(Ax^k - b) 中——这只是一次矩阵-向量乘法,不会在子问题中引入耦合。子问题中只剩下 λx1+12αxvk2\lambda\|x\|_1 + \frac{1}{2\alpha}\|x - v^k\|^2,各分量完全解耦,可以逐分量独立求解。

PPA 不是万能的。当 ff 中含有矩阵乘积(如 AAA^\top A)时,直接套用 PPA 会导致子问题出现耦合项,丧失可分离性。PGA 通过线性化避免了这一问题,这正是 PGA 在此类问题中不可替代的原因。

第五章:邻近算法
https://www.xwysyy.cn/posts/optimization/ch5/
作者
xwysyy
发布于
2026-06-01
许可协议
CC BY-NC-SA 4.0
© 2026 xwysyy. All Rights Reserved.
Powered by Astro & Firefly

文章目录