數值優化(Numerical Optimization)學習系列-非線性方程(Nonlinear Equation)

概述

實際中很多應用不是尋找最優解,而是尋找一個根滿足給定的約束條件,如果有n個非線性等式約束,就是本節介紹的非線性方程問題,本節主要介紹
1. 非線性方程的問題形式
2. 非線性方程的求解算法
3. 總結

非線性方程的問題形式

問題形式,尋找滿足n個非線性等式的根,即

r(x)=0

其中r(x)=[r1(x),...rn(x)]T
該問題可以轉換爲求解mini=1...nr2i(x) ,根據最優化條件可知,最優解應該滿足:f(x)=0=>J(x)r(x)=0

1.該最小化問題等價於最小二乘問題,可以採用非線性最小二乘的求解算法,不同點在於有n個非線性等式。
2. 根據最優性條件,如果雅克比矩陣J(x)是非奇異的,則最優解就是該非線性方程的根;否則最優解可能不會滿足r(x)=0
3. 如果對於病態的J(x),即如果秩爲n-1或者n-2則最優化算法得到的解會比較差。
4. 最優化問題往往最優解只能得到一個,對於非線性方程可能存在唯一解、有限解、無窮解或者無解。

非線性方程的求解算法

該問題求解算法,主要思路是轉換爲最優化問題,利用類牛頓方法進行求解。

牛頓方法

類似於最優化問題的牛頓方法,尋找牛頓方向,然後不斷迭代。算法如下:
這裏寫圖片描述

算法流程
1. 每次尋找滿足牛頓方程的方向進行迭代。
2. 牛頓方程來源,對r(x)進行泰勒展開,有

r(x+p)=r(x)+J(x)p
相當於定義一個線性模型近似該目標,即
M(p)=r(x)+J(x)p

3. 牛頓方程來源二,看做是最優問題
minf(x)=12||r(x)||2
對應的牛頓方程爲
2f(x)p=f(x)
,對應於該問題爲
(J(x)TJ(x)p+m(x)p+J(x)Tr(x))=0
,其中r(x)的二階梯度一般可以省略(參加最小二乘問題),即
J(x)T(J(x)p+r(x))=0
,如果J(x)非奇異有
J(x)p+r(x)=0

4. 對比牛頓方程和線性最小二乘問題,可以看出該方程時如下最小二乘問題的優化目標,即minf(x)=12||rk+Jkp||2 ,因此可以利用最小二乘相關算法進行求解該等式
5. 該算法的收斂速度爲超線性收斂。

該算法的侷限性

  1. 當初始點選取不當,離根較遠時,算法表現不好。當J奇異時,不一定能找到解。
  2. 雅克比矩陣不一定容易求解
  3. 當n比較大時,牛頓方程不好求解。
  4. 當J是奇異矩陣是,結果不可預知。

改進算法

非精確牛頓方法

不同於牛頓方法,之間尋找滿足Jp=-r的牛頓方向,該方法尋找滿足如下條件的方向

||rk+JkPk||η||rk||
其中η 是force sequence,即非遞增序列。
算法如下
這裏寫圖片描述
  1. 算法的收斂速度依賴與參數η 的選取
  2. 如果η 充分小則爲線性收斂;如果η0 則爲超線性收斂;如果ηk=o(||rk||) 二次收斂。

Broyden方法

這是一類擬牛頓方法,思路如下
1. 迭代過程中,近似模型爲M(p)=r(x)+Bkp ,其中B爲雅克比矩陣的近似
2. 根據擬牛頓方程,定義如下

sk=xk+1xk,yk=r(xk+1)r(xk),yk=Bk+1sk
其中該方程也成爲割線方程(secant equation)
3. Broyden方法提供了一種比較實用的更新方法,即
Bk+1=Bk+(ykBksk)sTksTksk

4. 該方法收斂速度爲超線性收斂
算法步驟爲
這裏寫圖片描述

Tensor方法

張量方法,相當於在線性近似模型的基礎上,添加了表示非線性參數。即M(p)=r(x)+Jp+Tpp 其中T是一個三維數據相當於r(x)的二階梯度。

實際算法

在實際應用中,在牛頓算法的基礎上,使用線搜索和信賴域進行算法優化。

1.目標函數(Merit Func)不僅僅可以選取平方形式,也可以選取L1正則,即minf(x)=|r(x)|
2. 線搜索,更新步驟爲xk+1=xk+αpk
3. 信賴域,優化目標爲 minf(x)=12||rk+Jkp||2pΔk
4. 在實際中爲解決雅克比矩陣奇異或者病態的問題,搜索方向選取爲pk=(JTkJ+λkI)1JTkrk ,相當於目標函數添加了L2正則項

連續方法(Continuation Methods)

該方法的思路,如果原始問題求解比較複雜,將其轉換爲一系列簡單的問題,其中一類簡單的轉換思路爲,Homotopy Map:

H(x,λ)=λr(x)+(1λ)(xa)

λ=0x=1λ=1H=0r(x)=0
01λH(x,λ)=0r(x)=0

總結

通過該節的學習,可以瞭解到
1. 非線性方程如何轉換爲最優化問題
2. 牛頓方法以及變種求解非線性方程

發佈了59 篇原創文章 · 獲贊 123 · 訪問量 26萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章