1. 程式人生 > >BP神經網路的隱含層,輸入層,輸出層的節點數確定

BP神經網路的隱含層,輸入層,輸出層的節點數確定

1.輸入向量維數=輸入層節點數

2.隱含層節點數計算

一般情況下隱含層轉移函式用logsig或tansig

確定隱含層節點數應該滿足以下條件: 
隱含層節點數必須小於N-1(N是訓練樣本數),否則網路模型的系統誤差與訓練樣本的特性無關而趨於0,即建立的網路模型沒有泛化能力,也沒有任何使用價值,同理,輸入層的節點數也必須小於N-1; 
訓練樣本數必須多餘網路模型的連線權數,一般為2~10倍,否則,樣本必須分成及部分且必須採用”輪流訓練”的方法才能得到可靠的神經網路。

3.輸出層節點數=測試分類個數

一般情況下隱含層轉移函式用tansig或purelin函式

newff函式的格式為:

net=newff(PR,[S1 S2 ...SN],{TF1 TF2...TFN},BTF,BLF,PF),函式newff建立一個可訓練的

前饋網路。輸入引數說明:

PR:Rx2的矩陣以定義R個輸入向量的最小值和最大值;

Si:第i層神經元個數;

TFi:第i層的傳遞函式,預設函式為tansig函式;

BTF:訓練函式,預設函式為trainlm函式;

BLF:權值/閾值學習函式,預設函式為learngdm函式;

PF:效能函式,預設函式為mse函式。

MATLAB神經網路工具箱要求樣本資料矩陣的每列是一個樣本,對應於輸出矩陣的一列,你的newff函式應該是低版本的函式,其中
PR -- R x 2 matrix of min and max values for R input elements 
Si -- Size of ith layer, for Nl layers 
即PR是包含輸入資料的最大值和最小值的矩陣,如果你的輸入矩陣為A,並且A的每列是一個樣本,那麼PR=minmax(A);

[s1,s2,...,sn]需要指定隱含層和輸出層的節點數,