######好好好######MSE与CE的区别?数学推导 本质理解

面试官先问了几个简单问题,精灵自然轻松答出来了。终于面试官问到了MSE和CE的区别。

面试官:MSE和CE你熟悉吗?

精灵:熟悉,MSE就是mean square error,CE就是cross entropy。

面试官:没错,是这样的,训练神经网络时,你经常用哪一个?

精灵:如果是回归问题,用MSE,如果是分类问题,一般用CE。(这是一个小坑,先要区分问题是分类还是回归,面试官故意模糊这一点,就是考察精灵是否清楚这样的细节)

面试官:为什么呢?

精灵:因为MSE容易发生梯度消失问题,而CE则不会。

面试官:为什么呢?

精灵:以分类问题为例,假设我们的类别数量是T,最后一层使用softmax。对一条样本(x,c)而言,其label为c。在神经网络softmax之前那一层,共有T个神经元,让我们将目光投向第c个神经元,如下图所示:

不管是用MSE还是CE,我们都是希望y_c越大越好,其他与其并列的神经元越小输出值越好。

如果是MSE,这条样本的误差是:

我们来分析这个误差对于参数w的梯度。上式中一共有T项,我们不妨先取出其中一项,比如第一项来分析:

这里,我省略了其中的推导过程,相信面试官您也能理解。观察这个式子,我们发现了一个尴尬的问题,我们是想调整参数w从而增大这一项,使它尽可能接近于1:

可当这一项接近于0时,上面的梯度也将接近于0,因为该值就是梯度的一个因子。这就是gradient vannishing。

如果是用CE,则不会出现这个问题,用CE,其损失为:

同样我们求该损失对w的梯度:

此时,我们发现,该梯度就不会发生gradient vanishing了。因为消去了导致梯度错误消失的因子。

可见,因为我们最后做了softmax,所以用CE会比MSE好。

面试官:不错!分析的很到位!就你了,明天来公司上班吧!

精灵:好嘞!



作者:milter
链接:https://www.jianshu.com/p/5d13bcd9d990
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

猜你喜欢

转载自blog.csdn.net/u010159842/article/details/83578124