近端梯度法(proximal gradient method)

模型

min\;g(x)+h(x)

g(x)凸且光滑,即可微,h(x)凸且非光滑,即不可微,因此不能使用梯度下降法,因为h(x)在某点梯度会不存在,比如h(x)=|x|.

近端梯度法常用于解上述优化问题.

近端梯度法

1、因为g(x)可微,因此将它在x^{k}处Taylor展开:

g(x)=g(x^{k})+\bigtriangledown g(x^{k})(x-x^{k})+\frac{L}{2}\|x-x^{k}\|^{2}

拆开整理可得:

g(x)=\frac{L}{2}\|x-(x^{k}-\frac{1}{L}\bigtriangledown g(x^{k})\|^{2}+\phi(x^{k})

要求min\;g(x),则令x^{k+1}=x^{k}-\frac{1}{L}\bigtriangledown g(x^{k})迭代即可得

2、实际问题是要求min\;g(x)+h(x),将g(x)x^{k}处Taylor展开:

则问题变为:\begin{align} min\;\frac{L}{2}\|x-(x^{k}-\frac{1}{L}\bigtriangledown g(x^{k})\|^{2}+h(x) \end{align}   

下面介绍近端映射函数(投影算子proximity operator)

min_{x}\; \frac{1}{2}\|x-z\|^{2}+\lambda h(x)

问题为:给定一个变量z,找到上面优化问题的极小点x^{*},h(x)为不可微的凸函数

prox_{\lambda h(x)}(z)=argmin_{x}\; \frac{1}{2}\|x-z\|^{2}+\lambda h(x)

其中,prox_{\lambda h(x)}(z)表示关于变量z和函数h(x)近端算子,求得的x能让h(x)达到最小,且与不可微点z无限接近.

因此,(1)中的相当于上式中的变量z,因此可以通过下列近端算子求解:

\begin{aligned} x^{k+1}&=prox_{\lambda h(x)}(x^{k}-\frac{1}{L}\bigtriangledown g(x^{k}))\\ &=argmin_{x}\; \frac{1}{2}\|x-(x^{k}-\frac{1}{L}\bigtriangledown g(x^{k}))\|^{2}+\lambda h(x) \end{aligned}

解释:对于当前点x^{k},沿着可微函数g(x)的负梯度方向,以一定步长下降迭代得到z^{k}=x^{k}-\frac{1}{L}\bigtriangledown g(x^{k}),然后使用投影算子求出新的更新值x^{k+1}.

对于Lasso而言,proximal方法相当把原问题拆解成了两个子问题,首先更新平滑部分的参数(L1以外的部分),拿着更新好的结果,跑一遍proximal operator(soft threshold函数)让它也尽量更接近满足L1的条件,处理过后的才是新的参数.

 

参考资料:

https://zhuanlan.zhihu.com/p/103161094

https://zhuanlan.zhihu.com/p/82622940

https://blog.csdn.net/qq_38290475/article/details/81052206

http://www.bubuko.com/infodetail-2895666.html

https://blog.csdn.net/Chaolei3/article/details/81320940

https://blog.csdn.net/zbwgycm/article/details/83060251

 

你可能感兴趣的:(算法)