1. 程式人生 > >MATLAB BP神經網路用法的總結(試用於初學者)

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.goal:網路效能目標,預設值為0。

net.trainParam.max_fail:最大驗證失敗次數,預設值為5.

net.trainParam.min_grad:效能函式的最小梯度,預設值為1e-6.

net.trainParam.show:兩次顯示之間的訓練次數,預設值為25。

net.trainParam.time:最大訓練時間(秒),預設值為INF。