深度學習筆記——理論與推導之Backpropagation(二)
阿新 • • 發佈:2019-01-06
Backpropagation(反向傳播):
背景——Cost Function與Gradient Descent
- Cost Function:
- Gradient Descent:
backpropagation是一種高效計算網路中gradient的方法
對權重wij求偏導
由於C的變化與z有關,z的變化與w有關,因此,需要分為如下兩部分求解:
- z對w求偏導:
- z對w求偏導實際上就是對 z = wx+b求偏導,因此我們需要做的就是將x分為兩部分,一部分就是輸入層(input),另一部分就是隱藏層的輸入a:
- z對w求偏導實際上就是對 z = wx+b求偏導,因此我們需要做的就是將x分為兩部分,一部分就是輸入層(input),另一部分就是隱藏層的輸入a:
- C對z求偏導:
如下圖所示,我們要把求偏導分為以下兩個問題:
- 那麼我們先解決第一個問題,我們所求的這個值,實際上是輸出層中的一個element的值:
可以看到,在輸出層中,y對z求偏導實際是就是a對z求偏導,而a對z求偏導,實際上就是activation function對z求導;而C對y求偏導實際上就是cost function對y求導。
現在我們已經求出了輸出層中某個元素的值了,接下來就是擴充套件到整個vector上。由於它的第一項是activation function對z求導,第二項是cost function對y求導,因此可以寫成如下形式:
注意:上面的element-wise multiplication指的不是矩陣乘法,而是:如,x = [[1,2],[3,4]],y = [[1,2],[3,4]],x·y = [[1,4],[9,16]] - 接下來我們來解決第二個問題,我們也是從一個元素入手:
接下來進行計算:
有了上面的公式,現在我們發現可以將這個公式看成一個新型的神經元。
輸入的是乘上它們在l+1層的權重,接著將乘積通過一個常量(也就是activation function的導數)可以看做是一個放大器。
因此我們可以得到下面的l層和l+1層的關係
下面我們可以將反向傳輸和一般的神經網路進行對比:
- 那麼我們先解決第一個問題,我們所求的這個值,實際上是輸出層中的一個element的值:
- 總結: