反向傳播演算法理解

2021-09-19 03:25:26 字數 1226 閱讀 7600

舉例:已知e=(a+b)*(b+1),求a=2,b=1時,e的梯度。

首先它的復合關係圖:

可以先利用偏導數的定義求出不同層之間相鄰節點的偏導關係:

1.常規求法(自下到往上):

路徑為 a→c→e

路徑為 b→c→e;b→d→e

問題:c→e這條路徑重複了,對於權值動則數萬的深度模型中的神經網路,這樣的冗餘所導致的計算量是相當大的。

2.bp演算法(自上往下):

(1)簡單抽象:

從最上層的節點e開始,初始值為1,以層為單位進行處理。對於e的下一層的所有子節點,將1乘以e到某個節點路徑上的偏導值,並將結果「堆放」在該子節點中。

第二層的每乙個節點都「堆放"些值,然後我們針對每個節點,把它裡面所有「堆放」的值求和,就得到了頂點e對該節點的偏導。

然後將這些第二層的節點各自作為起始頂點,初始值設為頂點e對它們的偏導值,以"層"為單位重複上述傳播過程,即可求出頂點e對每一層節點的偏導數。

(2)具體實現:

以上圖為例,節點c接受e傳送的1×2並堆放起來,節點d接受e傳送的1×3並堆放起來,至此第二層完畢,求出各節點總堆放量並繼續向下一層傳送。

節點c向a傳送2×1並對堆放起來,節點c向b傳送2×1並堆放起來,節點d向b傳送3×1並堆放起來,至此第三層完畢。

節點a堆放起來的量為2,頂點e對a的偏導數為2;節點b堆放起來的量為2×1+3×1=5, 即頂點e對b的偏導數為5。

參考:

1.anonymous的回答:

2.反向傳播訓練多層神經網路的原理演示圖:

3.反向傳播詳細數學推導:

憶臻回答(注意:在推c對w53的偏導時,y2與y5的混淆 z5和z2的混淆)

4.反向傳播演算法的**:

反向傳播演算法的理解

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

反向傳播演算法

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

反向傳播演算法

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