在收敛性方面比较 MSE 损失和交叉熵损失
Comparing MSE loss and cross-entropy loss in terms of convergence
对于一个非常简单的分类问题,我有一个目标向量 [0,0,0,....0] 和一个预测向量 [0,0.1,0.2,....1] 会交叉熵损失收敛 better/faster 还是 MSE 损失?
当我绘制它们时,在我看来 MSE 损失的误差范围较小。为什么会这样?
或者例如,当我将目标设置为 [1,1,1,1....1] 时,我得到以下信息:
你听起来有点困惑...
- 比较 MSE 和 cross-entropy 损失的值,说一个比另一个低就像拿苹果和橙子比较
- MSE 用于回归问题,而 cross-entropy loss 用于 class化问题;这些上下文是相互排斥的,因此比较它们相应的损失度量的数值是没有意义的
- 当您的预测向量类似于
[0,0.1,0.2,....1]
(即具有 non-integer 个分量)时,如您所说,问题是 回归 (而不是class化)一;在classification设置中,我们通常使用one-hot编码的目标向量,其中只有一个分量为1,其余为0
[1,1,1,1....1]
的目标向量可能是回归设置中的情况,也可能是 multi-labelmulti-class[=40 中的情况=]化,即输出可能同时属于多个class
除此之外,您的绘图选择(横轴为预测的百分比(?))令人费解 - 我从未在 ML 诊断中看到过这样的绘图,我不太确定它们到底代表什么或者为什么它们有用...
如果您想详细讨论 class 化设置中的 cross-entropy 损失和准确性,您可以看看我的 。
作为已接受答案的补充,我将回答以下问题
- 从概率的角度解释MSE损失和交叉熵损失是什么。
- 为什么分类用交叉熵,线性回归用MSE?
TL;DR 如果(随机)目标变量来自高斯分布,则使用 MSE 损失;如果(随机)目标变量来自多项分布,则使用分类交叉熵损失。
MSE(均方误差)
线性回归的假设之一是多变量正态性。由此可见,目标变量是正态分布的(更多关于线性回归的假设可以找到here and here)。
Gaussian distribution(Normal distribution) 均值 和方差 由
给出
通常在机器学习中,我们处理均值为 0 和方差为 1 的分布(或者我们将数据转换为均值为 0 和方差为 1)。在这种情况下,正态分布将是,
这称为标准正态分布。
对于权重参数 和精度(逆方差)参数 的正态分布模型,观察单个目标 t
给定输入 x
的概率由以下等式表示
,其中 是分布的均值,由模型计算为
现在目标向量给定输入的概率可以表示为
取左右项的自然对数得到
其中 是正常功能的对数似然。通常训练模型涉及优化关于 的似然函数。现在参数 的最大似然函数由下式给出(关于 的常数项可以省略),
对于训练模型,省略常数 不会影响收敛。
这称为平方误差,取 mean
会产生均方误差。
,
交叉熵
在进入更一般的交叉熵函数之前,我将解释特定类型的交叉熵 - 二元交叉熵。
二进制交叉熵
二元交叉熵的假设是目标变量的概率分布是从伯努利分布中得出的。根据维基百科
Bernoulli distribution is the discrete probability distribution of a random variable which
takes the value 1 with probability p and the value 0
with probability q=1-p
伯努利分布随机变量的概率由
给出
,其中 和 p 是成功概率。
这可以简单地写成
两边取负自然对数得
,这叫二元交叉熵。
分类交叉熵
交叉熵的推广遵循一般情况
当随机变量是多变量时(来自多项分布
) 具有以下概率分布
对两边取负自然对数得到分类交叉熵损失。
,
我倾向于不同意之前给出的答案。关键是 cross-entropy 和 MSE 损失是相同的。
现代神经网络使用参数 space 的最大似然估计 (MLE) 来学习它们的参数。最大似然估计量由参数 space 上的概率分布乘积的 argmax 给出。如果我们应用对数变换并按自由参数的数量缩放 MLE,我们将得到训练数据定义的经验分布的期望值。
此外,我们可以假设不同的先验,例如高斯分布或伯努利分布,产生 S 形函数的 MSE 损失或负 log-likelihood。
对于一个非常简单的分类问题,我有一个目标向量 [0,0,0,....0] 和一个预测向量 [0,0.1,0.2,....1] 会交叉熵损失收敛 better/faster 还是 MSE 损失?
当我绘制它们时,在我看来 MSE 损失的误差范围较小。为什么会这样?
或者例如,当我将目标设置为 [1,1,1,1....1] 时,我得到以下信息:
你听起来有点困惑...
- 比较 MSE 和 cross-entropy 损失的值,说一个比另一个低就像拿苹果和橙子比较
- MSE 用于回归问题,而 cross-entropy loss 用于 class化问题;这些上下文是相互排斥的,因此比较它们相应的损失度量的数值是没有意义的
- 当您的预测向量类似于
[0,0.1,0.2,....1]
(即具有 non-integer 个分量)时,如您所说,问题是 回归 (而不是class化)一;在classification设置中,我们通常使用one-hot编码的目标向量,其中只有一个分量为1,其余为0 [1,1,1,1....1]
的目标向量可能是回归设置中的情况,也可能是 multi-labelmulti-class[=40 中的情况=]化,即输出可能同时属于多个class
除此之外,您的绘图选择(横轴为预测的百分比(?))令人费解 - 我从未在 ML 诊断中看到过这样的绘图,我不太确定它们到底代表什么或者为什么它们有用...
如果您想详细讨论 class 化设置中的 cross-entropy 损失和准确性,您可以看看我的
作为已接受答案的补充,我将回答以下问题
- 从概率的角度解释MSE损失和交叉熵损失是什么。
- 为什么分类用交叉熵,线性回归用MSE?
TL;DR 如果(随机)目标变量来自高斯分布,则使用 MSE 损失;如果(随机)目标变量来自多项分布,则使用分类交叉熵损失。
MSE(均方误差)
线性回归的假设之一是多变量正态性。由此可见,目标变量是正态分布的(更多关于线性回归的假设可以找到here and here)。
Gaussian distribution(Normal distribution) 均值 和方差 由
给出
通常在机器学习中,我们处理均值为 0 和方差为 1 的分布(或者我们将数据转换为均值为 0 和方差为 1)。在这种情况下,正态分布将是,
这称为标准正态分布。
对于权重参数 和精度(逆方差)参数 的正态分布模型,观察单个目标 t
给定输入 x
的概率由以下等式表示
,其中 是分布的均值,由模型计算为
现在目标向量给定输入的概率可以表示为
取左右项的自然对数得到
其中 是正常功能的对数似然。通常训练模型涉及优化关于 的似然函数。现在参数 的最大似然函数由下式给出(关于 的常数项可以省略),
对于训练模型,省略常数 不会影响收敛。
这称为平方误差,取 mean
会产生均方误差。
,
交叉熵
在进入更一般的交叉熵函数之前,我将解释特定类型的交叉熵 - 二元交叉熵。
二进制交叉熵
二元交叉熵的假设是目标变量的概率分布是从伯努利分布中得出的。根据维基百科
Bernoulli distribution is the discrete probability distribution of a random variable which takes the value 1 with probability p and the value 0 with probability q=1-p
伯努利分布随机变量的概率由
给出
,其中 和 p 是成功概率。
这可以简单地写成
两边取负自然对数得
,这叫二元交叉熵。
分类交叉熵
交叉熵的推广遵循一般情况 当随机变量是多变量时(来自多项分布 ) 具有以下概率分布
对两边取负自然对数得到分类交叉熵损失。
,
我倾向于不同意之前给出的答案。关键是 cross-entropy 和 MSE 损失是相同的。
现代神经网络使用参数 space 的最大似然估计 (MLE) 来学习它们的参数。最大似然估计量由参数 space 上的概率分布乘积的 argmax 给出。如果我们应用对数变换并按自由参数的数量缩放 MLE,我们将得到训练数据定义的经验分布的期望值。
此外,我们可以假设不同的先验,例如高斯分布或伯努利分布,产生 S 形函数的 MSE 损失或负 log-likelihood。