基础算法 --- > 优化方法(二)

本文介绍了次梯度和近端梯度下降法,特别是在L1正则化的Lasso回归中的应用。通过详细解析目标函数的优化过程,展示了如何使用次梯度解决非光滑函数问题,并通过近端梯度下降法找到最优解,最终实现参数的稀疏性。
摘要由CSDN通过智能技术生成

背景

这次主要介绍次梯度(subgradient)和近端梯度下降(Proximal gradient descent)算法我们以L1正则化求解为例

次梯度

对于任一个损失函数,将其简化写为:
L ( w , λ ) = f ( w ) + λ ∣ w ∣ L(w, \lambda) = f(w) + \lambda|w| L(w,λ)=f(w)+λw
对于第一项求导
g w ( w , λ ) = ∂ f ( w ) ∂ w g_w(w, \lambda) = \frac{\partial f(w)}{\partial w} gw(w,λ)=wf(w)

第二项求导,由于在 w > 0 w>0 w>0时梯度为 λ \lambda λ, 在 w < 0 w<0 w<0时梯度为 − λ -\lambda λ, 其中 w = 0 w=0 w=0时我们采用次梯度 为 λ ⋅ s g n ( w ) \lambda\cdot sgn(w) λsgn(w)

对于整个损失函数次梯度为

▽ w L = g w ( w , λ ) + λ ⋅ s n g ( w ) \triangledown_w L = g_w(w, \lambda) + \lambda \cdot sng(w) wL=gw(w,λ)+λsng(w)
然后利用普通的梯度下降(上升)方法求解。但这种方式得到的值非常接近于0,而非真正的为0,并不会真正引入参数的稀疏性。

次导数
设f:I→R是一个实变量凸函数,定义在实数轴上的开区间内。这种函数不一定是处处可导的,例如最经典的例子就是f(x) = |x|,在x=0处不可导。但是,从下图的可以看出,对于定义域内的任何x_0,我们总可以作出一条直线,它通过点(x_0, f(x_0)),并且要么接触f的图像,要么在它的下方。这条直线的斜率称为函数的次导数。次梯度是将函数扩展到多维下次导数的推广。

可以看到对于f(x) = |x|,其实所有在[-1, 1]斜率都满足上述次导数的条件,每个值都是该函数的次导数,所有次导数的集合[-1, 1]称为次微分

近端梯度下降法

当我们的目标函数可分拆为光滑函数和具有近端操作算子时,近端梯度法(Proximal gradient algorithms)是一种非常有用的方法。对于无约束函数
m i n x ∈ R N    f ( x ) = g ( x ) + h ( x ) \underset{x\in \mathbb R^N}{min}\; f(x)=g(x) + h(x) xRNminf(x)=g(x)+h(x)
其中
g ( x ) g(x) g(x)是凸函数,并且可微的
近端梯度算法通过迭代的方法来优化目标函数 f ( x ) f(x) f(x):

  1. 在g(x)上进行梯度下降算法
  2. 在h(x)上执行近端梯度算法
    将上述两布合并即:
    x k + 1 = p r o x t k h ( x k − t k ▽ g ( x k ) ) x^{k+1}=prox_{t_kh}(x^k-t_k\triangledown g(x^k)) xk+1=proxtkh(xktkg(xk))

近端算子
p r o x t h ( ⋅ ) ( w ) = a r g    m i n z 1 2 t ∣ ∣ w − z ∣ ∣ 2 + λ ∣ ∣ z ∣ ∣ = a r g    m i n z 1 2 ∣ ∣ w − z ∣ ∣ 2 + λ t ∣ ∣ z ∣ ∣ = { w − λ t i f   w >

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值