次梯度(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

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