损失函数

Loss Function
也称为成本函数(Cost Function)或目标函数(Objective Function)

用于量化模型预测值与真实值之间差异的函数。在模型训练过程中,我们通过最小化损失函数来优化模型参数,从而使模型的预测尽可能地接近真实值。

类型 常见损失函数 适用场景
回归(数值预测) MSE、MAE、Huber Loss、Smooth L1 Loss 连续数值输出
分类(离散预测) Cross-Entropy Loss、Focal Loss、Hinge Loss 分类任务(Softmax / Sigmoid)
排序 / 生成 Triplet Loss、Contrastive Loss、CTC Loss 检索、匹配、序列预测

回归问题 Regression

均方误差 MSE

Mean Squared Error
基础思想:预测值和真实值的差平方后求平均,惩罚大误差。计算预测值与真实值之差的平方的平均值。对较大的误差惩罚更重,因此对异常值(outliers)比较敏感。损失函数是凸的,易于优化。

MSE=1ni=1n(yiy^i)2

适用场景: 大多数回归问题,当异常值不被认为是噪声时。预测房价、温度、时间序列数值等。

平均绝对误差 MAE

Mean Absolute Error
基础思想:预测值和真实值的差的绝对值后求平均,惩罚整体偏差。

MAE=1ni=1n|yiy^i|

计算预测值与真实值之差的绝对值的平均值。对异常值不那么敏感,因为它对误差的惩罚是线性的。但其在 0 点不可导,优化相对困难。

特点:

应用场景:对异常值不敏感时,做稳健回归。
适用场景: 当数据中存在较多异常值,且不希望模型过度关注这些异常值时。

Huber Loss(平滑版 MSE+MAE)

基础思想:
小误差用 MSE, 大误差用 MAE, 兼顾两者优点。结合了 MSE 和 MAE 的优点。当误差较小时使用 MSE(平方误差),当误差较大时使用 MAE(绝对误差)。

数学公式:

Lδ(y,y^)={12(yy^)2,if |yy^|δδ(|yy^|12δ),otherwise

δ 超参数, 控制切换点。
特点:

应用场景:

分类问题 Classification

交叉熵损失(Cross Entropy Loss)

二元交叉熵 (Binary Cross-Entropy, BCE)

对于多分类问题,假设有 K 个类别,真实标签 y 是一个 one-hot 向量,预测概率 y^ 也是一个概率分布向量:

L(y,y^)=k=1Kyklog(y^k)

Focal Loss(焦点损失)

基础思想:为了解决类别极度不平衡问题,让模型关注难分类样本。

FocalLoss(pt)=α(1pt)γlog(pt)

特点:

应用场景:检测极小目标(如目标检测中的 RetinaNet)

Hinge 损失 (Hinge Loss)

排序 / 生成

损失函数的选择原则