[Opt] ISTA 和 FISTA

上一篇中介绍了用 Proximal Gradient 以及如何用其解 Lasso 问题和 Ridge Regression,本文主要从近端梯度算法(PG)出发介绍加速的近端算法(APG),这里或者也可以称之为 ISTA (Iterative shrinkage-thresholding algorithm) 和 FISTA (A fast iterative shrinkage-thresholding algorithm).

1 .Proximal Gradient 内容回顾

(P) \quad min\left\{F(x) \equiv f(x)+g(x) :x\in \mathbb{R^n}\right\}\\

其中, g: \mathbb{R^n} \rightarrow \mathbb{R^n} 为连续凸函数, f: \mathbb{R^n} \rightarrow \mathbb{R} 为连续可微且 f 的梯度一阶 Lipschitz 连续,即: ||\nabla f(x)-\nabla f(y)||\leq L(f)||x-y|| , \; \forall x,y \in \mathbb{R^n}L(f) 为 Lipschitz 常数。问题 (P) 的最优点集非空。

Q_L(x,y):=f(y)+<x-y,\nabla f(y)>+\frac L2 ||x-y||^2+g(x)\\

上式有唯一的最小点:

p_L(y)=arg \mathop{min}_x \left\{g(x)+\frac L2 ||x-(y-\frac 1L \nabla f(y))||^2\right\}\\

由此由问题 (P) 有迭代格式:

x_k=p_L(x_{k-1})\\

其中,L 表示迭代的步长。


2 ISTA 和 FISTA

2.1 ISTA 固定步长

这个方法可能的缺点是 Lipschitz 常数不好计算,例如对于 l_1 正则项问题

F(x)=||Ax-b||^2+||x||_1\\

Lipchitz 常数 L(f)=2 \lambda_{max}(A^TA) 。当为大规模的问题时上述的特性(特征值)也变的难以计算。

2.2 ISTA 回溯步长

2.3 FISTA 固定步长

FISTA 是一种快速的迭代阈值收缩算法(ISTA)。相对与 ISTA,FISTA的收缩算子是作用在 y_k 上的,而 y_k 是前面点 x_{k-1},x_{k-2} 的非常特殊的线性组合。这也是 PG 方法和 APG 方法的主要不同之处。这样的改进就类似于梯度下降法和 Adam 之类的相似。

2.4 FISTA 回溯步长

3. ISTA和FISTA的收敛速率

定理 3.1 介绍了 ISTA 的复杂度为 O(1/k)

定理 4.4 介绍了 FISTA 的复杂度为 O(1/k^2)

文献[1]中的所举的一个应用是图片去模糊(Deblurring),也就是 Lasso 问题的求解。

测试1

参考文献

[1] Beck A, Teboulle M. A Fast Iterative Shrinkage-Thresholding Algorithm for Linear Inverse Problems[J]. Siam J Imaging Sciences, 2009, 2(1):183-202.

编辑于 2018-11-10 21:12