天天看點

BP神經網絡

神經網絡理論

  BP神經網絡(Back Propagation Neural Network)為多層前饋神經網絡用得比較廣泛,該神經網絡先通過前向傳播取得估計值,後再使用誤差進行反向傳播通過梯度下降來不斷地更新權重進而取得最小誤差從中學習得最佳權重系數;從BP神經網絡的名字也知道該算法的核心為反向傳播算法,神經網絡由多個神經元組成神經元結構如下:

  

BP神經網絡

  如上圖每個神經元結構由輸入、權重、門檻值、激活函數、輸出組成;

  輸入:接受上層的輸出作為該神經元的輸入

  權重:連接配接上層神經元與該神經元

  門檻值:現在通常把該門檻值獨立為每層的一個偏置神經元參與權重與輸入的權重和運算

  輸出:輸入與權重權重和并通過激活函數産生的結果,并且該輸出為下層神經元的輸入

  激活函數:作用為神經網絡添加非線性因素,解決線性不可分問題,使神經網絡能夠處理更複雜的問題;

  下圖為兩層神經網絡,該網絡的結構為:輸入層、隐含層、輸出層,稱為兩層神經網絡是因為去掉輸入層就隻有兩層,圓圈中為1的為偏置神經元,輸入層節點資料屬性并非神經元;神經網絡可以有一個或多個隐含層,超過兩個隐含層通過就可以稱作深度神經網絡,BP神經網絡通常隐含層不會超過兩個;

BP神經網絡

BP神經網絡結構:

BP神經網絡
BP神經網絡
BP神經網絡

訓練

  一個BP神經網絡流程主要以下幾個步驟:正向傳播、反向傳播、計算誤差、更新權重;下面通過一個示例來說明 BP神經網絡的整個訓練過程; 資料集:D={(x_1,y_1 ),(x_2,y_2 )},x_1∈R2,y_1∈R2,資料集包含2兩個屬性,2維輸出向量;根據該資料集建構了神經網絡結構如下圖,兩層神經網絡擁有兩個輸入屬性、兩個輸出神經元、兩個隐含神經元、兩個偏置神經元,總共2 x 2 x 2 = 8條權重; BP神經網絡為疊代算法,我們通過不斷的反向傳播疊代更新權重w,進而神經元的輸出也會随着調整,直到輸出層得到的值與資料集的真實值誤差總和最小或達到了疊代次數,此時終止模型訓練,這些得到的權重w便是該神經網絡的最佳參數;

BP神經網絡

符号定義:

  1、x1、x2...為輸入層屬性

  2、h1、h2...為隐含層神經元

  3、o1、o2...為輸出層神經元

  4、輸入層節點中的數字為該輸入屬性值

  5、v_xh為輸入層第x個節點與隐含層第h個神經元的權重

  6、w_ho為隐含層第h個神經元與輸出層第o個神經元的權重

  由于使用實數運算描述會有所複雜并且在代碼層面實作時會存在大量的循環操作,是以這裡會在有些地方使用向量來代替,下面看到加粗大寫字母均為向量;如X表示為該神經網絡的輸入向量;

正向傳播

  通過從輸入層、隐含層、輸出層逐層計算每層神經元輸出值;

BP神經網絡

1、輸入層——》隐含層

計算隐含層h1、h2神經元的輸入權重和:

BP神經網絡

神經元h1輸出:

BP神經網絡

2、隐含層——》輸出層

計算輸出層o1的輸入權重和

BP神經網絡
BP神經網絡

神經元o1輸出:

BP神經網絡

此時求得的輸出為:[0.79751046、0.83401102]

反向傳播

BP神經網絡

上一步在正向傳播時已經求得初步的估計值,現在先求出O1、O2的誤差、總誤差:

BP神經網絡
BP神經網絡

1、隐含層到輸出層權重更新

通過求出總誤差關于輸出層權重的偏導,可以得到每個權重對總誤差的影響,便可用于更新輸出層權重;

BP神經網絡

  從上圖可以看出總誤差關于權重的偏導數可以應用微積分的鍊式法則,可分解為:總誤差關于輸出的偏導、輸出關于權重和的偏導、權重和關于權重的偏導,三者的乘積;

總誤差關于權重w11的偏導:

BP神經網絡

總誤差關于輸出的偏導:

BP神經網絡

輸出關于權重和的偏導:

BP神經網絡

權重和關于權重的偏導:

BP神經網絡

總誤差關于權重的偏導數:

BP神經網絡
BP神經網絡

同理,連接配接隐含層與輸出層其他權重更新如下:

BP神經網絡

2、輸入層到隐含層權重更新

與上面求隐含層到輸出層權重的更新一樣,這裡也是求總誤差關于權重的偏導;

BP神經網絡

  從上圖可以看出隐含層h1神經元的輸出有來自輸出層O1、O2神經元傳來的誤差; 總誤差關于h1輸出的偏導數=O1誤差關于h1輸出的偏導數+ O2s誤差關于h1輸出的偏導數:

BP神經網絡

輸出層O1神經元誤差關于隐含層h1神經元輸出的偏導:

BP神經網絡

**輸出層O2神經元誤差關于隐含層h1神經元輸出的偏導: **

BP神經網絡

總誤差關于h1輸出的偏導數

BP神經網絡

隐含層輸出關于權重和的偏導:

BP神經網絡
BP神經網絡
BP神經網絡

w_11權重更新(ε為學習率):

BP神經網絡

同理輸入層與隐含層其他權重更新:

BP神經網絡

參考資料:

周志華 西瓜書

https://mattmazur.com/2015/03/17/a-step-by-step-backpropagation-example/

文章首發位址:Solinx

http://www.solinx.co/archives/1012

繼續閱讀