BP(反向傳播)神經網絡

這篇文章主要討論神經網絡的反向傳播的細節,“誤差”是如何反向傳播的,我們又是如何利用梯度來優化參數的。

在學吳恩達機器學習視頻的神經網絡那節時,給出了許多公式,比如計算每層的誤差,每層參數的梯度,但並沒有給出推導過程,可能也是考慮入門級,大多人並不要知道其中含義就可以運用算法了。接下來我會給出詳細的推導過程,幫助大家理解。

注意接下來所講是未正則化的神經網絡。

1 計算公式

1.1 正向傳遞

假設現在有一個三層的神經網絡,如圖:

image.png

參數含義:

  • θ(i)\theta^{(i)}ii 層的參數矩陣
  • z(l)z^{(l)}ll 層的輸入
  • a(l)a^{(l)}ll 層的輸出

傳遞過程:

  • a(1)=xa^{(1)}=x​
  • z(2)=θ(1)a(1)z^{(2)}=\theta^{(1)}a^{(1)}
  • a(2)=g(z(2))(add  a0(2))a^{(2)}=g(z^{(2)}) (add\;a_0^{(2)})
  • z(3)=θ(2)a(2)z^{(3)}=\theta^{(2)}a^{(2)}
  • h=a(3)=g(z(3))h=a^{(3)}=g(z^{(3)})

其中gg 爲sigmoid激活函數。

1.2 反向傳播

我們用δ(l)\delta^{(l)} 表示每層的”誤差“,yy 爲每個樣本的標籤,hh 爲每個樣本的預測值。

吳恩達在課裏面提到,”誤差“的實質是 δ(l)=Jz(l)\delta^{(l)}=\frac{\partial J}{\partial z^{(l)}} ,沒錯,後面詳細說明。

先來從後往前計算每層的“誤差“。注意到這裏的誤差用雙引號括起來,因爲並不是真正的誤差。

  • δ(3)=hy\delta^{(3)}=h-y (1)
  • δ(2)=(θ(2))Tδ(3)g(z(2))\delta^{(2)}=(\theta^{(2)})^T\delta^{(3)}g^{'}(z^{(2)}) (2)

注意第一層是沒有誤差的,因爲是輸入層。

然後來計算每層參數矩陣的梯度,用Δ(l)\Delta^{(l)} 表示

  • Δ(2)=a(2)δ(3)\Delta^{(2)}=a^{(2)}\delta^{(3)} (3)
  • Δ(1)=a(1)δ(2)\Delta^{(1)}=a^{(1)}\delta^{(2)} (4)

最後網絡的總梯度爲:

  • D=1m(Δ(1)+Δ(2))D=\frac{1}{m}(\Delta^{(1)}+\Delta^{(2)}) (5)

到這裏反向傳播就完成了,接着就可以利用梯度下降法或者更高級的優化算法來訓練網絡。

2 推導

這裏只推導 δ    Δ\delta\;和\;\Delta 是怎麼來的,其餘的比較好理解。

首先明確我們要優化的參數有 θ(1)\theta^{(1)}θ(2)\theta^{(2)} ,利用梯度下降法的思想,我們只需要求解出代價函數對參數的梯度即可。

假設只有一個輸入樣本,則代價函數是:
J(θ)=ylogh(x)(1y)log(1h) J(\theta)=-ylogh(x)-(1-y)log(1-h)
回顧下正向傳遞的過程,理解其中函數的嵌套關係:

  • a(1)=xa^{(1)}=x​
  • z(2)=θ(1)a(1)z^{(2)}=\theta^{(1)}a^{(1)}
  • a(2)=g(z(2))(add  a0(2))a^{(2)}=g(z^{(2)}) (add\;a_0^{(2)})
  • z(3)=θ(2)a(2)z^{(3)}=\theta^{(2)}a^{(2)}
  • h=a(3)=g(z(3))h=a^{(3)}=g(z^{(3)})

然後我們來求解代價函數對參數的梯度,θ(2)J(θ)\frac{\partial}{\partial \theta^{(2)}}J(\theta)θ(1)J(θ)\frac{\partial}{\partial \theta^{(1)}}J(\theta)

根據鏈式求導法則,可以計算得到:

image.png

把我畫紅線的地方令爲δ(3)\delta^{(3)} ,是不是就得到了反向傳播中的公式(1)?

把畫綠線的部分令爲Δ(2)\Delta^{(2)} ,就得到了公式(3)。我們接着算:

image.png

同樣把紅線部分令爲δ(3)\delta^{(3)} ,紫色部分令爲δ(2)\delta^{(2)} ,就得到了公式(2)。

綠線部分令爲Δ(1)\Delta^{(1)} ,就得到了公式(4)。

至此,推導完畢。得到這個規律後,便可以應用到深層次的網絡中,計算反向傳播時就很方便了。

上面的公式因爲書寫麻煩,便只寫了結果。如果你用筆去慢慢推幾分鐘,會發現其實很簡單。


下面是大半年前給實驗室做報告做的PPT,沒想到現在重新學到這裏,感覺許多小細節記不清,故溫故一遍。
這裏寫圖片描述

這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述這裏寫圖片描述這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章