機器學習基礎·L-BFGS算法

簡介

L-BFGS的算法原理及步驟。

關鍵字

擬牛頓法、BFGS、L-BFGS、機器學習、優(yōu)化方法

正文

1. 概述

??L-BFGS牛頓法發(fā)展而來,是為了提高計算效率而提出的近似計算方法,在施行牛頓法的過程中需要計算海森矩陣的逆H^{-1},計算矩陣逆工作量巨大,所以采用符合擬牛頓條件的矩陣代替H^{-1}H進行計算,這種方法稱為擬牛頓法,其代表性方法有DFP算法和BFGS算法,L-BFGSBFGS的基礎上進一步在有限的內存下進行近似而提高效率的算法。

2. 擬牛頓條件

??假設問題是:
\arg \min_x f(x)
??且有g_k=\nabla f(x)\ , \ y_k=g_{k+1}-g_k\ ,\ \delta _k=x_{k+1}-x_k。

??首先進行二階泰勒展開,得到:
f(x)=f(x_k)+g_k(x-x_k)+\frac12(x-x_k)^TH(x_k)(x-x_k)
??對其求導后,代入x=x_{k+1},可得:

y_k=H_k \delta _k \ \ \ 或\ \ \ H_k^{-1} y_k = \delta _k
??上面的式子稱作擬牛頓條件,要求H,H^{-1}正定。

3. BFGS原理

??BFGS算法考慮使用矩陣B_k近似矩陣H,對應的擬牛頓條件是上面的第1個。每次對B_k進行迭代,所以算法核心就是如何求得B_{k+1}
??令:
B_{k+1}=B_k+P_k+Q_k
??自然有:
B_{k+1}\delta_k=B_k\delta_k+P_k\delta_k+Q_k\delta_k
??考慮使P_k,Q_k滿足:
P_k\delta_k=y_k \ ,\ Q_k\delta_k=-B_k\delta_k
??得到B_{k+1}的迭代公式:
B_{k+1}=B_k + \frac{y_ky_k^T}{y_k^T \delta _k}-\frac{B_k \delta_k \delta_k^T B_k }{\delta_k^T B_k \delta_k }

4. BFGS算法

??輸入:目標函數(shù)f(x),g(x)=\nabla f(x),精度要求\epsilon

??輸出:f(x)的極小點x^*

??(1)選定x_0,B_0,設置k=0

??(2)計算g_k=g(x^{(k)}),如滿足\mid\mid g_k\mid\mid \le \epsilon,則停止,得解。

??(3)由B_kp_k=-g_k求出p_k

??(4)求\lambda_k=\arg\min_{\lambda \ge 0}f(x^{(k)}+\lambda_{p_k})

??(5)置x^{(k+1)}=x^{(k)}+\lambda_k p_k

??(6)計算g_{k+1}=g(x^{(k+1)}),如滿足\mid\mid g_{k+1}\mid\mid \le \epsilon,則停止,得解。否則計算B_{k+1}

??(7)k=k+1,轉(3)

5. L-BFGS原理

??在BFGS算法的提出目的是為了不計算矩陣的逆,然而上面的算法中(3)求p_k,需要p_k=-B_k^{-1} g_k,還是需要計算矩陣逆,還好有辦法可以不用算,仔細觀察上面的式子,為了方便,這里再寫一遍:
B_{k+1}=B_k + \frac{y_ky_k^T}{y_k^T \delta _k}-\frac{B_k \delta_k \delta_k^T B_k }{\delta_k^T B_k \delta_k }
發(fā)現(xiàn)除了B_k,剩下的都是向量,說明B_{k+1}可以由B_k來表達,而B_k可以由B_{k-1}來表達,依次類推,可以得到結論對于任何一個B_k\ ,\ k \gt1最終都可以使用 B_0y_k,\delta _k,k=1,2,...,k-1這些向量來表達。

??根據(jù)以上結論,在每次迭代時只要保存y_k,\delta _k,k=1,2,...,k-1這些值,BFGS算法可以只使用B_0表達,那么L-BFGS在這個基礎上,再一次進行近似,就是只用有限的內存來保存近m個向量的值來進行計算。

??具體實現(xiàn)時,為了方便還要對表達式進行一定的變換,首先對B_{k+1}進行變換,變換推導比較復雜,參考資料[3]給出了大概的思路和過程,具體變換為:
B_{k+1}^{-1}=(I-\frac{\delta_k y_k^T}{y_k^T \delta _k })B_k^{-1}(I-\frac{y_k \delta _k ^T}{y_k^T \delta _k })+\frac{\delta_k \delta _k^T}{y_k^T \delta _k }
??接下來記:
\rho _k^{-1}=y_k^T\delta_k \ \ \ \ ,\ \ \ V_k=I-\rho_ky_k \delta _k^T
??且假設B_0=I,則有:
B_{k+1}^{-1}=V_k^T B_k^{-1} V_k + \rho_k \delta _k \delta _k ^T
??遞推至B_0,則有:
B_{k+1}^{-1}=\prod_{i=0}^k V_{k-i}^T \cdot B_0 \cdot \prod_{i=0}^k V_i+\sum_{i=0}^k(\prod_{j=i+1}^k V_{k-j+1}^T \cdot \rho_i \delta_i \delta_i^T \cdot \prod_{j=i+1}^k V_j)
??只使用近m次的結果來近似,得到:
\begin{align} B_{k+1}^{-1} & = \prod_{i=1}^m V_{k-i+1}^T \cdot B_0 \cdot \prod_{i=k-m+1}^k V_i\\ &+\sum_{i=1}^m(\prod_{j=m-i+1}^{m-1} V_{k-m+j+1}^T \cdot \rho_{k-i+1} \delta _{k-i+1} \delta _{k-i+1}^T \cdot \prod_{j=k-i+2}^k V_j) \end{align}
??以上是L-BFGS的原理部分,具體實現(xiàn)是采用遞推的算法。

6. L-BFGS算法

以下算法來自Numerical Optimization

輸入:當前的x_k,函數(shù)f(x),\rho_i,s_i,q_i,i=1,2,...,k-1

輸出:求x_{k+1}時的更新方向

(1)q \leftarrow \nabla f_k

(2)for\ \ \ i= k-1,k-2,...,k-m
????\alpha_i \leftarrow \rho_i s_i^Tq\ ;
????q \leftarrow q -\alpha_iy_i\ ;
???end

(3)r\ \leftarrow H_k^0q\ ;

(4)for\ \ \ i= k-m,k-m+1,...,k-1
????\beta\ \leftarrow \rho_i y_i^Tr\ ;
????r \leftarrow r +s_i(\alpha_i-\beta)\ ;
???end

(5)stop\ \ with\ \ result\ \ H_k\nabla f_k=r

參考資料

[1] 李航.統(tǒng)計學習方法(第二版).清華大學出版社,2019.
[2] http://www.itdecent.cn/p/287b43e837c1
[3] https://blog.csdn.net/Shenpibaipao/article/details/89352840
[4] https://blog.csdn.net/google19890102/article/details/46389869
[5] Numerical Optimization
[6] https://www.cnblogs.com/sunruina2/p/9244709.html

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • [TOC]優(yōu)化算法是機器學習中的“方法論”,優(yōu)化算法會告訴機器應該如何優(yōu)化學習的進程,讓自己能夠更好地掌握學習到的...
    JuneHsia閱讀 3,244評論 0 0
  • 數(shù)學是計算機技術的基礎,線性代數(shù)是機器學習和深度學習的基礎,了解數(shù)據(jù)知識最好的方法我覺得是理解概念,數(shù)學不只是上學...
    闖王來了要納糧閱讀 23,267評論 2 48
  • 這個題目取得比較奇怪,原因是:雖然號稱數(shù)學是世界上最簡潔的語言,但是太多的公式難免看的人心慌;其次公式在hexo+...
    Helen_Cat閱讀 2,753評論 0 13
  • 《追溯四月》是回憶性的自傳,因為寫的時候工廠趕貨期,很忙,幾乎每晚加班9點半,所以寫的比較匆促草率。因為事情幾乎...
    九月霞閱讀 316評論 0 1
  • 黃小裝這星期回來,情緒不佳。 昨晚睡覺前還流了幾滴眼淚。老媽問了半天也沒問出原因。 今晚也是如此。 超市購物回來還...
    小飯裝閱讀 174評論 0 0

友情鏈接更多精彩內容