L1范数产生稀疏解###
minF(x)=∣∣Ax−b∣∣2+λ∣∣x∣∣pp
假设最优解为x∗,则原问题等价于: minxF(x)=∣∣Ax−b∣∣2s.t.∣∣x∣∣pp≤CC=∣∣x∗∣∣pp
proximal gradient descent###
在梯度下降中,如果 ∇f(x) 满足L-Lipschitz,即: ∥∇f(xk+1)−∇f(xk)∥≤L∥xk+1−xk∥ ,
在xk点泰勒展开:
f(x,xk)=f(xk)+⟨x−xk,∇f(xk)⟩+2L∥x−xk∥2=2L∥x−(xk−tk∇f(xk))∥2+φ(xk) 最小在 xk+1=xk−L1∇f(xk+1)。
如果优化目标中,加入非光滑的惩罚项,比如L1,对光滑的部分做上述展开,则称为proximal gradient descent(PGD)。
Proximal Gradient Descent for L1 Regularization
ISTA###
ISTA算法解决非平滑的,不可求导的凸优化问题,比如带能够产生稀疏解的L1范数问题,min{f(x)+λ∥x∥1}。
通过对目标函数进行分解,将其平滑的部分用近端正则逼近。即每步在优化原问题的一个变化上界。 每一步迭代中,优化变量完全解耦,且子问题存在闭式解。
列:minF(x)=∥Ax−b∥2+λ∥x∥pp。
该问题等价于:minx∥Ax−b∥2s.t.∥x∥pp<CC=∥x∗∥ppx∗是最优解。
每一步迭代求解:
存在闭式解:
from MLAPP: Chapter 13. Sparse linear models (page 446)
FISTA###
《A Fast Iterative Shrinkage-Thresholding Algorithm for Linear Inverse Problems》
关于Nesterov’s method可以见SGD的Nesterov Momentum。
Python implementation of the Fast Iterative Shrinkage/Thresholding Algorithm.