梯度下降與坐標下降優化方法
梯度下降法:
在每次迭代更新時選擇負梯度方向(最速下降的方向)進行一次更新.不斷迭代直至到達我們的目標或者滿意為止.
坐標下降法:
坐標下降法屬於一種非梯度優化的方法,它在每步迭代中沿一個坐標的方向進行搜索,通過循環使用不同的坐標方法來達到目標函數的局部極小值。求導時只對一個維度(坐標軸方向)進行求導,而固定其它維度,這樣每次只優化一個分量.


相比梯度下降法而言,坐標下降法不需要計算目標函數的梯度,在每步迭代中僅需求解一維搜索問題,所以對於某些復雜的問題計算較為簡便。但如果目標函數不平滑的話,坐標下降法可能會陷入非駐點。為了加速收斂,可以采用一個適當的坐標系,例如通過主成分分析獲得一個坐標間盡可能不相互關聯的新坐標系(參考自適應坐標下降法)。[1]
平滑與非平滑的函數示例如下圖:


注意事項
關於坐標下降法,有幾點需要注意的:
1.坐標下降的順序是任意的。
2.坐標下降的關鍵在於一次一個地更新,所有的一起更新有可能會導致不收斂。
3.坐標上升法和坐標下降法的本質一樣,只不過目標函數成為求極大值了。
對比
與通過梯度獲取最速下降的方向不同,在坐標下降法中,優化方向從算法一開始就予以固定。例如,可以選擇線性空間的一組基 \(( e_1, e_2,\dots ,e_n)\)作為搜索方向。 在算法中,循環最小化各個坐標方向上的目標函數值。
期望最大化算法(EM)
可以理解為坐標上升法。
含有隱變量對數似然求導比較復雜,因此先固定參數求隱變量后驗分布(E步),然后固定隱變量求參數(M步),交替進行。
這里也來說明一下二階優化方法:
二階優化方法
- 二階優化方法可以用到深度學習網絡中,比如DistBelief,《Large-scale L-BFGS using MapReduce》.采用了數據並行的方法解決了海量數據下L-BFGS算法的可用性問題。
- 二階優化方法目前還不適用於深度學習訓練中,主要存在問題是: 1. 最重要的問題是二階方法的計算量大,訓練較慢。 2. 求導不易,實現比SGD這類一階方法復雜。 3. 另外其優點在深度學習中無法展現出來,主要是二階方法能夠更快地求得更高精度的解,這在淺層模型是有益的,但是在神經網絡這類深層模型中對參數的精度要求不高,相反 相對而言不高的精度對模型還有益處,能夠提高模型的泛化能力。 當然,二階優化方法也有優點,在凸優化中,訓練較SGD這類方法更為穩定更為平滑,不用調參[2]
應用
現在的機器學習和深度學習方法幾乎清一色的使用梯度下降方法,比如SGD應用很廣泛. 但是坐標下降法也有其用武之地. 比如LASSO回歸系數的計算, SVM對偶問題的優化算法SMO.
