機器學習分享——反向傳播演算法推導

Momodel發表於2019-04-28

反向傳播(英語:Backpropagation,縮寫為BP)是“誤差反向傳播”的簡稱,是一種與最優化方法(如梯度下降法)結合使用的,用來訓練人工神經網路的常見方法。該方法對網路中所有權重計算損失函式的梯度。這個梯度會反饋給最優化方法,用來更新權值以最小化損失函式。

很多同學在學習深度神經網路的時候,對反向傳播的相關細節表示難以理解,國外有一篇技術部落格,用例子進行了非常清晰的推導。我們對此進行了漢化,並提供了相關的程式碼。有興趣的同學快來看看吧。

相關程式碼

原文地址

假設,你有這樣一個網路層。

機器學習分享——反向傳播演算法推導

機器學習分享——反向傳播演算法推導

現在對他們賦上初值,如下圖:

機器學習分享——反向傳播演算法推導

機器學習分享——反向傳播演算法推導

前向傳播過程

1. 輸入層---->隱含層:

機器學習分享——反向傳播演算法推導

2. 隱藏層---->輸出層:

機器學習分享——反向傳播演算法推導

反向傳播過程

接下來,就可以進行反向傳播的計算了

1. 計算總誤差

機器學習分享——反向傳播演算法推導

2. 隱含層---->輸出層的權值更新:

image.png

下面的圖可以更直觀的看清楚誤差是怎樣反向傳播的

機器學習分享——反向傳播演算法推導

我們分別計算每個式子的值:

機器學習分享——反向傳播演算法推導

最後三者相乘

機器學習分享——反向傳播演算法推導

看看上面的公式,我們發現:

機器學習分享——反向傳播演算法推導

機器學習分享——反向傳播演算法推導

3.隱含層---->隱含層的權值更新:

機器學習分享——反向傳播演算法推導

機器學習分享——反向傳播演算法推導

機器學習分享——反向傳播演算法推導

同理,計算出

機器學習分享——反向傳播演算法推導

兩者相加,得到總值

機器學習分享——反向傳播演算法推導

機器學習分享——反向傳播演算法推導

最後,三者相乘

機器學習分享——反向傳播演算法推導

image.png

這樣誤差反向傳播法就完成了,最後我們再把更新的權值重新計算,不停地迭代。

PC端檢視完整程式碼

———————————————————————————————————————————Mo (網址:momodel.cn )是一個支援 Python 的人工智慧建模平臺,能幫助你快速開發訓練並部署 AI 應用。

相關文章