總目錄
一、 凸優化基礎(Convex Optimization basics)
- 凸優化基礎(Convex Optimization basics)
二、 一階梯度方法(First-order methods)
- 梯度下降(Gradient Descent)
- 次梯度(Subgradients)
- 近端梯度法(Proximal Gradient Descent)
- 隨機梯度下降(Stochastic gradient descent)
待更新。。。
Introduction
對於一個可微的凸函數f,其一階特性有:
f(y)≥f(x)+∇f(x)T(y−x)
而當凸函數f是不可微的,我們也可以根據該性質來定義其次梯度。
次梯度
一個凸函數f在x的次梯度g定義爲:
f(y)≥f(x)+gT(y−x)
次梯度的一些特性:
- 總是存在於定義域dom(f)的內部;
- 如果f在x是完全可微的,那麼其存在唯一的次梯度g=∇f(x);
- 該次梯度的定義也可以推廣到非凸函數中,但非凸函數的次梯度g可能不存在。
例子:考慮函數f:R→R的形式爲f(x)=∣x∣,其在x=0處有一個不可微的點。
- 對於x=0,其次梯度是唯一的且爲g=sign(x);
- 對於x=0,其次梯度可以是[−1,1]區間中的任意一個數。
次微分
凸函數f的所有亞梯度組成的集合叫做次微分(subdifferential):
∂f={g∈Rn:g is a subgradient of f at x}
次微分的一些性質:
- 非空(僅僅對於凸函數);
- ∂f(x)是封閉且凸的(即使對於非凸函數也成立);
- 如果f在x點是可微的,則∂f(x)={∇f(x)};
- 如果∂f(x)={g},那麼f在x點是可微的,且∇f(x)=g。
最優化條件
對於任意f(無論是不是凸函數)都有,
f(x∗)=xminf(x)⇔0∈∂f(x∗)
也就是說,x∗是最小值點當且僅當0是f在x∗點的一個亞梯度。
例子:軟閾值
對於一個lasso問題,令X=I將問題簡化可得到:
βmin21∥y−β∥22+λ∥β∥1
其中,λ>0。利次梯度最優化條件可得:
0∈∂(21∥y−β∥22+λ∥β∥1)⇔0∈y−β+λ∂∥β∥1⇔{yi−βi=λ⋅sign(βi) ∣yi−βi∣≤λif betai=0if betai=0
則最優解可得β=Sλ(y),其中Sλ叫做軟閾值算子:
[Sλ(y)]i=⎩⎪⎨⎪⎧yi−λ 0 yi+λif yi>λif −λ≤yi≤λif yi<−λ
次梯度法
考慮一個定義域爲dim(f)=Rn的凸函數f,但允許其可以是不可微的。類比於梯度下降法,次梯度法只是將其中的梯度替換爲次梯度,其他步驟不變: 初始化x(0),然後重複:
x(k)=x(k−1)−tk⋅g(k−1),k=1,2,3,...
其中gk−1∈∂f(x(k−1)),是f在x(k−1)的任意一個次梯度。
值得注意的是,次梯度法並不一定是下降的,因此需要跟蹤每次迭代,從中找到最優的迭代次數:
f(xbest(k))=i=0,...,kminf(x(i))
步長的選擇
次梯度法可以使用固定的步長,也可以隨着迭代減小步長。但與梯度下降不同的是,次梯度法的步長需要提前設定,而不能自適應地計算得到。
收斂率分析
次梯度法有O(1/ϵ2)的收斂率,其慢於梯度下降的O(1/ϵ)收斂率。
投影次梯度法
考慮有約束的優化問題,在一個凸集C上優化凸函數f:
xminf(x)subject to x∈C
我們可以使用投影次梯度法(projected subgradient method)。在每次迭代中,首先像處理無約束問題一樣,使用次梯度法進行求解,然後將得到的解投影到C上:
x(k)=Pc(x(k−1)−tk⋅g(k−1)),k=1,2,3,...
其中,Pc是投影算子。假設我們總可以做投影,那麼在相同步長下,可以得到與普通次梯度法相同的收斂率。
參考資料
CMU:Convex Optimization