2009年的一篇文章1,主要用来求解线性逆问题,如 source code

ISTA


  • 前提:
    目标函数可以写成,且f(x)和g(x)都是凸函数

  • 推导:
    求解时。梯度下降的迭代公式如下:


    式(1)可以写成如下形式:


    当求解 时,式(2)可以简单直接加上g(x)如下:


    去除式(3)中的常数项,可以写成如下形式:


    式(4)可以通过如下的方法来求解:

    收缩函数曲线如下图所示:
    shrinkage

  • 实现:
    ISTA其实就是使用公式(5)进行迭代求解。在实际使用中每次迭代需要寻找一个合适的一般使用 line search 的方法,即:
    先设定一个初始值, 当使用更新后的结果不符合下面的条件时,不断的减小的值只到其符合如下的条件:


FISTA(Fast Iterative Shrinkage-Thresholding Algorithm)


FISTA即在ISTA的基础上使用NAG momentum

References


  1. A Fast Iterative Shrinkage-Thresholding Algorithm for Linear Inverse Problems