多層神經網絡BP算法解釋

# 多層神經網絡BP算法解釋 ## 前向傳播 *** * 該項目採用反向傳播算法描述了多層神經網絡的教學過程。 爲了說明這個過程,使用了具有兩個輸入和一個輸出的三層神經網絡,如下圖所示:

  • 每個神經元由兩個單元組成。
  • 第一單元添加權重係數和輸入信號的乘積。
  • 第二個單元實現非線性功能,稱爲神經元激活功能。
  • 信號 e 是加法器輸出信號.
  • y=f(e) 是非線性元件的輸出信號。
  • 信號 y 也是神經元的輸出信號。

  • 訓練數據由(期望輸出)z 和輸入信號 x1x2 組成。
  • 神經網絡訓練是一個迭代過程。 在每次迭代中,使用來自訓練數據集的新數據來修改節點的權重係數 w
  • 使用下面描述的算法計算修改:每個教學步驟從強制來自訓練集的兩個輸入信號開始。 在此階段之後,我們可以確定每個網絡層中每個神經元的輸出信號值。
  • 下面的圖片說明了信號如何通過網絡傳播,符號wxmn 表示輸入層中網絡輸入xm 和神經元n 之間的連接權重。 符號yn 表示神經元n 的輸出信號。
y1=f1(w(x1)1x1+w(x2)1x2)
y2=f2(w(x1)2x1+w(x2)2x2)
y3=f3(w(x1)3x1+w(x2)3x2)
* 其中 f() 函數可以是 sigmod 函數
ex.f(z)=11+ez
/div> *** * 通過隱藏層傳播信號。 * 符號wmn 表示下一層中神經元m 的輸出與神經元n 的輸入之間的連接的權重。
## BP網絡 *** * 將神經網絡的輸出信號y^ 與在訓練數據集中找到的真實值(y )進行比較。 該差異被稱爲輸出層神經元的誤差信號δ
δ=yy^
與下圖片對應關係爲 y=z ,y^=y

  • 無法計算直接計算隱藏層的真實值和誤差,因爲該過程在實際生產中不存在,或不可得。
  • 爲此,八十年代中期,提出了 BP算法


  • 上一條是重點,重點,重點。

  • 注意 下圖公式有誤 ,正確表達爲
  • δ4=w46δdf6(e)de=w46δy^(1y^)
  • 其他的同類表達式也需要類似的修改,請注意。
  • 對於有多條邊連接的節點,δ 爲每條邊結果的和。


  • 獲得每個神經元的誤差信號後,可以利用誤差來修改每個神經元輸入節點的權重係數。
  • 下面的公式
    (δ2)e=(yy^)2e=(yy^)y^(1y^)

    表示神經元激活函數的導數     殘差   。
  • δ2 即爲   損失函數
  • 又因爲對dedθ
  • dedθ=θTxθ=x
  • 由於鏈式法則
  • (δ2)θ=(yy^)2ededθ=(y^y)y^(1y^)x=δy^(1y^)x
  • y^ 表示輸出值

  • y 表示真實值
  • x 代表上一層的輸出或者原始的輸入
  • δ 表示誤差 這裏用到了上一節BP中的假設
  • 通過這部分化簡,我們利用誤差δ 代替了的yy^ 從而避開了隱藏層中的未知量y
  • 最後利用標準的* 梯度下降公式*:
    w^=wη=w+ηδy^(1y^)x=w+ηδyex


轉載請註明出處,csdn的markdown還是很迷的。

參考

參考資料來源

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章