最優化之
dfp演算法考試題
**:dfp.m
檔案function [x,val,k]=dfp(fun,gfun,x0)功能用
dfp演算法求解無約束問題
min f(x)
輸入x0
是初始點
fun, gfun
分別是目標函式及其梯度
輸出x, val
分別是近似最優點和最優值
k是迭代次數
maxk=1e5; %
給出最大迭代次數
rho=0.55;sigma=0.4; epsilon=1e-5;
k=0;
n=length(x0);
hk=inv(feval('he',x0)); %hk=eye(n);
while(k
gk=feval(gfun,x0); %
計算梯度
if(norm(gk)
檢驗終止準則
dk=-hk*gk; %
解方程組
計算搜尋方向
m=0; mk=0;
while(m<20) %
用armijo
搜尋求步長
if(feval(fun,x0+rho^m*dk)
mk=m; break;
endm=m+1;
enddfp
校正x=x0+rho^mk*dk;
sk=x-x0; yk=feval(gfun,x)-gk;
if(sk'*yk>0)
hk=hk-(hk*yk*yk'*hk)/(yk'*hk*yk)+(sk*sk')/(sk'*yk);
endk=k+1; x0=x;
endval=feval(fun,x0);
fun.m
檔案此處為目標函式,因題而異
function f=fun(x)
f=100*(x(1)^2-x(2))^2+(x(1)-1)^2;
gfun.m
檔案(目標函式的梯度)
function gf=gfun(x)
gf=[400*x(1)*(x(1)^2-x(2))+2*(x(1)-1), -200*(x(1)^2-x(2))]';
he.m
檔案(hesse
陣)function he=he(x)
he=[1200*x(1)^2-400*x(2)+2, -400*x(1); -400*x(1), 200];
二次優化問題dfp 最優化方法(十二)粒子群尋優
chenglin li 最優化方法 一 0.618 分割 法計算單峰函式極小值 chenglin li 最優化方法 二 最速下降法求目標函式最小值 chenglin li 最優化方法 三 共軛梯度演算法 fr 求解無約束問題 chenglin li 最優化方法 四 變度量法演算法 dfp 求解無約束...
最優化學習筆記 十八 擬牛頓法 4 DFP演算法
秩2演算法可以保證在任意第 k 步迭代下,只要一維搜尋是精確的,近似矩陣hk 就是正定的。dfp演算法令 k 0 選擇初始點x 0 任意選擇乙個堆成正定實矩陣h0 如果g k 0 停止迭代 否則,令d k hkg k 計算 k arg min 0 f x k d k x k 1 x k kd k 4...
Deep Learning 最優化方法之Adam
本文是deep learning 之 最優化方法系列文章的adam方法。主要參考deep learning 一書。deep learning 之 最優化方法 deep learning 最優化方法之sgd deep learning 最優化方法之momentum 動量 deep learning 最...