1、網絡層數
大部分單個隱藏層即可
2、輸入層神經元個數
輸入變量的個數通常都是由問題的外部描述所確定的。例如,如果有4個外部變量作為網絡的輸入,那么網絡就有4個輸入。但是,這是不是意味着輸入層的神經元個數就為4呢?答案是否定的! 因為每個神經元的輸入可以有無數個,所以,通常當輸入變量較多的時候,輸入層神經元個數是明顯的少於輸入變量的個數的!
3、隱藏層神經元個數
較多的隱藏層神經元個數可以帶來更好的性能,但會導致訓練時間增加,有這么一些經驗公式...
其中h為隱藏層神經元個數,i表示輸入層神經元個數,o表示輸出層神經元個數
(后續補充...)
4、輸出層神經元個數
輸出層神經元的個數同樣需要根據從實際問題中得到的抽象模型來確定。在模式分類問題中,如果共有n種類別,則輸出可以采用n個神經元。
也可以設計log2(n)個神經元,如4個輸出,設計2個節點,00 01 10 11覆蓋四種狀態
5、激活函數的選取
激活函數一般用在隱藏層,常選用sigmoid函數,也可選用其他的...(如tanh函數、ReLU函數、P-ReLU函數、ELU函數等)
6、初始權值的確定
一般隨機生成,較小的非零隨機值
7、學習效率的設置
學習速率的高低會影響單次循環訓練所獲取的權值增量。學習的速率太高有可能會直接引起系統的不穩固;而學習的速率過低又會引起訓練用時大大的增加,從而可能產生非常慢的抑制速度。在過去的研究中,我們一般都會將學習速率的選取范圍設在0.01-0.8的區間里,也就是說我們通常為了確保整個系統的穩定性而傾向於使用較小的學習速率。
確定以上參數后,將訓練數據進行歸一化處理,並輸入網絡中進行學習,若網絡成功收斂,即可得到所需的神經網絡。