1、为什么不用 二次方代价函数
我们用的 loss 方程是
a 是 神经元的输出,其中 a = σ(z), z = wx + b
使用链式法则求权重和偏置的偏导数有:
可知,偏导数受激活函数的导数影响
再由 sigmoid 函数可知,
sigmoid 的导数在输出接近 0 和 1 的时候 是非常小的,这会导致一些实例在刚开始训练时学习得非常慢:
2、为什么要用 交叉熵
先看公式:
求权重和偏置的偏导数:
根据 σ′(z) = σ(z)(1 − σ(z)),知
由以上公式可知,权重学习的速度受到 σ(z) − y 影响,更大的误差,就有更快的学习速度,还避免了二次代价函数方程中因 σ′(z) 导致的学习缓慢