最優化 數值優化演算法

2021-10-11 01:45:09 字數 2938 閱讀 3916

核心思路:對梯度方向做一些修正,使得每次迭代尋找最優點都在可行域的內部進行。

我們從可行域內部的某個點開始搜尋,一開始沿著梯度方向進行迭代搜尋,一旦碰到邊界(說明下一步可能會離開可行域)就要扭轉方向,使得搜尋過程始終在可行域的內部進行。

當點落在可行域外部時,該怎樣選擇搜尋方向,衍生出了下列的演算法。

1. 演算法框架

①計算f(x)和各組約束條件的歸一化梯度向量▽f(x)和▽gi(x)(i=1,2,…,n),規定步長k=1,t=1(迭代輪數)

②從x0沿著當前點的負梯度方向進行步長為1的搜尋得到點x1

④t = t+1;若迴圈終止條件未滿足,則繼續轉②。

2. 示例

【備註】:

①因為規定了步長k=1,在每一輪迭代無需再進行一維搜尋,這也導致了每一次迭代其目標函式值可能下降也可能上公升

梯度向量必須要歸一化。之前的演算法中我們提到過可忽略【梯度向量歸一化】的操作,是因為每一輪都還要進行步長的一維最優搜尋,步長k和梯度向量的模長是負相關互相約束的;但這裡我們已經規定了步長的數值,如果不對梯度進行歸一化,會導致每一次迭代行徑的步長不一致。

③我們的目標是最小化目標函式,所以在可行域內時沿著目標函式的負梯度方向行走;一旦離開了可行域,我們希望可以回到可行域之中,而可行域又是形如【g(x)≥0】的形式,所以需要沿著約束條件的正梯度方向走,使得約束條件的值增大。

因此可知,如果我們的約束條件是形如【g(x)≤0】的情況,那麼當點落在可行域的外部時,我們需要按照約束條件的負梯度方向進行搜尋。

3. 評價與分析

由上圖可以看到,縫邊法的搜尋過程較為迂迴,可知該演算法的效率並不是很高。

縫邊法在可行域內部按照梯度下降的原則進行搜尋,此時效率已經較為優異了;關鍵是在可行域邊界上,會有很多小的搜尋步伐來回探測,我們希望對這一點進行優化。

p.s. 【復合梯度縫邊法】是筆者自己取的,大意就是在縫邊的過程中綜合考慮了目標函式的梯度和約束條件的梯度。

1. 演算法框架

①計算f(x)和各組約束條件的歸一化梯度向量▽f(x)和▽gi(x)(i=1,2,…,n),規定步長k=1,t=1(迭代輪數)

②從x0沿著當前點的負梯度方向進行步長為1的搜尋得到點x1

④t = t+1;若迴圈終止條件未滿足,則繼續轉②。

2. 評價與分析

綜合考慮目標函式和約束條件的梯度,就使得在【矯正偏離可行域的程度】同時也【盡量優化目標函式的值】。

p.s. 但這個思想在[目標函式梯度與約束條件的梯度平行]的情況下,很難進行繼續優化。

【備註】

針對有約束的梯度演算法,我們有乙個核心思路:先將原問題的約束條件忽略,求解其目標函式的最優解,然後驗證這個最優解是否在可行域的內部,如果在的話那麼就求出了最優解;否則,我們直接去可行域邊界上尋找約束優化問題的最優解。

基於上面的思路,前面提到的兩種【約束梯度演算法】都沒有做到【盡量在邊界上進行搜尋】,於是我們提出了【可行方向法】。

1. 演算法思想與理解

核心思想是:從當前可行點找到下乙個可行點;如果在可行域內部,那麼沿著梯度方向進行搜尋;如果到達了可行域的邊界處,那麼就要往可行域內部去搜尋,且這個過程中還要考慮盡量沿著梯度下降的方向。

2. 演算法步驟與框架

【可行方向法】在使用的時候有乙個預設的條件,即出發點預設總是在可行域的,且下一次迭代的點要麼在可行域內要麼落在可行域的邊界上。但是在實際應用中,想要找到乙個可行域內的點並不是那麼容易的。

1. 演算法思路

其中ki是乙個正常數,ki∈[0,∞]:

ki的取值由使用者自己決定,取決於希望約束條件滿足的程度。

2. 示例

3. 圖示與理解

1. 演算法思想

2. 圖示與理解

不管是不等式約束還是等式約束——

數值最優化

多元函式 1.設多元函式 f rn r 二次連續可微,則 f 在 x 處的梯度和hessian矩陣為 f x f x x 1,f x x2,f x x n t 2f x f x x21 f x x n x1 f x x1 x n f x x2n 2.多元函式的taylor展開式 一階 f x f y...

最優化 牛頓優化演算法

本人總結的常用優化演算法pdf版本,主要講解原理 主要包括梯度下降,共軛梯度法 牛頓法,擬牛頓法 信賴域方法,罰函式法。coding utf 8 author uniquez file 牛頓法,基於dfp的擬牛頓法 date 2017 06 24 remark 原方程為 x1 2 2 x2 2 im...

機器學習筆記 數值最優化 1 最優化條件

方向導數 設x k是經k 步迭代後 得到的迭 代點,d k是xk 在xk使 f x 下降的方 向,k 0是 沿k的步 長,則第 k 1個 迭代待是 xk 1 x k k dk滿足 f xk 1 f xk 終止準則 f xk 1 f x k 足夠小 設 當前點為xk 搜尋方向是dk 視為 的 函式 h...