首先我先介绍一下一些符号的含义:
接下来看一下下面的模型:
此时我们使用二次代价函数形式为:
有链式求导我们可以得知:(只求最后一层向前一层的传播)
分来求导得下面式子:
最后得到上一层和下一层得关系式子为(ai为上一层的输出):
现在让我们和交叉熵得到得权重梯度进行比较:
可以看出二次函数所求权重梯度和sigmoid函数有关,而交叉熵所求权重梯度只和误差有关,当sigmoid函数得值小于1得时候,经过多次链式求导,会导致出现梯度消失的情况,但是对于交叉熵却不会出现这个问题。不过现在的二次代价函数,在应对梯度消失的情况也做了很多改进的激活函数(不使用sigmoid函数)。例如tanh函数,ReLU函数,Leaky ReLU函数,ELU函数等,这里不做详细探讨。
参考资料:
1,http://www.cnblogs.com/lancelod/p/4164231.html([NN] 对于BackPropagation(BP, 误差反向传播)的一些理解)
2,https://www.cnblogs.com/willnote/p/6912798.html(深度学习中的激活函数与梯度消失)
3,斯坦福大学2014机器学习教程个人笔记
领取专属 10元无门槛券
私享最新 技术干货