[非線性最優化方法](牛頓法、LM方法)(未完)

非線性最優化方法

引言

最優化的問題的一般形式爲:
minf(x), s.t.xX \min f(\mathbf{x}) , \ s.t. \mathbf{x}\in X
f(x)f(\mathbf{x})爲目標函數,XEn\mathbf{X\in E^n}

非線性特點:

  • 不是線性
  • 複雜彎曲
  • 沒有通解

無約束問題的最優條件:
minf(x),xRn\min f(\mathbf{x}),\mathbf{x} \in R^n的最優性條件:
g(x)=f(x),G(x)=Δf(x)g(x)=\nabla f(x),G(x)=\Delta f(x)分別爲ff的一階和二階導數。
定理(一階必要條件):設f:DRnR1f:D \subset R^n \to R^1在開集DD上連續可微,若xDx^* \in D是局部極小點,則g(x)=0.g(x^*)=0.
定理(二階必要條件):設f:DRnR1f:D \subset R^n \to R^1在開集DD上二階連續可微,若xDx^* \in D是局部極小點,則g(x)=0, G(x)0g(x^*)=0,\ G(x^*) \geq 0

  • 迭代優化方法的基本思想
  1. 給定一個初始點x0x_0,
  2. 按照某一迭代規則產生一個點列{xk}\{x_k\}, 使得
    {xk}\{x_k\}是有窮點列時,其最後一個點是最優化模型問題的最優解。
    {xk}\{x_k\}是無窮點列時,其極限點爲最優解。
  • 最優化方法的結構:
    給定初始點x0\mathbf{x}_0
  1. 確定搜索方向dk\mathbf{d}_k,即依照一定規則構造ffxk\mathbf{x}_k點處的下降方向爲搜索方向
  2. 確定步長因子αk\alpha_k,使目標函數值有某種意義下降
  3. xk+1=xk+αkdk\mathbf{x}_{k+1}=\mathbf{x}_{k}+\alpha_k\mathbf{d}_{k}
    xk+1\mathbf{x}_{k+1}滿足某種終止條件,則停止迭代,得到近似最優解,否則重複以上步驟。
  • 一個好的算法應具備的典型特徵爲:
  1. 迭代點xkx_k能穩定地接近局部極小點x*的鄰域,然後迅速收斂於xkx_k ;
  2. 當給定的某種收斂準則滿足時,迭代即終止。

收斂速度:
一般認爲,具有超線性和二階收斂速度的方法是比較快速的。


一維搜索

  1. 確定包含問題最優解的搜索區間
  2. 再用某種分割技術或插值方法縮小這個區間,進
    行搜索求解
  • 搜索區間:包含最優值的閉區間。
  • 確定搜索區間的簡單方法——進退法。
    • 從一點出發,試圖確定出函數值呈現“高-低-高” 的三點。一個方向不成功,就退回來,再沿相反方向尋找。

改進

  • 實際上所遇到的函數不一定是單峯函數,這時搜索出的值有可能大於初始區間的端點值。
  • 改進:每次縮小區間時,不只比較兩個內點處的函數值,而是比較兩個內點和兩個端點處的函數值:
    • 當左邊第一個或第二個點是這四個點中函數值最小的點時,丟棄 右端點;
    • 否則,丟棄左端點。

0.618 法

Fibonacci法

插值法

插值法是一類重要的搜索方法,其基本思想是:

  • 在搜索區間中不斷用低次(通常不超過三次)多項式來近似目標函數,並逐步用插值多項式的極小點來逼近一維搜索問題的極小點。
  • 當函數具有比較好的解析性質時,插值方法比直接方法(0.618 法或Fibonacci法)效果更好。

二次插值法:

  • 一點二次插值(牛頓法)
    • 利用一點處的函數值、一階和二階導數值構造二次插值函數。牛頓法的優點是收斂速度快,具有局部二階收斂速度。
  • 二點二次插值法
    • 給出兩點的函數值和其中一點的導數值,構造二次插值函數。二點二次插值法的收斂階爲1.618,超線性收斂。
  • 三點二次法(拋物線法)
  • 二點三次插值法
    ……

牛頓型方法

1. 最速下降法

以負梯度方向作爲極小化算法的搜索方向,即
dk=gk\mathbf{d}_k=-\mathbf{g}_k

  • 具有總體收斂性:
    產生的迭代點列的每一個聚點都是平穩點。
  • 最速下降方向僅是局部性質
    對於許多問題並非下降方向,而且下降非常緩慢;
    接近極小點時,步長越小前進越緩慢。

2. 牛頓法

  • 基本思想
    利用目標函數二次Taylor展開,並將其極小化。
    函數  f(x)\ f(x) xk\ x_k處的二次Taylor展開爲:
    f(xk+s)q(k)(s)=f(xk)+f(xx)Ts+12sT2f(xk)s f(x_k+s)\approx q^{(k)}(s)=f(x_k)+\nabla f(x_x)^Ts+\frac{1}{2}s^T\nabla^2f(x_k)s
    其中  s=xxk\ s=x-x_k,將 q(k)(s)\ q^{(k)}(s)極小化,得到
    xk+1=xk[2f(xk)]1f(xx)=xkGk1gk x_{k+1}=x_k-[\nabla^2 f(x_k)]^{-1}\nabla f(x_x)=x_k-G_k^{-1}g_k

  • 對於正定二次函數,一步即可得最優解。

  • 由於目標函數在極點附近近似於二次函數,所以在初始點接近極小點時,牛頓法收斂速度較快。

  • 牛頓法具有局部收斂性,爲二階收斂。

正定二次函數
正定二次函數(positive definite quadratic function)是係數矩陣爲對稱正定矩陣的二次函數。設xRnx\in R_nAAn×nn×n對稱正定矩陣,bRnb\in R_n爲常向量,cc爲常數,則二次函數f(x)=12xTAx+bTx+cf(x)=\frac{1}{2}x^TAx+b^Tx+c稱爲正定二次函數。

正定矩陣:
一個n×nn\times n的實對稱矩陣MM是正定的,當且僅當對於所有的非零實係數向量zz,都有zTMz>0z^TMz > 0。其中zTz^T表示zz的轉置。

  • 牛頓法適用於初始點距離最優解很近的情況下,當初始解遠離最優解時,GkG_k不一定是正定的,則牛頓方向不一定爲下降方向,其收斂性不能保證。
  • 說明恆取步長因子爲1不合適,應採用一維搜索。(僅當步長因子{αkα_k}收斂1時,牛頓法纔是二階收斂的。迭代公式:
    dk=Gk1gk,Xk+1=Xk+αkdk d_k=-G_k^{-1}g_k, X_{k+1}=X_k+α_kd_k
  • 帶步長因子的牛頓法是總體收斂的。

修正牛頓法

Gill-Murray穩定牛頓法

Goldfeld修正牛頓法


3.信賴域方法

  • 不僅可以用來代替一維搜索,而且也可以解決Hessen矩陣不正定等困難。

  • 主要思想:

    • 首選選擇一個步長r,使得在xxk<r||\mathbf{x}-\mathbf{x}_k||<r範圍內(信賴域
    • 目標函數用n維二次模型來逼近,並以此選擇一個搜索方向sk\mathbf{s_k},取xk+1=xk+sk\mathbf{x_{k+1}}=\mathbf{x_k}+\mathbf{s_k}
  • 具有牛頓法的快速局部收斂性,又具有理想的總體收斂性。

Levenberg-Marquardt方法

  • 最重要的一類的信賴域是取l2l_2範數,此時原模型等效於
    minq(k)(s)=fk+gkTs+12sTGks,s.t.s2hk minq^{(k)}(\mathbf{s})=f_k+\mathbf{g}_k^T\mathbf{s}+\frac{1}{2}\mathbf{s}^TG_k\mathbf{s},\quad s.t.||\mathbf{s}||_2\leq h_k
    引入LagrangeLagrange函數
    L(s,μ)=q(k)(s)+12μ(sTshk2) L(\mathbf{s},\mu)=q^{(k)}(\mathbf{s})+\frac{1}{2}\mu(\mathbf{s}^T\mathbf{s}-h_k^2)
    根據約束最優化的最優性條件知:
    sL=0, μ0 \nabla_sL=0,\ \mu\geq 0
    從而推出
    L(s,μk)=q(k)(sk)+12(ssk)T(Gk+μkI)(ssk) L(\mathbf{s},\mu_k)=q^{(k)}(\mathbf{s}_k)+\frac{1}{2}(\mathbf{s}-\mathbf{s}_k)^T(G_k+\mu_kI)(s-s_k)

  • 可以證明:
    總體解的二階必要條件爲(Gk+μkI)(G_k+\mu_kI)半正定。
    總體解嚴格最小的充分條件爲(Gk+μkI)(G_k+\mu_kI)正定。
    因此,LM方法都是要確定一個μk0\mu_k\geq 0,使得(Gk+μkI)(G_k+\mu_kI)正定,並用sL=0\nabla_sL=0求解sk\mathbf{s}_k。同時可以證明s2||\mathbf{s}||_2 μ\ \mu單調減小。

  • 算法步驟

  1. 給定初始點x0,μ0>0,k=1x_0, \mu_0>0, k=1
  2. 計算gkg_kGkG_k
  3. gk<ϵ||g_k||<\epsilon,停止
  4. 分解GK+μkIG_K+\mu_kI,若不正定,置μk=4μk\mu_k=4\mu_k,重複4直到正定
  5. (Gk+μkI)s=gk(G_k+\mu_kI)s=-g_k,求出sks_k
  6. f(xk+sk),q(k)(sk)f(x_k+s_k), q^{(k)}(s_k)rk=fkq(k)r_k=\frac{\triangle f_k}{\triangle q^{(k)}}
  7. rk<0.25r_k<0.25,置μk+1=4μk\mu_{k+1}=4\mu_k;若rk>0.75r_k>0.75,置μk+1=μk/2\mu_{k+1}=\mu_k/2;否則,μk+1=μk\mu_{k+1}=\mu_k
  8. rk0r_k\leq0,置xk+1=xk+skx_{k+1}=x_k+s_k
  9. 令k=k+1,轉2

LM方法比較適合於x維度不高的非線性函數優化。

(未完待續)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章