在哪些情况下,交叉熵优于均方误差?

66
尽管以上两种方法都提供了更好的预测接近度得分,但交叉熵仍然更受欢迎。在每种情况下都是如此吗?还是有一些奇特的场景,我们更喜欢交叉熵而不是均方误差(MSE)?

请参见 http://heliosphan.org/cross-entropy.html 和 http://heliosphan.org/generative-models.html。 - redcalx
3个回答

70
交叉熵更适用于分类问题,而均方误差则是回归问题中最佳的选择之一。这直接源自问题本身的陈述——在分类中,你使用非常特定的可能输出值集合,因此均方误差定义不清(因为它没有这种知识,从而以不兼容的方式惩罚错误)。为了更好地理解这种现象,我们需要关注并理解以下三种之间的关系:
  1. 交叉熵
  2. 逻辑回归(二元交叉熵)
  3. 线性回归(均方误差)
你会注意到,两者都可以被视为最大似然估计器,只是对于因变量有不同的假设。

3
请问您能否详细说明一下“因变量的假设”是什么意思? - yuefengz
2
@Fake - 正如Duc在另一个答案中指出的那样,逻辑回归假设因变量服从二项分布(或在交叉熵和softmax的广义情况下服从多项式分布),而线性回归则假设它是自变量的线性函数加上一个从0均值高斯噪声中独立同分布采样的固定方差。 - lejlot
我曾经使用MSE损失训练单个输出神经元,使其输出0或1 [用于负类和正类]。结果是所有输出都处于极端状态 - 你无法选择一个阈值。使用两个带有CE损失的神经元得到了更平滑的结果,因此我可以选择一个阈值。如果您仍然使用单个神经元,则可能需要使用BCE。 - SomethingSomething

45

当你从概率和分布的角度推导出成本函数时,你会发现当你假设误差服从正态分布时,均方误差(MSE)会发生,而当你假设误差服从二项分布时,交叉熵(Cross Entropy)会发生。这意味着当你使用MSE时,隐含地进行回归(估计),而当你使用CE时,则在进行分类。希望这能有所帮助。


1
假设我们有两个概率分布向量:实际[0.3,0.5,0.1,0.1]和预测[0.4,0.2,0.3,0.1]。如果我们使用MSE来确定损失,为什么这比KL散度更差?当我们在这样的数据上执行MSE时,会错过哪些特征? - akshit bhatia
1
你能展示一下高斯如何导致均方误差,二项式如何导致交叉熵吗? - Kunyu Shi
1
@KunyuShi请查看正态分布和伯努利分布的PDF / PMF。如果我们取它们的对数(通常这样做是为了简化损失函数),则分别得到MSE和二元交叉熵。 - A_P

13
如果你进行逻辑回归,你会使用sigmoid函数来估计概率,交叉熵作为损失函数,并使用梯度下降来最小化它。如果使用均方误差作为损失函数,可能会导致非凸问题,其中可能存在局部最小值。而使用交叉熵将导致一个凸问题,其中可能找到最优解。

https://www.youtube.com/watch?v=rtD0RvfBJqQ&list=PL0Smm0jPm9WcCsYvbhPCdizqNKps69W4Z&index=35

这里还有一个有趣的分析: https://jamesmccaffrey.wordpress.com/2013/11/05/why-you-should-use-cross-entropy-error-instead-of-classification-error-or-mean-squared-error-for-neural-network-classifier-training/

5
这个 YouTube 链接已经失效。 - Paul
分享一个不同的视频,它也解释了凸性点 - youtu.be/m0ZeT1EWjjI另外,还要看这个额外的视频 - youtu.be/gIx974WtVb4 - user1412066

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接