吳恩達機器學習筆記 —— 10 神經網路引數的反向傳播演算法

xingoo發表於2018-07-22

本篇講述了神經網路的誤差反向傳播以及訓練一個神經網路模型的流程

更多內容參考 機器學習&深度學習

神經網路可以理解為兩個過程:訊號的正向傳播和誤差的反向傳播。在正向的傳播過程中,計算方法為Sj=wijxi+bj,其中i是樣本、j是層數。然後xj=f(Sj),f為啟用函式。引入啟用函式的原因是可以帶來一定的非線性特性。由於樣本的y是在最後一層輸出的,因此在計算誤差的時候,需要從最後一層開始計算、針對與之關聯的引數進行求梯度,獲得引數的更新。然後再計算前一層的誤差,前一層的誤差等於權值誤差值,繼續計算每個引數的梯度變化。在神經網路中很容易形成區域性最優解,因此需要初始的隨機性比較好。

神經網路中的每一層可以用下面的表示式來表示:
吳恩達機器學習筆記 —— 10 神經網路引數的反向傳播演算法

通過最後一層的誤差,就能推出來每一層的誤差值。
吳恩達機器學習筆記 —— 10 神經網路引數的反向傳播演算法

通過誤差值計算梯度,然後修改權值
吳恩達機器學習筆記 —— 10 神經網路引數的反向傳播演算法

吳恩達機器學習筆記 —— 10 神經網路引數的反向傳播演算法

吳恩達機器學習筆記 —— 10 神經網路引數的反向傳播演算法

神經網路的流程

吳恩達機器學習筆記 —— 10 神經網路引數的反向傳播演算法

吳恩達機器學習筆記 —— 10 神經網路引數的反向傳播演算法

有時候誤差傳播程式碼是有問題,可以通過梯度檢測,判斷是否有問題。
吳恩達機器學習筆記 —— 10 神經網路引數的反向傳播演算法

相關文章