思路:線搜尋最優化演算法,一般是先確定迭代方向(下降方向),然後確定迭代步長;
信賴域方法直接求得迭代位移;
第\(k\)次迭代,確定迭代位移的問題為(信賴域子問題):
\[min q_k(d)=g_k^td+\fracd^tb_kd_k
\]\[s.t.\quad ||d||\leq \delta_k
\]其中\(\delta_k\)為信賴域半徑
對於求得的迭代位移,實際下降量:
\[\delta f_k=f(x_k)-f(x_k+d_k)
\]估計下降量:
\[\delta q_k=q_k(0)-q_k(d_k)
\]定義:
\[r_k=\frac
\]一般情況,\(\delta q_k>0\),因此,當\(r_k\)小於0時,表示求得的\(x_\)不是下降方向;需要縮小信賴域重新求解;當\(r_k\)趨近於1時,表明對於函式的二次近似具有較高的精度,可以擴大信賴域;
\(輸入:0<\eta_1<\eta_2<1,0<\tau_1<1<\tau_2,初始點x,初始hesse陣近似陣:b_0,容許誤差:\epsilon;信賴域半徑上限:\tilde,初始信賴域半徑:\delta_0\in(0,\tilde]\)
maxite=100; 最大迭代次數
g=gfun(x);
k=0;
while k < maxite and g > \(\epsilon\)
\(\qquad\) solve the child question of optizimation,get \(x_\);
\(\qquad\)get \(r_k\);
\(\qquad\)if \(r_k <\eta_1\)
\(\qquad\)
\(\qquad\)
\(\delta_\)=\(\tau_1\delta_k\);
\(\qquad\) elif \(\eta_1
\(\qquad\)
\(\qquad\)
\(\delta_=\delta_;\)
\(\qquad\) else
\(\qquad\)
\(\qquad\)
\(\delta_=\tau_2\delta_k;\)
\(\qquad\) endif
\(\qquad\) if \(r_k<\eta_1\)
\(\qquad\)
\(\qquad\)
\(x_=x;\)
\(\qquad\)
\(\qquad\)
\(b_=b_k;\)
\(\qquad\) else
\(\qquad\)
\(\qquad\)
\(refresh b_k, get b_;\)
\(\qquad\) endif
\(\qquad\)
\(k=k+1;\)
\(\qquad\)
\(g=gfun(x_);\)
endwhile
\(輸出:最優解x\)
信賴域 Trust Region 演算法
如果你關心最優化 optimization 你一定聽說過一類叫作 信賴域 trust region 的演算法。在本文中,我將講述一下信賴域演算法與一維搜尋的區別 聯絡,以及信賴域演算法的數學思想,實現過程。為了說明這兩種途徑所實現的演算法的區別和聯絡,請允許我做乙個可能不太恰當,但是比較形象的比喻 ...
最優化方法
1無約束約束方法 梯度下降 求解線性回歸,有明確的目標函式。利用目標函式的梯度來更新引數,使用最小二乘時,用loss的梯度更新。範數為2的最速下降。牛頓法 目標函式已知,用泰勒展開的近似作為近似解,把近似值帶入目標函式求出近似的引數作為更新值。由於捨棄了泰勒公式的高階項,新的引數值會更接近真實解。在...
最優化 牛頓優化演算法
本人總結的常用優化演算法pdf版本,主要講解原理 主要包括梯度下降,共軛梯度法 牛頓法,擬牛頓法 信賴域方法,罰函式法。coding utf 8 author uniquez file 牛頓法,基於dfp的擬牛頓法 date 2017 06 24 remark 原方程為 x1 2 2 x2 2 im...