反向傳播演算法(Back propagation)(2) — 四個公式的推導

Martin Huang
Oct 20, 2020

--

相關的介紹請見這篇。試著證明四個公式如下:

四個公式都是鏈鎖率(chain rule)和多元微積分(這邊主要應用偏微分,multivariable calculus)的產物。

公式一

輸出損失的基本定義是

用鏈鎖率推展它:

個人覺得關鍵是要用什麼變數去引導鏈鎖率來完成證明。這邊引入的是第 L 層之輸出 a,本層有 k 個神經元(輸出),因此必須要再 sigma 加總。但輸入 a 和加權過的輸入 z 的關係必須在 k = j 的時候才有意義,也就是若 k≠j ,則 a 對 z 的偏微分就是 0。因此上式可以簡化為

而右邊的 δa/δz 的偏微分算式可表示為 σ’(z),因為 a 是輸出,即輸入經過啟動函數處理的結果,a = σ(z)。所以最後可以改表示為

這就是公式一。

公式二

公式二的意思是用下一層的損失表示本層的損失。我們要先把

改寫為

這可以用鏈鎖率做到:

等式1.

同公式一的推導,因為是第 k 個 z,所以前面要加 sigma。
下一層的輸出可以寫為:

下一層單一個神經元的輸入是本層 j 個與它有連結的神經元的輸出的加總。這些輸出,是本層的輸入經過啟動函數,乘以下一層連結中的權重、加上誤差所形成。偏微分之後可得

將它代回等式 1. ,得到

這就是公式2.。

書上就只有證明前兩個公式,而把後兩個當作exercise,留給讀者自己證明。所以接下來要靠自己了。

公式三

用鏈鎖率把式子換成

而 z 可以寫成 wa+b,

把這個式子裡的 l+1 換成 l 就可以了。對 b 偏微分以後,全式變成 0 + 1 = 1。(一樣,只有 j =k 才有意義)所以上式變成

所以

即公式三。

公式四

用鏈鎖率把式子換成

z可以寫成 wa+b,同上。如果對w偏微分,則變成 a + 0 = a。

所以整個式子可以改寫成

即公式四。

以上就是四個公式的證明。全部都是鏈鎖率配合偏微分的技巧。

--

--

Martin Huang
Martin Huang

Written by Martin Huang

崎嶇的發展 目前主攻CV,但正在往NLP的路上。 歡迎合作或聯絡:martin12345m@gmail.com

No responses yet