反向傳播算法的微分詳細證實過程

看了andrew ng 老師的機器學習教程,在關於反向傳播算法進行講解時,微分過程被省略掉了,只是說這個過程很是複雜。網上找了一些資料,有一篇比較詳細的講解,在http://axon.cs.byu.edu/resources/backprop_derived.pdf能夠下載。這裏也貼出來。微分過程當中記法和andrew ng教程不太同樣。不過貌似看着也蠻方便的。第20-24步的過程正好是δ反向傳播的過程。算法

注意h(θ)這個假設函數,是關於輸入向量的l層複合函數。網絡

向量形式大概是這個樣子    h(θ) = g(θ2 * g(θ1*xi )),這裏是一個三層神經網絡的簡單示意。其中g表明激活函數,andrew ng的示例使用的是logistic function做爲激活函數。i表明輸入層向量。θ1和θ2表明第一層和第二層的權重矩陣。n層的時候是相似的複合過程。求偏導的過程實際上是E(h(θ), y)對θij求偏導的過程。機器學習

還有一點區別就是cost函數J(θ) 的選擇不太同樣,andrew ng採用的是邏輯迴歸的cost函數,而本文采用的是線性迴歸的代價函數。函數

andrew ng老師的反向傳播δ的計算過程以下:學習

 

它實際上是20-24步過程的一個向量化的形式。 blog

注意,因爲J(θ)的選擇本文和andrew ng 不同,輸出層的δ計算結果也不同,andrew ng 輸出層的δ的結果爲上面的δ(4) = a(4) - y。詳細的計算過程能夠參考一下這個網頁。http://mooc.guokr.com/note/16702/。可是第n-1層的δ和第n層的δ關係則是同樣的,向量化形式如上面的圖所示。教程

下面是詳細過程,enjoy it.....get

 

好吧,說的比較亂,有錯誤的地方你們不吝指教。it

相關文章
相關標籤/搜索