为什么分类问题用 cross entropy,而回归问题用MSE 有更新!

  |   0 评论   |   189 浏览

先说为什么分类问题用交叉熵

为啥不用 classification error ?

来两个模型

模型 1

COMPUTED TARGETS CORRECT?
0.3 0.3 0.4 0 0 1 (democrat) yes
0.3 0.4 0.3 0 1 0 (republican) yes
0.1 0.2 0.7 1 0 0 (other) no

模型 2

COMPUTED TARGETS CORRECT?
0.1 0.2 0.7 0 0 1 (democrat) yes
0.1 0.7 0.2 0 1 0 (republican) yes
0.3 0.4 0.3 1 0 0 (other) no
  1. 2 个模型的 classification error 相等,但模型 2 要明显优于模型 1.classification error 很难精确描述模型与理想模型之间的距离。

  2. 计算交叉熵,用交叉熵则可以更准确的衡量模型之间的差距

为啥不用 MSE ?

总的来说,分类问题需要用one hot 的形式计算个label的概率,然后用 argmax 来决定分类。计算概率的时候通常用 softmax。参考流程:计算loss->计算softmax->argmax。

用MSE计算loss的问题在于,通过Softmax 输出的曲线是波动的,有很多局部的极值点。 即,非凸优化问题 (non-convex),如下图

3dd8d35dbdc449e6a82d37bc92b673b8-image.png

而cross entropy 计算 loss,则依旧是一个凸优化问题,用梯度下降求解时,凸优化问题有很好的收敛特性。

参考

为什么回归问题用MSE

为啥不能用交叉熵?

拿二项式的交叉熵定义来看
d178cb7ba7ae4438b9a5e13bc240e252-image.png

对于神经网络的分类问题等可以很好的使用,但是对于回归问题,任意取一个值比如 -1.5,就没法计算log(-1.5),所以一般不用交叉熵来优化回归问题。

为什么用MSE

最小二乘是在欧氏距离为误差度量的情况下,由系数矩阵所张成的向量空间内对于观测向量的最佳逼近点。

为什么用欧式距离作为误差度量 (即MSE),09年IEEE Signal Processing Magzine 的 《Mean squared error: Love it or leave it?》这篇文章做了很好的讨论。链接:文章

这篇文章在"WHY DO WE LOVE THE MSE?"中说,MSE:

  • 1. 它简单。

  • 2. 它提供了具有很好性质的相似度的度量。例如:

  • 1)它是非负的;

  • 2)唯一确定性。只有x=y的时候,d(x,y)=0;

  • 3)它是对称的,即d(x,y)=d(y,x);

  • 4)符合三角性质。即d(x,z)<=d(x,y)+d(y,z).

  • 3. 物理性质明确,在不同的表示域变换后特性不变,例如帕萨瓦尔等式。

  • 4. 便于计算。通常所推导得到的问题是凸问题,具有对称性,可导性。通常具有解析解,此外便于通过迭代的方式求解。

  • 5. 和统计和估计理论具有关联。在某些假设下,统计意义上是最优的。

然而,MSE并非没有缺点。并不是所有的问题都可以套用该准则,在“IMPLICIT ASSUMPTIONS WHEN USING THE MSE”说,它基于了以下几点对于信号的假设:

  • 1. 信号的保真度和该信号的空间和时间顺序无关。即,以同样的方法,改变两个待比较的信号本身的空间或时间排列,它们之间的误差不变。例如,[1 2 3], [3 4 5]两组信号的MSE和[3 2 1],[5 4 3]的MSE一样。

  • 2. 误差信号和原信号无关。只要误差信号不变,无论原信号如何,MSE均不变。例如,对于固定误差[1 1 1],无论加在[1 2 3]产生[2 3 4]还是加在[0 0 0]产生[1 1 1],MSE的计算结果不变。

  • 3. 信号的保真度和误差的符号无关。即对于信号[0 0 0],与之相比较的两个信号[1 2 3]和[-1 -2 -3]被认为和[0 0 0]具有同样的差别。

  • 4. 信号的不同采样点对于信号的保真度具有同样的重要性。

参考

评论

发表评论

validate