matlab BP神經網路 newff

2021-10-14 07:35:49 字數 3611 閱讀 7906

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,可選擇的還有sse,sae,mae,crossentropy。

ipf,opf,ddf均為預設值即可。

例子:net = newff( input,output, [50] , , 'traingdx' ,'learngdm') ;    

btf  學習訓練函式影響最大

預設使用trainlm 效果比較好, levenberg-marquardt演算法 。其他函式比較差。

traingd  基本梯度下降法  速度慢,效果差

traingdm:帶有動量項的梯度下降法, 通常要比traingd 速度快。 速度快,效果差 

traingdx: 帶有動量項的自適應學習演算法, 速度要比traingdm 快。速度快,效果差,比上乙個強些 

(4) trainrp: 彈性bp 演算法, 具有收斂速度快和占用記憶體小的優點。速度稍慢,效果比3強

(5) traincgf: fletcher-reeves 共軛梯度法,為共軛梯度法中儲存量要求最小的演算法。速度快,效果差,和3差不多

(6) traincgp: polak-ribiers共軛梯度演算法, 儲存量比traincgf稍大,但對某些問題收斂更快。速度快,效果差,和5差不多

(7)  traincgb: powell-beale共軛梯度演算法,儲存量比traincgp稍大,但一般收斂更快,以上三種共軛梯度法,都需要進行線性搜尋。速度快,效果和4差不多,還可以

(8)  trainscg:  歸一化共軛梯度法,是唯一一種不需要線性搜尋的共軛梯度法。速度快,效果差,和5差不多

(9)  trainbfg:  bfgs- 擬牛頓法, 其需要的儲存空間比共軛梯度法要大,每次迭代的時間也要多,但通常在其收斂時所需的迭代次數要比共軛梯度法少,比較適合小型網路。速度慢,效果和4差不多,還可以

(10) trainoss: 一步分割法,為共軛梯度法和擬牛頓法的一種折衷方法。速度慢,效果差,和5差不多

(11) trainlm: levenberg-marquardt演算法,對中等規模的網路來說, 是速度最快的一種訓練演算法, 其缺點是占用記憶體較大。對於大型網路, 可以通過置引數mem-reduc 為1, 2, 3,⋯, 將jacobian 矩陣分為幾個子矩陣。但這樣也有弊端, 系統開銷將與計算jacobian的各子矩陣有很大關係。速度快 效果較好 

(12) trainbr: 貝葉斯規則法,對levenberg-marquardt演算法進行修改, 以使網路的泛化能力更好。同時降低了確定最優網路結構的難度。速度慢 效果很好 和11差不多

學習函式 學習函式的影響較訓練函式的影響要小。

效果較好的有:learncon,learnlv2 learnpn;其次 learngd learngdm learnis learnhd learnos

learncon:速度慢,準確率 0.975 

learngd:速度慢,準確率 0.944

learngdm:速度慢,準確率 0.95

learnh:速度慢,準確率 0.944

learnhd:速度慢,準確率 0.956 

learnis:速度慢,準確率 0.956 1(3)  

learnk:速度慢,準確率 0.95 1(3) 

learnlv1:速度慢,準確率 0.938 1(4) 

learnlv2:速度慢,準確率 0.975 1(6) (報錯,實際為learnlv2)

learnos:速度慢,準確率 0.95 1(2)

learnp:速度慢,準確率 0.931 1(3)

learnpn:速度慢,準確率 0.969 1(5) 

learnsom:速度慢,準確率 0.925 1(2) 

learnwh:速度慢,準確率 0.931 1(1)

2,傳遞函式tf

purelin: 線性傳遞函式。

tansig :正切s型傳遞函式。

logsig :對數s型傳遞函式。 

隱含層和輸出層函式的選擇對bp神經網路**精度有較大影響,一般隱含層節點轉移函式選用 tansig函式或logsig函式,輸出層節點轉移函式選用tansig函式或purelin函式。

3,學習訓練函式btf

traingd:最速下降bp演算法。

traingdm:動量bp演算法。

trainda:學習率可變的最速下降bp演算法。

traindx:學習率可變的動量bp演算法。

trainrp:彈性演算法。

變梯度演算法:

traincgf(fletcher-reeves修正演算法)

traincgp(polak_ribiere修正演算法)

traincgb(powell-beale復位演算法)

trainbfg(bfgs 擬牛頓演算法)

trainoss(oss演算法)

4,引數說明

通過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: 動量因子

Matlab BP神經網路,用於分類

bp神經網路,即向後傳播演算法。clear p1,p2是訓練資料 p1 1.24,1.27 1.36,1.74 1.38,1.64 1.38,1.82 1.38,1.90 1.40,1.70 1.48,1.82 1.54,1.82 1.56,2.08 p2 1.14,1.82 1.18,1.96 1...

matlab bp神經網路的簡單小例子

因為要寫 做實驗,所以自己研究了一些關於神經網路的演算法,用matlab做的一些小測試,使用的是 matlab神經網路43個案例分析 這本書,感覺還不錯,分享一下。使用每行的前4個資料 第5個資料的值。資源位址 讀取資料,讀取之前必須先加入到matlab中去xlsfile ceshi.xlsx 組織...

MATLAB BP 神經網路中的MIV演算法學習

clear close all clc 輸入輸出資料 data load data.txt p data 1 end,1 end 1 輸入資料 t data 1 end,end 輸出資料 pn,minp,maxp,tn,mint,maxt premnmx p,t 變數篩選miv演算法初步實現 p p...