对于一个非常简单的分类问题,我有一个目标向量 [0,0,0,....0] 和一个预测向量 [0,0.1,0.2,....1],交叉熵损失会更好地收敛/更快还是 MSE 会丢失?当我绘制它们时,在我看来,MSE 损失的误差幅度较低。为什么会这样?
2 回答
你听起来有点迷茫...
- 比较 MSE 和交叉熵损失的值并说一个低于另一个就像比较苹果和橘子
- MSE 用于回归问题,而交叉熵损失用于分类问题;这些上下文是互斥的,因此比较它们相应损失度量的数值是没有意义的
- 正如您所说,当您的预测向量像
[0,0.1,0.2,....1]
(即具有非整数分量)时,问题是回归(而不是分类)问题;在分类设置中,我们通常使用 one-hot 编码的目标向量,其中只有一个分量为 1,其余为 0 - 的目标向量
[1,1,1,1....1]
可能是回归设置中的情况,也可能是多标签多类分类中的情况,即输出可能同时属于多个类
最重要的是,您的绘图选择(水平轴上的预测百分比(?))令人费解 - 我从未在 ML 诊断中见过这样的绘图,我不太确定它们究竟代表什么或为什么它们可以有用...
如果您想详细讨论分类设置中的交叉熵损失和准确性,您可以看看我的这个答案。
作为已接受答案的补充,我将回答以下问题
- 从概率角度对 MSE 损失和交叉熵损失的解释是什么。
- 为什么交叉熵用于分类而MSE用于线性回归?
TL;DR如果(随机)目标变量来自高斯分布,则使用 MSE 损失;如果(随机)目标变量来自多项分布,则使用分类交叉熵损失。
MSE(均方误差)
线性回归的假设之一是多变量正态性。由此可见,目标变量是正态分布的(更多关于线性回归的假设可以在这里和这里找到)。
具有均值和方差的高斯分布(正态分布)
由下式给出。
在机器学习中,我们经常处理均值 0 和方差 1 的分布(或者我们将数据转换为均值 0 和方差 1)。在这种情况下,正态分布将是,
这称为标准正态分布。
对于具有权重参数和精度(逆方差)参数的正态分布模型,给定输入
观察到单个目标的概率由以下等式表示
t
x
, 其中
是分布的平均值,由模型计算为
现在给定输入的目标向量的概率
可以表示为
取左右项的自然对数产生
正常函数的对数似然
在哪里。通常训练模型涉及优化关于 的似然函数
。现在参数
的最大似然函数由下式给出(关于 的常数项
可以省略),
对于训练模型,省略常数不会影响收敛。
这称为平方误差并取
mean
收益率均方误差。
,
交叉熵
在进入更一般的交叉熵函数之前,我将解释特定类型的交叉熵 - 二元交叉熵。
二元交叉熵
二元交叉熵的假设是目标变量的概率分布是从伯努利分布中得出的。根据维基百科
伯努利分布是随机变量的离散概率分布,它以概率 p 取值 1,以概率 q=1-p 取值 0
伯努利分布随机变量的概率由下式给出
,其中
p 是成功概率。这可以简单地写为
取两边的负自然对数收益率
,这称为二元交叉熵。
分类交叉熵
当随机变量是多变量(来自多项分布)时,交叉熵的推广遵循以下概率分布的一般情况
两边取负自然对数产生分类交叉熵损失。
,