天天看點

反向傳播算法_反向傳播算法詳解

前言

反向傳播算法是深度學習中求取各層梯度的核心算法,了解反向傳播算法對于了解深度學習原理至關重要。應屆生在找工作時很容易被問到反向傳播算法,經常會要求手推反向傳播算法。

一些符号說明

假設現在有如下神經網絡:

反向傳播算法_反向傳播算法詳解

神經網絡示例

我們把輸入記為

反向傳播算法_反向傳播算法詳解

向量

),輸入當作第0層,最後一層為第

反向傳播算法_反向傳播算法詳解

層。第

反向傳播算法_反向傳播算法詳解

層的節點數記為

反向傳播算法_反向傳播算法詳解

,則上圖中

反向傳播算法_反向傳播算法詳解

反向傳播算法_反向傳播算法詳解

反向傳播算法_反向傳播算法詳解

反向傳播算法_反向傳播算法詳解

上圖中每個節點的計算方式如下,其中

反向傳播算法_反向傳播算法詳解

是激活函數的輸出值,

反向傳播算法_反向傳播算法詳解

是激活函數。

反向傳播算法_反向傳播算法詳解

我們把第

反向傳播算法_反向傳播算法詳解

層中的激活函數輸出值記為

反向傳播算法_反向傳播算法詳解

是個向量

) ,則

反向傳播算法_反向傳播算法詳解

。我們把輸入

反向傳播算法_反向傳播算法詳解

看做第0層的激活值

反向傳播算法_反向傳播算法詳解

,最後一層的激活值為網絡的預測輸出,即

反向傳播算法_反向傳播算法詳解

。計算

反向傳播算法_反向傳播算法詳解

的權重矩陣記為

反向傳播算法_反向傳播算法詳解

,第

反向傳播算法_反向傳播算法詳解

層的偏移值記為

反向傳播算法_反向傳播算法詳解

是個向量

)。

前向傳播

第1層:

反向傳播算法_反向傳播算法詳解

反向傳播算法_反向傳播算法詳解
反向傳播算法_反向傳播算法詳解

第2層:

反向傳播算法_反向傳播算法詳解
反向傳播算法_反向傳播算法詳解

...

第4層(最後一層):

反向傳播算法_反向傳播算法詳解
反向傳播算法_反向傳播算法詳解
前向傳播中第
反向傳播算法_反向傳播算法詳解
層的值計算公式為

反向傳播算法_反向傳播算法詳解

(1)

反向傳播算法_反向傳播算法詳解

(2)

上面每次隻輸入一個資料

反向傳播算法_反向傳播算法詳解

,在實際訓練時模型中輸入的是一個batch的資料

反向傳播算法_反向傳播算法詳解

,那麼對于批量資料

反向傳播算法_反向傳播算法詳解

的前向傳播公式又是怎樣的呢?

假設

反向傳播算法_反向傳播算法詳解

,其中

反向傳播算法_反向傳播算法詳解

列向量

表示單個的輸入資料。第

反向傳播算法_反向傳播算法詳解

層中的激活函數輸出值記為

反向傳播算法_反向傳播算法詳解

反向傳播算法_反向傳播算法詳解
是個矩陣,第
反向傳播算法_反向傳播算法詳解
列代表
反向傳播算法_反向傳播算法詳解
在目前層的激活值,
反向傳播算法_反向傳播算法詳解

。同理有

反向傳播算法_反向傳播算法詳解

則有:

反向傳播算法_反向傳播算法詳解
反向傳播算法_反向傳播算法詳解

...

反向傳播算法_反向傳播算法詳解
反向傳播算法_反向傳播算法詳解

最後得到的

反向傳播算法_反向傳播算法詳解

相當于把所有輸入資料的預測值水準排在一起。

批量前向傳播中第
反向傳播算法_反向傳播算法詳解
層的值計算公式為

反向傳播算法_反向傳播算法詳解

(3)

反向傳播算法_反向傳播算法詳解

(4)

反向傳播

我們在反向傳播過程中計算權值矩陣

反向傳播算法_反向傳播算法詳解

的梯度

反向傳播算法_反向傳播算法詳解

和偏移項的梯度

反向傳播算法_反向傳播算法詳解

對于單個的輸入資料

,第

反向傳播算法_反向傳播算法詳解

層,由鍊導法則和式(1)可得:

反向傳播算法_反向傳播算法詳解

(5)

反向傳播算法_反向傳播算法詳解

(6)

由式(2)和鍊導法則可得下式,其中

反向傳播算法_反向傳播算法詳解

表示按元素位置對應相乘。

反向傳播算法_反向傳播算法詳解

(7)

由式(1)和鍊導法則可得:

反向傳播算法_反向傳播算法詳解

(8)

将(8)代入(7)得:

反向傳播算法_反向傳播算法詳解

(9)

通過式(7)我們找到了

反向傳播算法_反向傳播算法詳解

反向傳播算法_反向傳播算法詳解

的關系。

上面是針對單個的輸入資料
反向傳播算法_反向傳播算法詳解
的反向傳播公式,同樣的我們可以得到批量輸入資料
反向傳播算法_反向傳播算法詳解
的反向傳播公式如下:(假設每個批次包含
反向傳播算法_反向傳播算法詳解
個輸入資料)
反向傳播算法_反向傳播算法詳解

(10)

反向傳播算法_反向傳播算法詳解

(11)

反向傳播算法_反向傳播算法詳解

(12)

反向傳播算法_反向傳播算法詳解

(13)

反向傳播算法_反向傳播算法詳解

(14)

其中

反向傳播算法_反向傳播算法詳解

表示按元素位置對應相乘。

總結

整個反向傳播算法的過程如下:

反向傳播算法_反向傳播算法詳解

繼續閱讀