神经网络与深度学习笔记(四)为什么用交叉熵代替二次代价函数

1、为什么不用 二次方代价函数

我们用的 loss 方程是

神经网络与深度学习笔记(四)为什么用交叉熵代替二次代价函数

a 是 神经元的输出,其中 a = σ(z), z = wx + b

使用链式法则求权重和偏置的偏导数有:

神经网络与深度学习笔记(四)为什么用交叉熵代替二次代价函数

可知,偏导数受**函数的导数影响

再由 sigmoid 函数可知,

神经网络与深度学习笔记(四)为什么用交叉熵代替二次代价函数

sigmoid 的导数在输出接近 0 和 1 的时候 是非常小的,这会导致一些实例在刚开始训练时学习得非常慢:

神经网络与深度学习笔记(四)为什么用交叉熵代替二次代价函数

2、为什么要用 交叉熵

先看公式:

神经网络与深度学习笔记(四)为什么用交叉熵代替二次代价函数

求权重和偏置的偏导数:

神经网络与深度学习笔记(四)为什么用交叉熵代替二次代价函数

神经网络与深度学习笔记(四)为什么用交叉熵代替二次代价函数

根据 σ′(z) = σ(z)(1 − σ(z)),知

神经网络与深度学习笔记(四)为什么用交叉熵代替二次代价函数

神经网络与深度学习笔记(四)为什么用交叉熵代替二次代价函数

由以上公式可知,权重学习的速度受到 σ(z) − y 影响,更大的误差,就有更快的学习速度,还避免了二次代价函数方程中因 σ′(z) 导致的学习缓慢