L-BFGS算法介紹

本文由做者林洋港受權網易雲社區發佈。算法


1、 L-BFGS是什麼

L-BFGS是解無約束非線性規劃問題最經常使用的方法,具備收斂速度快、內存開銷少等優勢,在機器學習各種算法中常有它的身影。簡單的說,L-BFGS和梯度降低、SGD乾的一樣的事情,但大多數狀況下收斂速度更快,這點在大規模計算中很重要。下圖是深度學習Autoencoder模型不一樣優化方法的比較。安全

2、 L-BFGS「以前」的那些方法


這裏的「以前」並非說L-BFGS問世以前就已經存在的方法,而是指爲了更好的理解L-BFGS須要瞭解的其餘方法。無約束問題定義:服務器

咱們先從泰勒展開開始,這能夠說是本文介紹的全部方法的基礎。f在的一階泰勒展開爲機器學習

二階泰勒展開爲函數

去掉最後的餘項,獲得微服務

2.1 最速降低法(Gradient descent)post


CD算法的一個前提條件就是f在連續可微,而且在處的導數不爲0。由公式1可知當第二項<0時f的值將降低。由Cauchy-Schwartz不等式可得學習

爲最速降低方向。所以迭代公式爲優化

知足code

2.2 牛頓法(Newton method)


因爲f的極值點就是知足f的導數爲0,根據公式2,獲得

假設Hesse矩陣可逆,由上式可得牛頓法迭代公式

牛頓法具備二次終止性的特色,即通過有限次迭代必達到極小點。例如,對於二次凸函數

A是對稱正定矩陣,取任意初始點,根據公式3有

顯然通過1次迭代即達到極值點。

但牛頓法要求f二次連續可微,而且Hesse矩陣知足可逆和正定兩個條件;同時,牛頓方向不必定每次迭代都是降低方向。

阻尼牛頓法是牛頓法的修正,與牛頓法的區別是迭代公式增長了牛頓方向上的一維搜索,即

其中

是一維搜索獲得的步長,知足

2.3 擬牛頓法(Quasi-Newton Method)

牛頓法每次迭代都須要計算處的Hesse矩陣的逆,同時Hesse矩陣也不必定是正定的。人們又提出了擬牛頓法,其基本思想是用不包含二階導數的矩陣來近似Hesse矩陣的逆。將f在處展開成2階泰勒級數並取近似,即

設Hesse矩陣可逆,可得

設近似矩陣爲根據上述,必須知足

公式7稱爲擬牛頓條件。的不一樣構造方法,決定了不一樣的擬牛頓方法。

時n階對稱正定矩陣時,知足牛頓條件的也必須是n階對稱正定矩陣。所以的通常構造策略爲:取爲任意n階對稱正定矩陣(一般爲單位矩陣

I
),而後經過下式求出

稱爲校訂矩陣。

DFP算法將校訂矩陣定義爲:

至此,根據公式四、五、六、七、十、11能夠由得出而且不須要每次迭代計算Hesse矩陣。

BFGS算法用矩陣近似公式8中的Hesse矩陣,從而獲得

將q與p互換,分別取代由DFP公式能夠獲得

,從而獲得BFGS公式:

從公式11和公式12能夠看出,擬牛頓法每次迭代只須要根據前次迭代的便可以計算出,不須要求出Hesse矩陣的逆。

2.4 L-BFGS(limited-memory BFGS)

BFGS算法中每次迭代計算須要前次迭代獲得的矩陣,該矩陣的存儲空間至少爲N(N+1)/2,N爲特徵維數,對於高維的應用場景,須要的存儲空間將是很是巨大的。L-BFGS的基本思想就是經過存儲前m次迭代的少許數據來替代前一次的矩陣。令y=q,s=p,公式12能夠改寫成

公式13展開並取前m項的近似,可得

因爲ρ、V、s、y這些變量都最終能夠由q、p兩個向量計算獲得,所以,咱們只需存儲最後m次的q、p向量便可算出加上對角陣H0,總共須要存儲2*m+1個N維向量(實際應用中m通常取4到7之間的值,所以須要存儲的數據遠小於Hesse矩陣)。

注:公式4中步長的肯定須要使用一維搜索,顧名思義,一維搜索就是沿着直線方向尋找使得目標函數值最小的參數值。一維搜索具體又分爲精確一維搜索和非精確一維搜索,具體可參看相關文獻。

3、 其餘相關方法

因爲L-BFGS是創建在目標函數的2階泰勒展開基礎上的,其前提條件就是函數的2階導不爲0。在機器學習中通常若是用L2正則都是能夠知足這個條件的。若是用的是L1正則,則目標函數可能出現2階導爲0的狀況。對於使用L1正則的狀況,可使用OWL-QN方法(Orthant-Wise Limited-memory Quasi-Newton),它是基於L-BFGS修改的。

聽說百度獨創了Shooting算法,收斂速度比L-BFGS快得多,目前還不知道怎麼作的。


此外,Chih-Jen Lin(LIBSVM做者)提出的信賴域牛頓方法(Trust Region Newton Method),其收斂速度也比L-BGFS快,他開發的另外一個針對大規模線性分類的軟件LIBLINEAR用的就是這種優化方法。

此外,Chih-Jen Lin(LIBSVM做者)提出的信賴域牛頓方法(Trust Region Newton Method),其收斂速度也比L-BGFS快,他開發的另外一個針對大規模線性分類的軟件LIBLINEAR用的就是這種優化方法。


免費領取驗證碼、內容安全、短信發送、直播點播體驗包及雲服務器等套餐

更多網易技術、產品、運營經驗分享請訪問網易雲社區

相關文章:
【推薦】 爲何 kubernetes 自然適合微服務

相關文章
相關標籤/搜索