反向传播输出层误差 δ

吴恩达机器学习第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}

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