無約束最優化四

2021-06-28 11:14:03 字數 1920 閱讀 8622

3.quasi-newton method

在第2節中我們了解了步長的概念,以及從x_k走到x_k+1點使用line search方法計算步長的方法。不過我們在那裡忽略了乙個重要的概念,即「方向」。從第2節,我們了解到從每一點x_k走到下一點x_k+1時,需要給出要走的「方向」,只有「方向」確定好之後,才能在此基礎上應用line search方法找到對應的「步長」,因此在解決了「步長」計算問題之後,這裡我們將和大家一起了解一下每一步的「方向」如何確定。本節分為2大部分,首先我們通過newton method引入方向的概念,在此基礎上引入quasi-newton method。然後引入quasi-newton method中的一種重要方法bfgs method,並在bfgs method的基礎上介紹用於大規模計算的lbfgs method演算法,同時以此結束本節的所有內容。

3.1 newton method

我想我們還依稀記得,微積分中用於求一元函式根的newton法。該方法可用如下所示的圖形來描述:

首先我們選擇乙個初始點x_0並計算獲得其對應的f(x_0),然後該方法用曲線y = f(x)在(x_0,f(x_0))的切線近似該曲線,把切線和x軸的交點記作x_1,點x_1通常x_0更接近所要求得根,同樣方法用點x_1處的切線近似該曲線,並求取切線和x軸的交點x_2,一直迭代下去,直到找到滿足我們所需的充分接近真實跟的解為止。因此newton法從第k次近似值x_k求得第k+1次近似值x_k+1即為求x_k點處的切線和x軸的交點。

切線方程為:

y – f(x_k) = ▽f (x_k)(x – x_k)

=> 0 – f(x_k) =▽ f(x_k)(x – x_k)

=> ▽f(x_k)*x = ▽f(x_k)*x_k – f(x_k)

=> x = x_k – f(x_k)/▽f (x_k)

因此x_k+1 = x_k – f(x_k)/▽f(x_k)       (19)

從上面使用newton method求函式根的過程可以發現,首先需要選擇乙個初始點,並在點處構建乙個模型來近似該函式。

切線模型:

上面使用了相應點處的切線模型來近似函式,然後求取該近似模型的根以便求得更接近函式根的下乙個點,該過程一直迭代下去,直到找到根為止。從上面構建每個點處的近似模型可以發現,該模型相對原函式來說簡化了很多,因此求解要容易一些。

現在來考慮求取函式的最小值問題,方法類似。首先開始我們選擇乙個初始點x_0,並構建函式在該點處的乙個近似模型,上面求函式根時,我們構建的近似模型為切線模型。這裡我們構建乙個拋物線模型:

並求解該模型的梯度,同時令其為零,即:▽m_k(x+) = 0,在此基礎上求得x+,該值即使得近似模型取得最小值的點。

對拋物線模型m_k求導並令其為零後,可得以下公式:

因此從上式可見,使用newton法時,每一步的方向為p_k,而步長為1。從newton法方向公式我們不難看出,若使用newton法,則從每個最小值近似點x_k走到下乙個近似點x_k+1的過程中將涉及函式hessian矩陣▽▽f(x_k) (二階導)計算,而該hessian矩陣無法保證在每個點處都是正定的,對正定矩陣來說存在如下不等式:

由於矩陣無法保證為正定矩陣,因此下式中

p_k無法保證總是為下降方向,即負梯度方向。

從上面的分析可見,newton method面臨兩個問題:

1) hessian矩陣計算量較大

2) hessian矩陣無法保證在迭代的過程中始終處於正定狀態

為了解決這兩個問題,我們引入quasi-newton method。

未完待續:無約束最優化五

注:這個系列的作者是我的師兄jianzhu,他在中文分詞、語言模型方面的研究很深入,如果大家對於srilm的源**感興趣,可以參考他個人部落格上寫的「srilm閱讀文件系列」,很有幫助。

無約束最優化二

2.1 a k合理性討論 如下將要討論關於a k需要滿足的兩個條件,當a k滿足這兩個條件後,就可以認為從x k點移動到x k 1點的步長已經確定下來了。第乙個條件為sufficient decrease condition,從直觀角度來看,該條件主要要用保證x k 1點的函式值要小於x k點的函式...

無約束最優化三

2.2 a k步長的選擇 了解了a k的合理性之後,就相當於獲得了標尺,在此基礎上我們可以選擇合適的策略來求取a k。所有的line search過程在計算每一步的a k時,均需要提供乙個初始點a 0,然後再此基礎上生成一系列的,直到a i滿足2.1節所規定的條件為止,此時該a k即被確定為a i,...

無約束最優化方法 牛頓法

無約束最優化演算法 newton法原理及c 程式設計實現 2012 12 14 13 04 6536人閱讀收藏 舉報 演算法 27 作者同類文章x 無約束最優化方法 牛頓法 牛頓法 newton smethod 又稱為牛頓 拉弗森方法 newton raphson method 它是一種在實數域和複...