xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

資源簡介

這個函數可以從UFLDL網站上下載,其好處是在用10000個樣本優化30多萬個參數時內存不溢出,比網站上所用的minFunc函數好。我下載后整理了一下,翻譯了注釋,行數從800多行壓倒660行

資源截圖

代碼片段和文件信息

function?[xfvalexitflagoutputgrad]=fminlbfgsWEI(funfcnx_initoptim)

%FMINLBFGS?尋找多變量函數局部最小值?
%???此優化器為具有大量未知變量的圖像配準方法而開發?
%
%???所支持優化方法:
% -?擬牛頓法(BFGS)??
%???-?有限存儲BFGS?(L-BFGS)
%???-?最陡梯度下降優化
%???
%???[XFVALEXITFLAGOUTPUTGRAD]?=?FMINLBFGS(FUNX0OPTIONS)?
%
%???輸入
% FUN:?被最小化函數的句柄或字符串,返回誤差值,誤差梯度如在輸出指定也返回
% X0:?未知量初始值,可為標量,向量,或矩陣(可選)
% OPTIONS:?對應優化器可選項的結構變量,自定義或者來自optimset(optimset不支持所有輸入選項)
%
%???輸出
% X?:?所找到的最小化函數的位置(值)
% FVAL?:?所找到的最小值
% EXITFLAG?:?解釋優化器停止原因(條件)所對應的值
% OUTPUT?:?含所有重要輸出值與參數的結構變量
% GRAD?:?此位置上的梯度?
%
%???輸入/輸出變量擴展描述?
%???OPTIONS
% OPTIONS.GoalsExactAchieve?:?置0,線搜索(一維搜索);置1,滿足Wolfe條件的正態線搜索(默認)
% OPTIONS.GradConstr?如果梯度調用是CPU代價高昂的(默認),置變量值為真;如置為假,梯度調用多,函數調用少
% ????OPTIONS.HessUpdate?:?置為?‘bfgs‘采用BFGS優化方法(默認),未知量多于3000時,切換到有限內存BFGS方法,
%???????????????與置為‘lbfgs‘相同;置為?‘steepdesc‘?采用最陡梯度下降優化方法?
% OPTIONS.StoreN?:?用于L-BFGS中近似Hessian矩陣的迭代次數,默認值20;對不平滑函數,小值可能更好,
%???????????????因為Hessian僅在特定位置有效;對二次式推薦用大值?
% OPTIONS.GradObj?:?如果有梯度,置為?‘on‘;否則采用有限差分
%????? OPTIONS.Display?:?顯示的等級。?‘off‘?不顯示輸出;‘plot‘顯示圖中所有線搜索結果;?
%???????????????‘iter‘顯示每一次迭代的輸出;‘final‘只顯示最終輸出;?‘notify‘僅在函數不收斂時顯示輸出?
% ????OPTIONS.TolX?:?x的中止容限,默認值?1e-6.
% ????OPTIONS.TolFun?:?函數值中止容限,默認值?1e-6.
% OPTIONS.MaxIter?:?最大迭代次數,默認值?400.
%? OPTIONS.MaxFunEvals?:?函數估值最大次數,默認值為未知變量數目100倍
% OPTIONS.DiffMaxChange?:?有限差分梯度用最大步長
% OPTIONS.DiffMinChange?:?有限差分梯度用最小步長
% OPTIONS.OutputFcn?:?用戶定義函數,優化器函數在每次迭代時調用
% OPTIONS.rho?:?梯度的Wolfe條件?默認值?0.01
% OPTIONS.sigma?:?梯度的Wolfe條件?默認值?0.9?
% OPTIONS.tau1?:?步長變大時的搜索范圍擴展,默認值?3
% OPTIONS.tau2?:?范圍切分階段(section?phase)左邊界縮減,默認值?0.1
% OPTIONS.tau3?:?范圍切分階段(section?phase)右邊界縮減,默認值?0.5
%???FUN
% 同時提供X處梯度能改進優化器速度,把?FUN?函數寫為如下形式
%??? function?[fg]=FUN(X)
%??????? f??X處的值計算;
%??? if?(?nargout?>?1?)
%??????? g??X處的梯度計算
%??? end
% EXITFLAG
% EXITFLAG可能的取值,對應退出條件
% 1?‘Change?in?the?objective?function?value?was?less?than?the?specified?tolerance?TolFun.‘
%???????????(目標函數值變化小于指定的容限TolFun)
%?? 2?‘Change?in?x?was?smaller?than?the?specified?tolerance?TolX.‘;
%???????????(X變化小于指定容限TolX)
%?? 3?‘Magnitude?of?gradient?smaller?than?the?specified?tolerance‘;
%???????????(梯度值小于指定容限)
%?? 4?‘Boundary?fminimum?reached.‘
%???????????(達到fminimum邊界)
%?? 0?‘Number?of?iterations?exceeded?options.?MaxIter?or?number?of?function?evaluations?exceeded?options.FunEvals.‘
%???????????(迭代次數超限,MaxIter或者函數估值次數超過options.FunEvals)
%?? -1?‘Algorithm?was?terminated?by?the?output?function.‘
%???????????(輸出函數(output)中止了算法)
%?? -2?‘Line?search?cannot?find?an?acceptable?point?along?the?current?search‘;
%???????????(沿著當前搜索,線搜索無法找到一個可接受點)
%
%???舉例
%???????options?=?optimset(‘GradObj‘‘on‘);
%???????X?=?fminlbfgs(@myfun2options)
%
%??? %?其中?myfun是一個MATLAB函數,例如
%???????function?[fg]?=?myfun(x)
%???????f?=?sin(x)?+?3;
% ????if?(?nargout?>?1?)?g?=?cos(x);?end
%
%?See?also?OPTIMSET?FMINSEARCH?FMINBND?FMINCON?FMINUNC?@?INLINE.
%
%?Function?is?written?by?D.

評論

共有 條評論