MATLAB BP神經網絡用法的總結(試用於初學者)

BP(back propagation,反向傳播)神經網絡功能及其MATLAB實現。

反向傳播指誤差函數會由輸出端向前反向傳播,隱含層藉此調整權值來縮小誤差。

結構圖:


W爲權值,b爲閾值。

1.      數據輸入:數據輸入時需先使用傳遞函數進行變化,變換方法包括閾值(階躍)函數、分段線性變換、歸一化函數(mapminmax)、對數S形變換(logsig)、正切S形變換(tansig)。

2.      神經網絡創建:

創建函數newcf,該函數創建級聯前向BP神經網絡。

  Description

 

    newcf(P,T,[S1 S2...S(N-1)],{TF1 TF2...TFN},BTF,BLF,PF,IPF,OPF,DDF)takes,

      P  - RxQ1 matrix of Q1representative R-element input vectors.

      T  - SNxQ2 matrix of Q2representative SN-element target vectors.

      Si  - Sizes of N-1 hidden layers,S1 to S(N-1), default = [].

            (Output layer size SN is determined from T.)

      TFi - Transfer function of ith layer. Default is 'tansig' for

            hidden layers, and 'purelin' for output layer.

      BTF - Backprop network training function, default = 'trainlm'.

      BLF - Backprop weight/bias learning function, default = 'learngdm'.

      PF  - Performance function,default = 'mse'.

      IPF - Row cell array of input processing functions.

            Default is {'fixunknowns','remconstantrows','mapminmax'}.

      OPF - Row cell array of output processing functions.

            Default is {'remconstantrows','mapminmax'}.

      DDF - Data division function, default = 'dividerand';

    and returns an N layer cascade-forward backprop network.

net = newcf(P,T,[S1 S2...S(N-1)],{TF1TF2...TFN},BTF,BLF,PF,IPF,OPF,DDF)

PR:每組輸入(共有R組輸入)元素的最大值和最小值組成的R*2維矩陣;

Si:第i層的長度,共計N層;

TFi:第i層的傳遞函數,默認隱含層爲tansig,輸出層爲purelin,輸入爲兩個字符串構成的矩陣,取值範圍:


BTF:BP網絡的訓練函數,默認爲trainlm,即Lecenberg-Marquardt函數,可設置爲traingd,梯度下降BP算法訓練函數,traindm,動量反傳的梯度下降BP算法訓練函數,trainda,動態自適應學習速率的梯度下降BP算法訓練函數,traindx,動量反傳和動態自適應學習速率的梯度下降BP算法訓練函數。

BLF:權值和閾值的BP學習算法,默認爲learngdm,帶動量項,可設置爲learngd,不帶動量項。

PF:網絡的性能函數,即訓練誤差的計算方法,默認爲mse,即均方差,可設置爲mae,均值絕對誤差。

IPF:輸入處理函數。

OPF:輸出處理函數。

DDF:驗證數據劃分函數。

後面三個參數一般不設置,取系統默認即可。

創建函數newff,該函數創建前向神經網絡。

  Description

 

    newff(P,T,S) takes,

      P  - RxQ1 matrix of Q1representative R-element input vectors.

      T  - SNxQ2 matrix of Q2representative SN-element target vectors.

      Si  - Sizes of N-1 hidden layers,S1 to S(N-1), default = [].

            (Output layer size SN is determined from T.)

    and returns an N layer feed-forward backprop network.

 

    newff(P,T,S,TF,BTF,BLF,PF,IPF,OPF,DDF) takes optional inputs,

      TFi - Transfer function of ith layer. Default is 'tansig' for

            hidden layers, and 'purelin' for output layer.

      BTF - Backprop network training function, default = 'trainlm'.

      BLF - Backprop weight/bias learning function, default = 'learngdm'.

      PF  - Performance function,default = 'mse'.

      IPF - Row cell array of input processing functions.

            Default is {'fixunknowns','remconstantrows','mapminmax'}.

      OPF - Row cell array of output processing functions.

            Default is {'remconstantrows','mapminmax'}.

      DDF - Data division function, default = 'dividerand';

    and returns an N layer feed-forward backprop network.

P:輸入數據矩陣;

T:目標數據矩陣;

S:隱含層節點數;

其他參數同newcf。

傳遞函數

Logsig

Tansig

學習函數

Learngd函數

[dW,LS] =learngd(W,P,Z,N,A,T,E,gW,gA,D,LP,LS)

W:權值矩陣;

P:層輸入向量;

Z:層輸入經過加權函數變換後的加權輸入矢量;

N:加權輸入經過輸入函數計算後得到的神經元傳遞函數的輸入矢量;

A:該層神經元輸出矢量;

T:目標矢量;

E:誤差矢量;

gW:網絡性能對於權值的梯度矢量;

gA:網絡性能對於該層輸出梯度矢量;

D:神經元的距離矩陣;

LP:學習參數,learngd函數的學習參數是由學習速率LP.lr構成的,默認值爲0.01;

LS:學習狀態,初始值爲[],函數返回閾值調整量dW和當前學習狀態LS。

Learndm函數

參數同上。

訓練函數

Trainbfg準牛頓BP算法函數

[net,TR =trainbfg(Net,Tr,trainV,valV,testV)

Net:待訓練的神經網咯;

Tr:有延遲的輸入網絡;

trainV:訓練向量;

valV:驗證向量;

testV測試向量;

net:訓練後的神經網絡;

TR:每步訓練的有關信息,包括:

         TR.epoch:時刻點;

         TR.perf:訓練性能;

         TR.vperf:確認性能;

         TR.tperf:檢驗性能。

info=trainfg(‘info‘);返回函數的有用信息。

常規參數:

net.trainParam.epochs:訓練次數,默認值爲100.

net.trainParam.goal:網絡性能目標,默認值爲0。

net.trainParam.max_fail:最大驗證失敗次數,默認值爲5.

net.trainParam.min_grad:性能函數的最小梯度,默認值爲1e-6.

net.trainParam.show:兩次顯示之間的訓練次數,默認值爲25。

net.trainParam.time:最大訓練時間(秒),默認值爲INF。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章