反向傳播演算法的理解

2021-08-18 17:23:07 字數 1680 閱讀 8420

bp(backpropagation algorithm,反向傳播演算法)在神經網路學習中有著無可替代的作用,關於其優化方法可閱讀該文章《一文看懂各種神經網路優化演算法:從梯度下降到adam方法》。本文僅立足於反向傳播的實現過程。文中如有理解偏差,請各位指正。

就反向傳播的字面理解是將資料從後(輸出)向前(輸入)傳遞,資料的具體形式是代價函式對其超引數(權重(w)和偏置(b))的偏導數,反向傳播的目的是使代價函式達到最小。所以該演算法的根本是代價函式對權重和偏置的偏導數的計算方法。所以「反向傳導演算法」的翻譯還是很貼切的。

首先,看下常見代價函式的形式,公式來自這裡。

式子中,n表示樣本數目,c為批樣本的代價函式,y(x)表示真實樣本的輸入x和輸出y(x),

二次代價函式的實際使用中,為減小權重的幅度,防止過度擬合,

加入了權重衰減項,變換後的公式如下(後文中的公式均來之這裡)。

此時其偏導數的形式為:

第一行比第二行多出一項,是因為權重衰減項作用於w而不是b

其次,複述下反向傳播演算法的思路。

為方便後文公式中符號的理解,可根據下圖進行對比,來自這裡。

其中,z和a分別表示神經元的輸入和輸出(啟用函式作用於輸入後的結果),

接著,著重理解偏導的計算過程。公式中由於涉及到後一層的加權值(即z值)和多層間的數值使得計算顯得有點複雜。

對輸出層神經元而言,代價函式相對於該層輸入的梯度計算公式如下。

其計算過程如下。

對隱層如下。

其計算過程如下。

其計算過程也可根據鏈式法則遞迴求解,即代價函式對第l層輸入的梯度等於,由於第l+1層有

得到神經元輸入的梯度後,利用輸入與權重和偏置的關係,可獲得如下公式,即為最終需要計算的梯度

最後,權重和偏置的更新公式如下,其中a為學習率。

反向傳播演算法理解

舉例 已知e a b b 1 求a 2,b 1時,e的梯度。首先它的復合關係圖 可以先利用偏導數的定義求出不同層之間相鄰節點的偏導關係 1.常規求法 自下到往上 路徑為 a c e 路徑為 b c e b d e 問題 c e這條路徑重複了,對於權值動則數萬的深度模型中的神經網路,這樣的冗餘所導致的...

反向傳播演算法

首先我們對數學符號做一些約定。我們首先考慮簡單的情況 前饋神經網路,如圖 所示。我們先假設任意兩層之間沒有權值共享。方向傳播演算法本質上就是梯度下降演算法,所以我們要對損失函式關於每個引數求導。設單個輸入例項 x 損失函式為 j x 那麼我們要求解 j wi 和 j bi i 1,2,n 對 j 關...

反向傳播演算法

反向傳播演算法的工作機制為對 錯誤的神經元施以懲罰。從輸出層開始,向上層次查詢 錯誤的神經元,微調這些神經元輸入值的權重,以達到修復輸出錯誤的目的。神經元之所以給出錯誤的 原因在於它前面為其提供輸入的神經元,更確切地說是由兩個神經元之間的權重及輸入值決定的。我們可以嘗試對權重進行微調。每次調整的幅度...