反向傳播輸出層誤差 δ

吳恩達機器學習第5課筆記

神經網絡反向傳播

吳恩達的機器學習的筆記已經很多了,本文只是記錄一個一直沒搞清楚的問題
在課程中計算反向傳播的時候,關於輸出層的誤差直接就給出了
δL=yaL. \delta^{L}=y-a^{L}.
一直很疑惑,按照公式推算應該是
δL=CzL=CaLaLzL=CaLσ(zL). \delta^L=\frac{\partial C}{\partial z^L}=\frac{\partial C}{\partial a^L}\frac{\partial a^L}{\partial z^L}=\frac{\partial C}{\partial a^L}\sigma'(z^L) .
爲什麼可以直接得出yaLy-a^{L},看起來剛好是預測結果和實際值的差。
其實δL=yaL\delta^{L}=y-a^{L}是經過推導的結果。
假設第L層是輸出層:
δL=CzL \delta^L = \frac{\partial C}{\partial z^L}
aL=g(zL) a^L = g(z^L)
C是代價函數
C=ylog(g(zL))+(1y)log(1g(zL)) C = y * log(g(z^L)) + (1-y)* log(1-g(z^L))
所以
δL=CzL=(ylog(g(zL))+(1y)log(1g(zL)))zL=yg(zL)aL+(1y)g(zL)1aL=y(1aL)(1y)aLδL=yaL \begin{matrix} \delta^L & = &\dfrac{\partial C}{\partial z^L} \\ & = & \dfrac{ \partial (y * log(g(z^L)) + (1-y)* log(1-g(z^L)))}{\partial z^L}\\ & = & y * \dfrac{g'({z^L})}{a^L} + (1-y)* \dfrac{-g'({z^L})}{1-a^L} \\ & = & y * (1-a^L) - (1-y)* a^L\\ \delta^L & = & y - a^L \\ \end{matrix}
因此,對於輸出層δL=yaL\delta^{L}=y-a^{L}

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