对于一个非常简单的分类问题,我有一个目标向量[0,0,0,... 0]和一个预测向量[0,0.1,0.2,.... 1]将交叉熵损失收敛更好/更快还是MSE损失? 当我绘制它们时,在我看来,MSE损失具有较低的误差范围。那为什么会这样?
答案 0 :(得分:6)
你听起来有点困惑......
[0,0.1,0.2,....1]
时(即使用非整数组件),正如您所说,问题是回归(而不是分类);在分类设置中,我们通常使用单热编码的目标向量,其中只有一个组件为1,其余组件为0 [1,1,1,1....1]
的目标向量可能是回归设置或多标签多类分类中的情况,即输出可能属于多个同时上课除此之外,您的情节选择,横轴预测的百分比(?)令人费解 - 我从未在ML诊断中看到过这样的情节,我不确定它们到底代表什么或为什么它们很有用......
如果您想详细讨论交叉熵损失&分类设置的准确性,您可以查看我的this answer。
答案 1 :(得分:4)
作为已接受答案的补充,我将回答以下问题
TL; DR 如果(随机)目标变量来自高斯分布,则使用MSE损失;如果(随机)目标变量来自多项式分布,则使用分类交叉熵损失。
线性回归的假设之一是多元正态性。由此可见,目标变量是正态分布的(有关线性回归的更多假设可以找到here和here)。
Gaussian distribution(Normal distribution)由均值和方差由
给出
在机器学习中,我们通常处理均值0和方差1的分布(或者将数据转换为均值0和方差1)。在这种情况下,正态分布为
这称为标准正态分布。
对于具有权重参数和精度(逆方差)参数的正态分布模型,在给定输入t
的情况下观测单个目标x
的概率由以下公式表示
,其中是分布的平均值,由模型计算为
现在,给定输入的目标向量的概率可以表示为
取左右对数的自然对数
其中是正常函数的对数似然。训练模型通常涉及针对优化似然函数。现在,参数的最大似然函数由给出(关于的常数项可以省略),
为了训练模型,省略常数不会影响收敛。
这称为平方误差,取mean
得出均方误差。
,
在介绍更通用的交叉熵函数之前,我将解释特定类型的交叉熵-二元交叉熵。
二元互熵的假设是从伯努利分布得出目标变量的概率分布。根据Wikipedia
伯努利分布是随机变量的离散概率分布,其中 取值为1且概率为p取值为0 概率为q = 1-p
伯努利分布随机变量的概率由
给出
,其中和p是成功的概率。
这可以简单地写成
取双方的自然对数负
,这称为二进制交叉熵。
一般情况下交叉熵的推广 当随机变量是多变量时(来自多项式分布 ),并具有以下概率分布
取双方的负自然对数会产生绝对的交叉熵损失。
,
当目标变量来自伯努利分布时,使用交叉熵;当目标变量来自正态分布时,使用MSE。