Contents
- BP神經網絡的認識
- 隱含層的選取
- 正向傳遞子過程
- 反向傳遞子過程
- BP神經網絡的注意點
- BP神經網絡的C++實現
1. BP神經網絡的認識
BP(Back Propagation)神經網絡分爲兩個過程
(1)工作信號正向傳遞子過程
(2)誤差信號反向傳遞子過程
在BP神經網絡中,單個樣本有個輸入,有個輸出,在輸入層和輸出層之間通常還有若干個隱含層。實際 上,1989年Robert Hecht-Nielsen證明了對於任何閉區間內的一個連續函數都可以用一個隱含層的BP網 絡來逼近,這就是萬能逼近定理。所以一個三層的BP網絡就可以完成任意的維到維的映射。即這三層分 別是輸入層(I),隱含層(H),輸出層(O)。如下圖示
2. 隱含層的選取
在BP神經網絡中,輸入層和輸出層的節點個數都是確定的,而隱含層節點個數不確定,那麼應該設置爲多少 才合適呢?實際上,隱含層節點個數的多少對神經網絡的性能是有影響的,有一個經驗公式可以確定隱含層 節點數目,如下
其中h爲隱含層節點數目,n爲輸入層節點數目,m爲輸出層節點數目,a爲之間的調節常數。
3. 正向傳遞子過程
現在設節點i和節點j之間的權值爲wij ,節點j的閥值爲bj,每個節點的輸出值爲xj,而每個節點的輸出 值是根據上層所有節點的輸出值、當前節點與上一層所有節點的權值和當前節點的閥值還有激活函數來實現 的。具體計算方法如下
其中f爲激活函數,一般選取S型函數或者線性函數。
正向傳遞的過程比較簡單,按照上述公式計算即可。在BP神經網絡中,輸入層節點沒有閥值。
以下爲推到過程
4. 反向傳遞子過程
參考:
http://blog.csdn.net/acdreamers/article/details/44657439