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

Posted

技术标签:

【中文标题】在哪些情况下,交叉熵优于均方误差? [关闭]【英文标题】:In which cases is the cross-entropy preferred over the mean squared error? [closed] 【发布时间】:2016-07-30 15:18:58 【问题描述】:

虽然上述两种方法都为更好的预测接近度提供了更好的分数,但仍然首选交叉熵。是在每种情况下还是在某些特殊情况下我们更喜欢交叉熵而不是 MSE?

【问题讨论】:

见heliosphan.org/cross-entropy.html和heliosphan.org/generative-models.html 【参考方案1】:

交叉熵是分类的首选,而均方误差是回归的最佳选择之一。这直接来自问题本身的陈述 - 在分类中,您使用非常特殊的一组可能的输出值,因此 MSE 的定义很差(因为它没有这种知识,因此以不兼容的方式惩罚错误)。为了更好地理解现象,最好遵循并理解它们之间的关系

    交叉熵 逻辑回归(二元交叉熵) 线性回归 (MSE)

您会注意到,两者都可以看作是最大似然估计量,只是对因变量有不同的假设。

【讨论】:

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

当您从概率和分布方面推导成本函数时,您可以观察到,当您假设误差服从正态分布时会发生 MSE,而当您假设二项式分布时会发生交叉熵。这意味着当你使用 MSE 时,你隐含地在做回归(估计),而当你使用 CE 时,你在做分类。希望它有一点帮助。

【讨论】:

假设我们有 2 个概率分布向量:- 实际 [0.3, 0.5, 0.1, 0.1] 和预测 [0.4, 0.2, 0.3, 0.1] 现在如果我们使用 MSE 来确定我们的损失,为什么会这是比KL散度更糟糕的选择吗?当我们对这样的数据执行 MSE 时,遗漏了哪些特征? 您能否展示高斯如何导致 MSE 而二项式如何导致交叉熵? @KunyuShi 查看正态分布和伯努利分布的 PDF/PMF。如果我们取他们的日志(我们通常这样做,以简化损失函数),我们分别得到 MSE 和二元交叉熵。【参考方案3】:

例如,如果您进行逻辑回归,您将使用 sigmoid 函数来估计 de 概率,使用交叉熵作为损失函数并使用梯度下降来最小化它。这样做但使用 MSE 作为损失函数可能会导致非凸问题,您可能会发现局部最小值。使用交叉熵会导致凸问题,您可能会在其中找到最佳解决方案。

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/

【讨论】:

YouTube 链接不再有效。

以上是关于在哪些情况下,交叉熵优于均方误差? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

均方误差和交叉熵损失函数比较

交叉熵函数(Cross Entropy)与均方误差损失函数(MSE)对比?为什么选择交叉熵函数?

直观理解为什么分类问题用交叉熵损失而不用均方误差损失?

损失函数——均方误差和交叉熵

深入理解均方误差、交叉熵、似然估计

[转]交叉熵 again