1. BP神經網絡模型(Backpropagation Neural Networks)
- 采用非線性激活函數,Sigmoid函數。
- 三個層次:輸入層(Input Layer),隱藏層(Hidden Layer) 和輸出層(Output layer),就好比神經網絡的各個神經元具有不同功能一樣。
- 輸入層:負責接收外界刺激,即外部數據。
- 隱藏層:又叫可多層,負責增加計算能力,以解決困難問題。但隱藏層神經元不能無限增加,否則會出現過擬合現象。
- 輸出層:又稱為決策層,負責進行決策。
- 一般來說,當數據和決策問題確定之后,輸入層和輸出層的節點個數是固定的,唯一可變的是隱藏層。
- 層與層之間是通過神經鍵(權重)完成連接。
- 訓練好之后的BP神經網路模型是前饋的(feedforward),但在進行模型訓練的時候是從輸出層到輸入層,是反饋的(即:Train Backward)
-
-
(圖片來源:經管之家CDA)
-
2.如何構建BP神經網絡
(1) 只有隱藏層和輸出層的神經元才有構造,且每個神經元的 構造都是一模一樣的,而輸入層的神經元只負責接收外來數據,數據一旦輸入,便會立即輸出,故不具有構造。
(2)神經元由上一層神經元與本層神經元交叉形成神經鍵、權重加總(Weighted Sum)、常數項(Bias)以及激活函數(Activation Function)組成。
(3)w0j,w1j,...wnj 表示上一層神經元對於該神經元的影響權重Weights,可正可負,范圍為【0,1】;常數項(Bias)表示神經元自身的偏好;激活函數f表示一個以權重加總和常數項之和為自變量的函數,決定該神經元的輸出結果。
(4)在BP神經網絡中,一般采用S型函數作為激活函數。表達式為1/(1+e-xj),其中xj 是權重加總和常數項之和,成為組合函數的值,當組合函數的值為負時,激活函數的值小於0.5,否則,激活函數的值大於0.5。
3.應用舉例
(1)假設訓練數據(x1,x2,x3)為(1,0,1),各個神經鍵的權重值以及隱藏層和輸出層神經元的常數項隨機取值如下
(2)同理,計算出4/5/6節點的輸出值依次為:0.332,0.525,0.474
(3)假設實際的結果應當為 1 ,但采用隨機賦予權重值的方法得到輸出值為0.474,與目標值1 差距過大,因而要對神經網絡進行修正。
(4)修正權重和常數項值需要一個標准:平方誤差。平方誤差=,其中,Tj為訓練數據實際值,Oj為神經網絡輸出值。
(5)新的權重值=舊的權重值+學習效率*前節點的輸出值*后節點的誤差值。