Skip to content

对应 note_10_pgm.pdf。这一章解决 composite optimization:目标 f(x)=g(x)+h(x),其中 g 光滑、h 凸但可能不可微。核心算法是 proximal gradient method (PGM):对 g 线性化,对 h 保留原样,再加一个二次 proximal 项。

0. 一句话理解这一章 ​

近端梯度法 = 梯度下降 + prox。它比普通次梯度法快,因为没有把不可微项粗暴地用一个次梯度代替,而是把 h 的结构通过 proxh 精确保留下来。

1. 知识地图 ​

            composite model
              min f(x)=g(x)+h(x)
              g smooth, h closed convex/simple
                          │
                          ▼
            proximal mapping
              prox_h(x)=argmin_u h(u)+1/2||u-x||²
                          │
                          ▼
            PGM update
              x+ = prox_{t h}(x-t∇g(x))
                          │
                          ▼
            gradient mapping
              G_t(x)=1/t (x-prox_{t h}(x-t∇g(x)))
              x+ = x-tG_t(x)
                          │
                          ▼
            convergence
              convex: O(1/k)
              strongly convex: linear in distance
              line search: same order with t_min
              nonconvex*: stationarity via G_t → 0

2. Composite model ​

本章考虑:

minxf(x)=g(x)+h(x),

其中:

  • g:凸、可微,∇g Lipschitz;
  • h:closed convex,可以不可微;
  • h 要“simple”:proxth 容易算。

典型例子:

问题g(x)h(x)
约束光滑优化光滑目标IC(x)
LASSO12|Ax−b|2λ|x|1
box constrained QP12xTAx+bTxI[0,1]n(x)
稀疏正则化lossℓ1、group lasso 等

3. Proximal mapping ​

定义:

proxh(x)=arg⁡minu{h(u)+12∥u−x∥2}.

带步长:

proxth(x)=arg⁡minu{h(u)+12t∥u−x∥2}.

常见 prox ​

hproxh(x)
0x
ICΠC(x)
λ|x|1soft-thresholding

Soft-thresholding:

[proxλ∥⋅∥1(x)]i={xi−λ,xi≥λ,0,|xi|≤λ,xi+λ,xi≤−λ.

带步长 t 时阈值变成 tλ。

4. PGM 更新 ​

从 projected gradient 的模型出发:

xk+1=arg⁡minu{g(xk)+∇g(xk)T(u−xk)+h(u)+12tk∥u−xk∥2}.

等价写法:

xk+1=proxtkh(xk−tk∇g(xk)).

特殊情况:

  • h=0:PGM 退化为普通梯度下降;
  • h=IC:PGM 退化为 projected gradient;
  • h=λ∥x∥1:PGM 变成 ISTA / soft-thresholding 迭代。

5. Gradient mapping ​

定义:

Gt(x)=1t(x−proxth(x−t∇g(x))).

于是

x+=proxth(x−t∇g(x))=x−tGt(x).

注意:Gt(x) 不是 ∇f(x),也不一定是 f 的次梯度。但它扮演“站点残差”的角色:

Gt(x)=0⟺x∈arg⁡min(g+h).

并且

Gt(x)∈∇g(x)+∂h(x−tGt(x)).

这条包含式是 PGM 收敛分析的入口。

6. 一步下降引理 ​

若 ∇g 是 L-Lipschitz 且 0<t≤1/L,则

g(x−tGt(x))≤g(x)−t∇g(x)TGt(x)+t2∥Gt(x)∥2.

进一步可得对任意 z:

f(x−tGt(x))≤f(z)+Gt(x)T(x−z)−t2∥Gt(x)∥2−m2∥x−z∥2.

令 x+=x−tGt(x),得到两个最常用结论:

f(x+)≤f(x)−t2∥Gt(x)∥2,f(x+)−f∗≤12t(∥x−x∗∥2−∥x+−x∗∥2).

这和 GD 的收敛证明非常像,只是把 ∇f 换成 Gt。

7. 收敛率 ​

7.1 固定步长 t=1/L ​

凸情形:

f(xk)−f∗≤12kt∥x0−x∗∥2.

即 O(1/k),和 smooth GD 同阶,明显好于普通次梯度法的 O(1/k)。

7.2 强凸情形 ​

若 g 是 m-强凸,t=1/L,则距离有线性收敛:

∥xk−x∗∥2≤(1−mL)k∥x0−x∗∥2.

注意讲义这里强调的是 distance to optimal set;函数值也可通过额外条件得到对应线性界。

如果不知道 L,从 t^ 开始回溯 t←βt,直到

g(x−tGt(x))≤g(x)−t∇g(x)TGt(x)+t2∥Gt(x)∥2.

线搜索选出的步长满足

t≥tmin=min{t^,β/L}.

于是仍有

f(xk)−f∗≤12ktmin∥x0−x∗∥2,

强凸时

∥xk−x∗∥2≤(1−mtmin)k∥x0−x∗∥2.

8. Fast PGM / FISTA ​

基础 PGM 的函数值收敛率是 O(1/k)。A12 开始要求比较 basic PGM 与 fast proximal gradient method,也就是常见的 FISTA。对

minxF(x)=g(x)+h(x)

其中 g convex differentiable 且 ∇g 为 L-Lipschitz,FISTA 的固定步长版本常写为:

xk+1=proxh/L(yk−1L∇g(yk)),θk+1=1+1+4θk22,yk+1=xk+1+θk−1θk+1(xk+1−xk),

其中 θ0=1, y0=x0。

关键结论:

方法典型函数值收敛率特点
PGM / ISTAO(1/k)单步稳,证明直接
FPGM / FISTAO(1/k2)用 momentum 加速,函数值可能非单调

A12.5 的图像比较应当看到:FISTA 前期通常明显快于 basic PGM,但曲线可能有轻微振荡;PGM 更稳定但下降慢。

9. 典型例子 ​

9.1 Box constrained QP ​

min12xTAx+bTxs.t.0≤x≤1.

写成

g(x)=12xTAx+bTx,h(x)=I[0,1]n(x).

PGM 更新:

xk+1=Π[0,1]n(xk−tk(Axk+b)).

投影就是逐坐标截断到 [0,1]。

9.2 LASSO ​

minx12∥Ax−b∥2+λ∥x∥1.

取

g(x)=12∥Ax−b∥2,h(x)=λ∥x∥1.∇g(x)=AT(Ax−b).

PGM / ISTA 更新:

xk+1=softtkλ(xk−tkAT(Axk−b)).

其中

[softτ(z)]i=sign(zi)max{|zi|−τ,0}.

9.3 线性绝对值项的 prox ​

A12.4 里有

g(x)=|x1+x2|=|aTx|,a=(1,1)T.

通用公式是

proxt|aT⋅|(z)=z−taclip(aTzt∥a∥2,−1,1).

因此这类题按三步算:

  1. 先算梯度步 z=x−t∇f(x);
  2. 再算 aTz 和 ∥a∥2;
  3. 最后套上面的 clip 公式。

对 A12.4,f 的 Hessian 最大特征值小于 1,所以 t=1 合法;从 x0=(1,0)T 出发,z=x0−∇f(x0)=(2.6,−0.2)T,从而

x1=prox|x1+x2|(z)=(1.6,−1.2)T.

10. Nonconvex PGM(了解) ​

若 g 非凸但 ∇g 仍 Lipschitz,h closed convex,PGM 仍可用于找 stationarity。

讲义结论:

  • f(xk) 单调不增;
  • 若 xk 不是 stationary point,则严格下降;
  • Gtk(xk)→0;
  • 有min0≤i≤k∥Gti(xi)∥≤O(1/k).

这里的收敛目标不是全局最优,而是 stationarity。

11. 作业题型对照 ​

作业/题型典型问法考点
prox 计算求 IC、λ|x|1、box indicator 的 prox投影、soft-thresholding
PGM 建模把问题写成 g+h区分 smooth part 和 simple nonsmooth part
写迭代给 LASSO / box QP,写 xk+1proxth(x−t∇g)
最优性判据证明 Gt(x)=0⟺x 最优prox 的一阶最优性 + 0∈∇g+∂h
收敛率证明推 O(1/k)Lemma 2.6 的 telescoping
line search不知道 L 时如何回溯验证 sufficient decrease inequality,得到 tmin
与次梯度比较为什么 PGM 更快PGM 利用 h 的 prox 结构;次梯度只用一个 g∈∂h
A12.1证明 u=proxf(x)、x−u∈∂f(u)、变分不等式三者等价prox 的一阶最优性条件;x 是 minimizer iff x=proxf(x)
A12.2prox 运算规则:仿射缩放、尺度变换、加线性项用变量替换和 prox 最优性条件推公式;特别是 g(x)+aTx 对应 proxg(x−a)
A12.3证明 proximal mapping non-expansive对两个 prox 点分别写最优性/单调性,推出 |proxth(x)−proxth(y)|≤|x−y|
A12.4二维 f+|x1+x2|,验证 t=1 并手算一步 PGM检查 L≤1;对 |aTx| 用 clip 形式 prox
A12.5LASSO 上实现 PGM 与 FPGM/FISTAL=λmax(ATA);PGM 用 soft-thresholding;FISTA 加 momentum;比较 O(1/k) 与 O(1/k2)

12. 解题招式 ​

招式 1:先拆 g+h ​

问“能不能用 PGM”时,先检查:

  • g 是否可微且 ∇g Lipschitz;
  • h 是否 closed convex;
  • proxth 是否容易计算。

如果 h=IC,马上想到 projected gradient;如果 h=λ∥x∥1,马上想到 soft-thresholding。

招式 2:写 prox 的最优性条件 ​

x+=proxth(x−t∇g(x))

等价于

0∈∂h(x+)+1t(x+−x+t∇g(x)).

整理得

Gt(x)∈∇g(x)+∂h(x+).

这是证明 Gt(x)=0 和下降引理的起点。

招式 3:PGM 收敛证明照搬 GD 框架 ​

GD 里用

x+=x−t∇f(x)

PGM 里用

x+=x−tGt(x).

证明结构仍然是:

  1. smooth g 的二次上界;
  2. h 的次梯度不等式;
  3. 配方成距离差;
  4. telescoping。

招式 4:LASSO 更新不要写成普通梯度下降 ​

错误写法:

xk+1=xk−t(AT(Axk−b)+λsk).

这只是次梯度法。

PGM 正确写法:

xk+1=softtλ(xk−tAT(Axk−b)).

区别很重要:前者慢,后者利用了 ℓ1 的 prox。

招式 5:prox 性质题从最优性条件出发 ​

证明 prox 相关性质时,先写

u=proxf(x)⟺0∈∂f(u)+u−x⟺x−u∈∂f(u).

这一步能直接推出:

  • 变分不等式:⟨x−u,y−u⟩≤f(y)−f(u);
  • minimizer fixed point:0∈∂f(x)⟺x=proxf(x);
  • non-expansiveness:对 x,y 的两个 prox 点写两次并相加。

13. 自检清单 ​

  • [ ] proxh 和 proxth 的定义能写对吗?
  • [ ] u=proxf(x)⟺x−u∈∂f(u) 能证明吗?
  • [ ] h=IC 时 prox 为什么是投影?
  • [ ] λ∥x∥1 的 prox / soft-thresholding 能逐坐标写出吗?
  • [ ] |aTx| 的 prox 能用 clip 公式手算吗?
  • [ ] PGM 更新式能从模型最小化推出来吗?
  • [ ] Gt(x) 的定义能写出来吗?它为什么不是普通梯度?
  • [ ] Gt(x)=0⟺x 最优能证明吗?
  • [ ] PGM 的 O(1/k) 收敛证明和 GD 有什么对应关系?
  • [ ] FISTA 的 momentum 参数和 O(1/k2) 结论能说清楚吗?
  • [ ] Backtracking line search 检查的是 g 的哪条二次上界?
  • [ ] LASSO 的 ISTA 更新能不看书写出来吗?

14. 常见陷阱 ​

  1. 把 prox 的二次项系数写错:proxth 是 12t∥u−x∥2+h(u),不是 t2。
  2. 把 Gt(x) 当作 ∇f(x):它只是 gradient mapping,用于衡量 stationarity。
  3. 对 h 也线性化就退化成次梯度法:PGM 的关键恰恰是保留 h(u)。
  4. LASSO 阈值忘记乘 t:阈值是 tλ,不是 λ。
  5. line search 检查的是 g 的上界:不是直接把 f 当 smooth 函数套 GD。
  6. 闭凸性很重要:closed convex 保证 prox well-defined 且通常唯一。
  7. FISTA 不一定单调:图像比较时看到小幅上升/振荡不一定是代码错。

15. 最后的复习路线 ​

  1. 先把 9_次梯度与次梯度法.md 中的 ∂f 和 0∈∂f 复习一遍。
  2. 默写 prox 定义和三个基本 prox:0、indicator、ℓ1。
  3. 对 LASSO 手写一次 ISTA 更新,再写一次 FISTA 更新。
  4. 复现 PGM 的 O(1/k) 证明:一步下降引理 → 距离差 → telescoping。
  5. 做 A12:先证明 prox 三件套,再手算 A12.4,最后实现 A12.5 的 PGM/FISTA 曲线。
  6. 对比 GD / subgradient / PGM / FISTA:知道每个方法适合什么结构、收敛率为什么不同。