FISTA(Fast Iterative Shrinkage-Thresholding Algorithm)
2009年的一篇文章1,主要用来求解线性逆问题,如 。source code
ISTA
-
前提:
目标函数可以写成,且f(x)和g(x)都是凸函数 -
推导:
求解时。梯度下降的迭代公式如下:
式(1)可以写成如下形式:
当求解 时,式(2)可以简单直接加上g(x)如下:
去除式(3)中的常数项,可以写成如下形式:
式(4)可以通过如下的方法来求解:
收缩函数曲线如下图所示:
-
实现:
ISTA其实就是使用公式(5)进行迭代求解。在实际使用中每次迭代需要寻找一个合适的。一般使用 line search 的方法,即:
先设定一个初始值, 当使用更新后的结果不符合下面的条件时,不断的减小的值只到其符合如下的条件:
FISTA(Fast Iterative Shrinkage-Thresholding Algorithm)
FISTA即在ISTA的基础上使用NAG momentum
References
- A Fast Iterative Shrinkage-Thresholding Algorithm for Linear Inverse Problems