1. 程式人生 > >[最優化演算法]最速下降法求解無約束最優化問題

[最優化演算法]最速下降法求解無約束最優化問題

1. 問題描述

最優化問題的一般形式如下所示:
對於f:DRnR1,求解

minxΩf(x)s.t.{s(x)0h(x)=0
其中f(x)稱為優化目標函式,s.t.稱為約束條件。對於無約束最優化,沒有約束條件要求,即在全部定義域內尋找目標函式最優值。此時,無約束最優化問題簡化為如下形式:
minxΩf(x)
針對最優化問題,我們往往不能求出全域性最小點,只能求出區域性最小點。因此,本文只討論求目標函式的一個極小值。

2. 數學準備

根據高中數學知識,針對可導函式而言,函式在極值處導數為0。即f(xk)=0xkf(x)的一個極值的必要條件(不是充分條件,因為該點還可能是“駐點”)。因此,我們只需要求解f

(x)=0的根並進行驗證就可以了。然而,很多函式的導數可能非常複雜,不易甚至不能求出f(x)=0的解析解。這裡我們設計一種數值計算的演算法,通過計算機的迭代計算,求出目標函式的一個極小值,我們稱之為“最速下降法”。

2.1 梯度

f:DRnR1,且f(x)處處可導,則f(x)x處的梯度為:

f(x)=[f(x)x1,f(x)x2,,f(x)xn]
梯度類似於一元函式中的導數。負梯度方向是函式下降最快的方向,稱為“最速下降方向”。

2.2 Hessian矩陣

f:DRnR1,且f(x)處處可導,則f(x)x處的Hessian矩陣為:

2f(
x)=2f(x)x212f(x)x2x12f(x)xnx12f(x)x1x22f(x)x222f(x)xnx22f(x)x1xn2f(x)x2xn2f(x)x2n

Hessian矩陣類似於一元函式中的二階導數。

3. 最速下降法

最速下降法是求解無約束最優化問題的一種數值計算的演算法,其基本思想是多次沿某一點的最速下降方向(也就是負梯度方向)進行一維搜尋,從而得到函式的一個極小值,因此得名為最速下降法。
因為最速下降法是一系列一維搜尋的組合,因此要理解最速下降法,必須要掌握一維搜尋。有關一維搜尋的內容,我會在另外一篇部落格上詳細介紹。這裡,我們僅僅給出一維搜尋的定義。

3.1一維搜尋

f(