次梯度(Subgradients)

总目录

一、 凸优化基础(Convex Optimization basics)

  1. 凸优化基础(Convex Optimization basics)

二、 一阶梯度方法(First-order methods)

  1. 梯度下降(Gradient Descent)
  2. 次梯度(Subgradients)
  3. 近端梯度法(Proximal Gradient Descent)
  4. 随机梯度下降(Stochastic gradient descent)
    待更新。。。

Introduction

对于一个可微的凸函数ff,其一阶特性有:
f(y)f(x)+f(x)T(yx)f(y)\geq f(x)+\nabla f(x)^T(y-x)

而当凸函数ff是不可微的,我们也可以根据该性质来定义其次梯度。

次梯度

一个凸函数ffxx的次梯度gg定义为:
f(y)f(x)+gT(yx)f(y)\geq f(x)+g^T(y-x)

次梯度的一些特性:

  1. 总是存在于定义域dom(f)dom(f)的内部;
  2. 如果ffxx是完全可微的,那么其存在唯一的次梯度g=f(x)g=\nabla f(x)
  3. 该次梯度的定义也可以推广到非凸函数中,但非凸函数的次梯度gg可能不存在。

例子:考虑函数f:RRf: R\rightarrow R的形式为f(x)=xf(x)=|x|,其在x=0x=0处有一个不可微的点。
在这里插入图片描述

  • 对于x0x\neq 0,其次梯度是唯一的且为g=sign(x)g=sign(x)
  • 对于x=0x=0,其次梯度可以是[1,1][-1,1]区间中的任意一个数。

次微分

凸函数ff的所有亚梯度组成的集合叫做次微分(subdifferential):
f={gRn:g is a subgradient of f at x}\partial f=\{g\in R^n: g\ {\rm is\ a\ subgradient\ of}\ f\ {\rm at}\ x\}

次微分的一些性质:

  • 非空(仅仅对于凸函数);
  • f(x)\partial f(x)是封闭且凸的(即使对于非凸函数也成立);
  • 如果ffxx点是可微的,则f(x)={f(x)}\partial f(x)=\{\nabla f(x)\}
  • 如果f(x)={g}\partial f(x)=\{g\},那么ffxx点是可微的,且f(x)=g\nabla f(x)=g

最优化条件

对于任意ff(无论是不是凸函数)都有,
f(x)=minxf(x)0f(x)f(x^*)=\min_x f(x) \Leftrightarrow 0\in \partial f(x^*)

也就是说,xx^*是最小值点当且仅当0是ffxx^*点的一个亚梯度。

例子:软阈值
对于一个lasso问题,令X=IX=I将问题简化可得到:
minβ12yβ22+λβ1\min_\beta \frac{1}{2}\|y-\beta\|^2_2+\lambda\|\beta\|_1

其中,λ>0\lambda>0。利次梯度最优化条件可得:
0(12yβ22+λβ1)0yβ+λβ1{yiβi=λsign(βi) if betai0yiβiλif betai=0 \begin{aligned} 0&\in \partial(\frac{1}{2}\|y-\beta\|^2_2+\lambda\|\beta\|_1) \\ &\Leftrightarrow 0\in y-\beta + \lambda \partial \|\beta\|_1\\ &\Leftrightarrow \left\{ \begin{aligned} &y_i-\beta_i = \lambda\cdot sign(\beta_i) \ & if\ beta_i\neq 0\\ &|y_i-\beta_i| \leq \lambda & if\ beta_i= 0 \end{aligned} \right. \end{aligned}

则最优解可得β=Sλ(y)\beta=S_{\lambda}(y),其中SλS_{\lambda}叫做软阈值算子:
[Sλ(y)]i={yiλ if yi>λ0 if λyiλyi+λif yi<λ [S_\lambda(y)]_i =\left\{ \begin{aligned} &y_i-\lambda \ & if\ y_i>\lambda\\ &0\ & if\ -\lambda\leq y_i\leq \lambda\\ &y_i+\lambda & if\ y_i<-\lambda \end{aligned} \right.
在这里插入图片描述

次梯度法

考虑一个定义域为dim(f)=Rndim(f)=R^n的凸函数ff,但允许其可以是不可微的。类比于梯度下降法,次梯度法只是将其中的梯度替换为次梯度,其他步骤不变: 初始化x(0)x^{(0)},然后重复:
x(k)=x(k1)tkg(k1),k=1,2,3,...x^{(k)}=x^{(k-1)}-t_k\cdot g^{(k-1)},\quad k=1,2,3,...

其中gk1f(x(k1))g^{k-1}\in \partial f(x^{(k-1)}),是ffx(k1)x^{(k-1)}的任意一个次梯度。
值得注意的是,次梯度法并不一定是下降的,因此需要跟踪每次迭代,从中找到最优的迭代次数:
f(xbest(k))=mini=0,...,kf(x(i))f(x^{(k)}_{best})=\min_{i=0,...,k}f(x^{(i)})

步长的选择

次梯度法可以使用固定的步长,也可以随着迭代减小步长。但与梯度下降不同的是,次梯度法的步长需要提前设定,而不能自适应地计算得到。

收敛率分析

次梯度法有O(1/ϵ2)O(1/\epsilon^2)的收敛率,其慢于梯度下降的O(1/ϵ)O(1/\epsilon)收敛率。

投影次梯度法

考虑有约束的优化问题,在一个凸集CC上优化凸函数ff
minxf(x)subject to xC\min_xf(x)\quad subject\ to\ x\in C

我们可以使用投影次梯度法(projected subgradient method)。在每次迭代中,首先像处理无约束问题一样,使用次梯度法进行求解,然后将得到的解投影到CC上:
x(k)=Pc(x(k1)tkg(k1)),k=1,2,3,...x^{(k)}=P_c(x^{(k-1)}-t_k\cdot g^{(k-1)}),\quad k=1,2,3,...

其中,PcP_c是投影算子。假设我们总可以做投影,那么在相同步长下,可以得到与普通次梯度法相同的收敛率。

参考资料

CMU:Convex Optimization

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章