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]需要指定隱含層和輸出層的節點數,