**
使用matlab工具箱建立神經網路時,需要用到newff函式,但若使用舊版本的newff函式,會出現下面的警告:
>> net = newff( minmax(input) , [10 3] , , 'traingdx') ; %舊版本
warning: newff used in an obsolete way.
一、新舊版本newff函式差異和解決方法:
這種警告是由於使用舊版本的newff引數列表,解決方法很簡單,就是改為新版本形式引數列表:
net = newff( minmax(input) , [103] , , '
traingdx
') ; %舊版本
net2 = newff( input,output'
, [10] , ,
'traingdx'
) ; %新版本
說明:舊版本中第乙個引數需要結合minmax()函式使用,新版本不需要了;新版本中不需要指定輸出層的神經元個數,改為由輸入引數output決定,其他引數不變。
這是新舊版本建立神經網路的方法,但存在另外乙個問題,即使相同的資料和引數下,新舊版本的計算結果總是不一樣,而且二者偏差很大,通常新版本的newff方法的識別率總是偏低。
網上找了一些原因:newff.m分成三大塊:主程式、新版實現子函式 new_5p1()、舊版實現子函式 new_5p0()。通過仔細比較新舊這兩個子函式,發現新版設定了net.dividefcn 屬性,其值為'dividerand'。該函式把樣本資料三分為訓練集、驗證集和測試集,預設比例是6:2:2。
若想減少新舊版本之間的差異,需要清除net2.dividefcn等屬性再訓練,否則結果相去甚遠,且遠不止乙個數量級。因此,解決新舊版本newff之間差異的方法,是在新版中net2中再新增一條語句:
net2.dividefcn = '';
二、新版newff函式引數說明:
(1)net=newff(p,t,s)或者net = newff(p,t,s,tf,btf,blf,pf,ipf,opf,ddf)
p:輸入引數矩陣。(rxq1),其中q1代表r元的輸入向量。其資料意義是矩陣p有q1列,每一列都是乙個樣本,而每個樣本有r個屬性(特徵)。一般矩陣p需要歸一化,即p的每一行都歸一化到[0 1]或者[-1 1]。
t:目標引數矩陣。(snxq2),q2代表sn元的目標向量。
s:n-1個隱含層的數目(s(i)到s(n-1)),預設為空矩陣。輸出層的單元數目sn取決於t。返回n層的前饋bp神經網路
tf:相關層的傳遞函式,預設隱含層為tansig函式,輸出層為purelin函式。
btf:bp神經網路學習訓練函式,預設值為trainlm函式。
blf:權重學習函式,預設值為learngdm。
pf:效能函式,預設值為mse。
ipf,opf,ddf均為預設值即可。
如:
net = newff( minmax(traindata) , [504] , , '
traingdx
' ) ;%舊版本
ps:其中traindata:是輸入的訓練的資料矩陣,注意traindata矩陣形式每一列是乙個樣本,每一行是樣本的屬性或特徵
net = newff( input,output, [50] , , '
traingdx
' ) ; %新版本
(2)傳遞函式
purelin 線性傳遞函式
tansig 正切 s 型傳遞函式
logsig 對數 s 型傳遞函式
隱含層和輸出層函式的選擇對bp神經網路**精度有較大影響,一般隱含層節點轉移函式選用 tansig函式或logsig函式,輸出層節點轉移函式選用tansig函式或purelin函式。
(3)學習訓練函式
神經網路的學習分為有導師學習和無導師學習。
最速下降bp演算法:traingd
動量bp演算法:traingdm
學習率可變的bp演算法:trainda(學習率可變的最速下降bp演算法);traindx(學習率可變的動量bp演算法)
彈性演算法:trainrp
變梯度演算法:traincgf(fletcher-reeves修正演算法)
traincgp(polak_ribiere修正演算法)
traincgb(powell-beale復位演算法)
trainbfg(bfgs 擬牛頓演算法)
trainoss(oss演算法)
trainlm(lm演算法)
引數說明:通過net.trainparam可以檢視引數
show training window feedback showwindow: true
show command line feedback showcommandline: false
command line frequency show: 兩次顯示之間的訓練次數
maximum epochs epochs: 訓練次數
maximum training time time: 最長訓練時間(秒)
performance goal goal: 網路效能目標
minimum gradient min_grad: 效能函式最小梯度
maximum validation checks max_fail: 最大驗證失敗次數
learning rate lr: 學習速率
learning rate increase lr_inc: 學習速率增長值
learning rate lr_dec: 學習速率下降值
maximum performance increase max_perf_inc:
momentum constant mc: 動量因子
ABP的新舊版本選型
abp是乙個開源的應用程式框架asp.net基於核心的web應用程式開發,也支援開發其他型別的應用程式。對舊版本的重寫,基於asp.net core,主要定位微服務 base class for crud services asp.net樣板 boilerplate,abp 是乙個開源的 有良好文件...
pyecharts的新舊版本用法區別
簡介特性 版本v0.5.x 和 v1 間不相容,v1 是乙個全新的版本,詳見 issue 892,issue 1033。舊版本 5.x 版本將不再進行維護,0.5.x 版本 位於 05x 分支 新版本 新版本系列將從 v1.0.0 開始,文件位於 pyecharts.org 安裝 pip 安裝 安裝...
matlab BP神經網路 newff
net newff p,t,s 這兩種定義都可以 net newff p,t,s,tf,btf,blf,pf,ipf,opf,ddf p 輸入引數矩陣。rxq1 其中q1代表r元的輸入向量。其資料意義是矩陣p有q1列,每一列都是乙個樣本,而每個樣本有r個屬性 特徵 一般矩陣p需要歸一化,即p的每一行...