吳恩達機器學習第5課筆記
神經網絡反向傳播
吳恩達的機器學習的筆記已經很多了,本文只是記錄一個一直沒搞清楚的問題
在課程中計算反向傳播的時候,關於輸出層的誤差直接就給出了
δL=y−aL.
一直很疑惑,按照公式推算應該是
δL=∂zL∂C=∂aL∂C∂zL∂aL=∂aL∂Cσ′(zL).
爲什麼可以直接得出y−aL,看起來剛好是預測結果和實際值的差。
其實δL=y−aL是經過推導的結果。
假設第L
層是輸出層:
δL=∂zL∂C
aL=g(zL)
C是代價函數
C=y∗log(g(zL))+(1−y)∗log(1−g(zL))
所以
δLδL=====∂zL∂C∂zL∂(y∗log(g(zL))+(1−y)∗log(1−g(zL)))y∗aLg′(zL)+(1−y)∗1−aL−g′(zL)y∗(1−aL)−(1−y)∗aLy−aL
因此,對於輸出層δL=y−aL。