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