
【!!!建议收藏!!!】
1. 机器学习
- What
机器学习之监督学习的本质可以简单地理解为:给定一系列的训练样本
- How
如何学习这个最大程度上接近真实分布
2. 损失函数
2.1 均方差损失函数
均方差损失函数(Mean Squared Error Loss,简记为MSE)是机器学习之回归任务中最常用的一种损失函数,也称为
- MSE背后的假设
假设模型预测值与真实值之间的误差服从标准高斯分布
进一步,我们再假设数据集中N个样本点服从独立同分布,那么给定所有
为了方便计算,通常最大化对数似然(Log-Likelihood),如下所示。
最后,去掉与
显然,最小化的负对数似然与均方差损失一致。这就是说,当模型输出与真实值之间的误差服从高斯分布的假设下,最小化均方差损失函数与极大似然估计的最终归宿是一致的。因此,在满足这个假设的场景中,MSE损失是一个很好的损失函数选择。
2.2 平均绝对误差损失函数
平均绝对误差损失函数(Mean Absolute Error Loss,简记为MAE)是一种常用的损失函数,也称为
- MAE背后的假设
假设模型预测与真实值之间的误差服从拉普拉斯分布(
类似地,我们可以依次推导出MAE对应的似然估计、对数似然与负对数似然形式,如下所示。
显然,最小化的负对数似然与MAE损失一致。这就是说,当模型输出与真实值之间的误差服从拉普拉斯分布的假设下,最小化MAE损失函数与极大似然估计的最终归宿是一致的。
2.3 MSE与MAE的区别
MSE 损失相比 MAE损失通常可以更快地收敛,但 MAE 损失对于 outlier 更加具有鲁棒性,即更加不易受到 outlier 的影响。
- MSE 通常比 MAE 可以更快地收敛。当使用梯度下降算法时,MSE 损失的梯度为
,而 MAE 损失的梯度为
,即 MSE 的梯度的 scale 会随误差大小变化,而 MAE 的梯度的 scale 则一直保持为 1,即便在绝对误差
很小的时候 MAE 的梯度 scale 也同样为 1,这实际上是非常不利于模型的训练的。当然你可以通过在训练过程中动态调整学习率缓解这个问题,但是总的来说,损失函数梯度之间的差异导致了 MSE 在大部分时候比 MAE 收敛地更快。这个也是 MSE 更为流行的原因。
- MAE 对于 outlier 更加 robust。优于MAE损失与绝对误差之间是线性关系,MSE 损失与绝对误差是平方关系,因此当误差较大的时候,MSE 损失会远大于 MAE 损失。也就是说,当数据中出现一个可以造成误差非常大的 outlier 时,MSE 会产生一个非常大的损失,这会对模型的训练产生较大的影响。再者,MSE 假设了误差服从高斯分布,MAE 假设了误差服从拉普拉斯分布,而拉普拉斯分布本身对于 outlier 更加 robust。
2.4 Huber Loss
MSE 损失收敛较快但容易受 outlier 影响,MAE 对 outlier 更加健壮但是收敛慢,Huber Loss则是一种将 MSE 与 MAE 结合起来的损失函数,也被称作 Smooth Mean Absolute Error Loss 。Huber Loss的原理为:在误差接近 0(小) 时使用 MSE,误差较大时使用 MAE,计算公式如下所示。
上式中
下图是

2.5 交叉熵损失函数
在分类场景下,最常见的损失函数是交叉熵损失函数(Cross Entropy Loss)。
- 最大似然估计理解交叉熵损失
·· 二分类应用场景
在二分类中我们通常使用
用一个公式表示即为如下形式,其中
类似地,假设数据点之间独立同分布,则似然可以表示为如下形式。
同样,对似然取对数,然后加负号变成最小化负对数似然,即可得到交叉熵损失函数的形式
下图是一个二分类交叉熵损失函数的可视化示例,蓝线是目标值为 0 时输出不同值的损失值,黄线是目标值为 1 时输出不同值的损失值。可以看到,越接近目标值交叉熵损失越小,随着绝对误差增加,交叉熵损失值呈指数级增长。

·· 多分类应用场景
在多分类应用场景中,真实值
同样地,假设数据点之间满足独立同分布,可得到负对数似然。
由于
通常,应用于多分类的交叉熵损失函数也被称为Categorical Cross Entropy Loss。
- 信息论角度理解交叉熵损失
假设对于样本
在信息论中,我们可以使用 KL 散度( Kullback–Leibler Divergence) 来衡量两个分布的相似性。给定分布
显然,上式等号右边第一项为分布
用最优分布
我们希望两个分布尽量接近,因此我们的目标是最小化 KL 散度。由于上式第一项信息熵仅与最优分布本身相关,因此我们在最小化的过程中可以忽略掉,变成最小化:
上式为单个训练样本的损失函数,考虑整个数据集,则有:
可以看到,通过最小化交叉熵的角度推导出来的结果和使用最大化似然得到的结果是一致的。
3. 总结
本文详细介绍了机器学习中常用的几种损失函数及其背后遵循的假设或原理。
首先是适用于回归的均方差损失 MSE、平均绝对误差损失MAE以及结合两者优点得到的Huber Loss。
之后讨论了适用于分类问题的最常用的交叉熵损失函数 Cross Entropy Loss,并从信息论的角度解释了交叉熵损失函数。
【!!!未完待续,有空再更新!!!】