近端梯度下降法

文章介绍了在凸优化问题中,当目标函数包含不可微部分(如绝对值项或L1范数)时,如何使用近端梯度下降法进行求解。方法包括泰勒展开可微部分的梯度,结合近端映射找到新方向,实现迭代更新。讨论了不同形式不可微凸函数下的近端映射操作和相应的更新策略。
摘要由CSDN通过智能技术生成

对凸优化问题,目标函数存在不可微部分时才使用(绝对值项,l1范数,迹范数),求解想法为对可微部分泰勒展开,求得下降方向作为初步更新方向,然后利用近端映射找到一个可以使不可微部分函数值最小且尽可能接近初步更新方向的新方向,作为迭代更新的方向。

目标函数的形式: f ( x ) = g ( x ) + h ( x ) f(x)=g(x)+h(x) f(x)=g(x)+h(x),其中 g ( x ) g(x) g(x)为凸函数且可微, h ( x ) h(x) h(x)是不可微的凸函数

例: X ∈ R m × n X\in \mathbb{R}^{m\times n} XRm×n, y ∈ R m y\in \mathbb{R}^{m} yRm, y = X w y=Xw y=Xw, w ∈ R n w\in \mathbb{R}^{n} wRn表示系数向量,则优化问题目标函数
∣ ∣ y − X w ∣ ∣ 2 2 + λ ∣ ∣ w ∣ ∣ 1 ||y-Xw||_{2}^{2}+\lambda||w||_{1} ∣∣yXw22+λ∣∣w1
前一项为可微凸函数,后一项为不可微凸函数,可以使用近端梯度下降法求解

近端映射

对于上述凸优化问题,需定义近端映射算子,近端映射函数的定义:
p r o x h , t ( x ) = a r g m i n z 1 2 t ∣ ∣ x − z ∣ ∣ 2 2 + h ( z ) prox_{h,t}(x)=argmin_{z}\frac{1}{2t}||x-z||_{2}^{2}+h(z) proxh,t(x)=argminz2t1∣∣xz22+h(z)
即给定一个x,找到最优点 z = p r o x h , t ( x ) z=prox_{h,t}(x) z=proxh,t(x),使得 1 2 t ∣ ∣ x − z ∣ ∣ 2 2 + h ( z ) \frac{1}{2t}||x-z||_{2}^{2}+h(z) 2t1∣∣xz22+h(z)最小,这样的 z z z能够使得 h h h足够小,且接近原不可微点 x x x

梯度迭代

选择一个初始的 x ( 0 ) x^{(0)} x(0),然后重复:
x ( k ) = p r o x h , t k ( x ( k − 1 ) − t k ∇ g ( x ( k − 1 ) ) ) x^{(k)}=prox_{h,t_{k}}(x^{(k-1)}-t_{k}\nabla g(x^{(k-1)})) x(k)=proxh,tk(x(k1)tkg(x(k1)))
k = 1 , 2 , 3... k=1,2,3... k=1,2,3...表示当前为第 k k k次迭代。
对于这个迭代算法可以这样理解:给定起点 x ( k − 1 ) x^{(k-1)} x(k1),先沿目标函数可微部分凸函数g的负梯度方向,做步长为 t k t_k tk的梯度下降得到一个预更新值 x ~ ( k − 1 ) \tilde{x}^{(k-1)} x~(k1),然后使用近端映射寻找一个 z z z,这个 z z z能使得不可微函数 h h h足够小,且接近预更新值,就将这个 z z z作为本次迭代的更新值 x ( k ) x^{(k)} x(k)

不可微凸函数h(x)

实际上,近端算子只和不可微的凸函数 h ( w ) h(w) h(w) 有关.
(1)当不可微的凸函数形式为 h ( w ) = 0 h(w)=0 h(w)=0时,
p r o x t ( x ) = a r g m i n z 1 2 t ∣ ∣ x − z ∣ ∣ 2 2 + 0 = x prox_{t}(x)=argmin_{z}\frac{1}{2t}||x-z||_{2}^{2}+0=x proxt(x)=argminz2t1∣∣xz22+0=x
更新策略:
x ( k ) = x ( k − 1 ) − t k ∇ g ( x ( k − 1 ) ) x^{(k)}=x^{(k-1)}-t_{k}\nabla g(x^{(k-1)}) x(k)=x(k1)tkg(x(k1))
此时退化为常规的梯度下降算法。

(2)当不可微的凸函数形式为 h ( w ) = I C ( x ) h(w)=I_{C}(x) h(w)=IC(x)时,
p r o x t ( x ) = a r g m i n z 1 2 t ∣ ∣ x − z ∣ ∣ 2 2 + I C ( x ) = a r g m i n z ∈ C 1 2 t ∣ ∣ x − z ∣ ∣ 2 2 = P C ( x ) prox_{t}(x)=argmin_{z}\frac{1}{2t}||x-z||_{2}^{2}+I_{C}(x) \\ =argmin_{z\in C}\frac{1}{2t}||x-z||_{2}^{2} \\=P_{C}(x) proxt(x)=argminz2t1∣∣xz22+IC(x)=argminzC2t1∣∣xz22=PC(x)
更新策略:
x ( k ) = P C ( x ( k − 1 ) − t k ∇ g ( x ( k − 1 ) ) ) x^{(k)}=P_{C}(x^{(k-1)}-t_{k}\nabla g(x^{(k-1)})) x(k)=PC(x(k1)tkg(x(k1)))
其中 I C I_{C} IC为集合C的示性函数, P C ( x ) P_{C}(x) PC(x)为集合C上的投影算子,此时为投影梯度下降法。

(3)当不可微的凸函数形式为 h ( w ) = ∣ ∣ x ∣ ∣ 1 h(w)=||x||_{1} h(w)=∣∣x1时,
p r o x t ( x ) = a r g m i n z 1 2 t ∣ ∣ x − z ∣ ∣ 2 2 + ∣ ∣ z ∣ ∣ 1 = a r g m i n z ∣ ∣ x − z ∣ ∣ 2 2 + 2 t ∣ ∣ z ∣ ∣ 1 = S t ( x ) prox_{t}(x)=argmin_{z}\frac{1}{2t}||x-z||_{2}^{2}+||z||_{1} \\ =argmin_{z}||x-z||_{2}^{2}+2t||z||_{1} \\ =S_{t}(x) proxt(x)=argminz2t1∣∣xz22+∣∣z1=argminz∣∣xz22+2t∣∣z1=St(x)
在这里插入图片描述
(4)当不可微的凸函数形式为 h ( w ) = λ ∣ ∣ x ∣ ∣ 1 h(w)=\lambda||x||_{1} h(w)=λ∣∣x1时,
在这里插入图片描述
(5)若将近端梯度算法展开成一个网络,且 h ( x ) h(x) h(x)的形式不定,则网络可以根据对应问题及数据自行学得复杂的 h ( x ) h(x) h(x)

参考文献

https://www.zhihu.com/tardis/zm/art/82622940?source_id=1005
https://zhuanlan.zhihu.com/p/103161094

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值