反向傳播(英語:Backpropagation,縮寫為BP)是“誤差反向傳播”的簡稱,是一種與最優化方法(如梯度下降法)結合使用的,用來訓練人工神經網路的常見方法。該方法對網路中所有權重計算損失函式的梯度。這個梯度會反饋給最優化方法,用來更新權值以最小化損失函式。
很多同學在學習深度神經網路的時候,對反向傳播的相關細節表示難以理解,國外有一篇技術部落格,用例子進行了非常清晰的推導。我們對此進行了漢化,並提供了相關的程式碼。有興趣的同學快來看看吧。
假設,你有這樣一個網路層。
現在對他們賦上初值,如下圖:
前向傳播過程
1. 輸入層---->隱含層:
2. 隱藏層---->輸出層:
反向傳播過程
接下來,就可以進行反向傳播的計算了
1. 計算總誤差
2. 隱含層---->輸出層的權值更新:
下面的圖可以更直觀的看清楚誤差是怎樣反向傳播的
我們分別計算每個式子的值:
最後三者相乘
看看上面的公式,我們發現:
3.隱含層---->隱含層的權值更新:
同理,計算出
兩者相加,得到總值
最後,三者相乘
這樣誤差反向傳播法就完成了,最後我們再把更新的權值重新計算,不停地迭代。
———————————————————————————————————————————Mo (網址:momodel.cn )是一個支援 Python 的人工智慧建模平臺,能幫助你快速開發訓練並部署 AI 應用。