一、均方误差函数:
其中,t是真实标签,y是网络预测值。
然后我们将其对权重w求导:
发现它的变化与激活函数的导数有关系,也就是激活函数梯度f'(z)越大,w的大小调整得越快,训练收敛越快。反之,f'(z)越小,w的大小调整得越慢,训练收敛越慢。
以一个二分类问题为例,进行两组实验。
在上图两点中,0.98距离0差距较大但是它的梯度(斜率)趋于零,根据我们上面的分析,也就是说它调整的慢(收敛慢),同样0.82相比0.98来说与零相差小,但是它的梯度很大,所以它的收敛快。
下图是基于两点的loss变化图:
我们可以根据上图中绿色线(梯度斜率)变化大致画出来
我们可以根据上图中红色线(梯度斜率)变化大致画出来
所以在这里就产生了一个矛盾,当误差较大时我们希望它调整的大一些,加快收敛。但是如上述的0.98处一样,误差大但是变化率小,收敛的比慢。0.82位置误差相对小但是权值调整速度比较快,因此就有了交叉熵函数。
二、交叉熵函数:
同样我们对其w求导:
其中呢,
也就是
所以我们发现交叉熵函数w的调整与(y-t)相关,就是与网络误差值正相关,误差越大,调整越大,收敛越快,这是我们想要的。
三、结论
回归用均方误差,分类用交叉熵。
四、实验证明
在MNIST数据集上经过5个epoch来做对比,很明显交叉熵的收敛速度较快。
更多深度学习小知识请关注: