Loss Functions/zh
| Article | |
|---|---|
| Topic area | Machine Learning |
| Difficulty | Introductory |
损失函数(也称为代价函数或目标函数)量化模型预测与期望输出之间的差距。最小化损失函数是机器学习训练过程的核心目标:优化算法调整模型的参数,使损失尽可能低。
目的
损失函数将模型的预测 $ \hat{y} $ 和真实目标 $ y $ 映射到一个非负实数。形式上,对于单个样本:
- $ \ell: \mathcal{Y} \times \mathcal{Y} \to \mathbb{R}_{\geq 0} $
在包含 $ N $ 个样本的数据集上,总损失通常是平均值:
- $ L(\theta) = \frac{1}{N}\sum_{i=1}^{N}\ell\bigl(y_i,\, \hat{y}_i(\theta)\bigr) $
损失函数的选择编码了问题的结构——哪些错误重要以及应当以多大严厉程度对其进行惩罚。选择不当的损失函数会导致模型优化错误的目标。
均方误差
均方误差(MSE)是回归任务的默认损失函数:
- $ L_{\text{MSE}} = \frac{1}{N}\sum_{i=1}^{N}(y_i - \hat{y}_i)^2 $
MSE 以二次方式惩罚较大的误差,使其对离群值敏感。其梯度计算简单:
- $ \frac{\partial}{\partial \hat{y}_i} (y_i - \hat{y}_i)^2 = -2(y_i - \hat{y}_i) $
一个密切相关的变体是平均绝对误差(MAE),$ \frac{1}{N}\sum|y_i - \hat{y}_i| $,它对离群值更具鲁棒性,但在零点处梯度不平滑。Huber 损失结合了两者:对小误差表现得像 MSE,对大误差表现得像 MAE。
交叉熵损失
交叉熵损失是分类任务的标准选择。它衡量预测概率分布与真实标签分布之间的差异。
二元交叉熵
对于具有预测概率 $ p $ 和真实标签 $ y \in \{0, 1\} $ 的二元分类:
- $ L_{\text{BCE}} = -\frac{1}{N}\sum_{i=1}^{N}\bigl[y_i \log p_i + (1 - y_i)\log(1 - p_i)\bigr] $
当预测概率与真实标签完全匹配时($ y = 1 $ 时 $ p = 1 $,$ y = 0 $ 时 $ p = 0 $),此损失最小化。
多类交叉熵
对于具有 $ C $ 个类别的多类分类和预测概率向量 $ \hat{\mathbf{y}} $:
- $ L_{\text{CE}} = -\frac{1}{N}\sum_{i=1}^{N}\sum_{c=1}^{C} y_{i,c} \log \hat{y}_{i,c} $
当真实标签采用 one-hot 编码时,只有对应于正确类别的项保留下来。
合页损失
合页损失(hinge loss)与支持向量机(SVM)和最大间隔分类器相关。对于具有标签 $ y \in \{-1, +1\} $ 和模型原始输出 $ s $ 的二元分类问题:
- $ L_{\text{hinge}} = \frac{1}{N}\sum_{i=1}^{N}\max(0,\; 1 - y_i \, s_i) $
当预测具有正确符号且间隔至少为 1 时,合页损失为零;否则线性增加。由于在合页点处不可微,因此使用次梯度方法进行优化。
其他常见的损失函数
| 损失 | 公式 | 典型用途 |
|---|---|---|
| Huber | $ \begin{cases}\tfrac{1}{2}(y-\hat{y})^2 & |y-\hat{y}|\leq\delta \\ \delta(|y-\hat{y}|-\tfrac{\delta}{2}) & \text{otherwise}\end{cases} $ | 鲁棒回归 |
| KL 散度 | $ \sum_c p_c \log\frac{p_c}{q_c} $ | 分布匹配,VAE |
| Focal 损失 | $ -\alpha(1-p_t)^\gamma \log p_t $ | 不平衡分类 |
| CTC 损失 | 在对齐上的动态规划 | 语音识别、OCR |
| 三元组损失 | $ \max(0,\; d(a,p) - d(a,n) + m) $ | 度量学习、人脸验证 |
选择合适的损失函数
合适的损失函数取决于具体任务:
- 回归 —— MSE 是默认选择;如果担心离群值,可切换到 MAE 或 Huber。
- 二元分类 —— 使用 sigmoid 输出的二元交叉熵。
- 多类分类 —— 使用 softmax 输出的多类交叉熵。
- 多标签分类 —— 对每个标签独立应用二元交叉熵。
- 排序或检索 —— 对比损失、三元组损失或 listwise 排序损失。
一个重要的考虑因素是损失是否已校准——即最小化它是否能产生校准良好的预测概率。交叉熵是一种适当的评分规则,能产生校准的概率,而合页损失则不能。
正则化项
在实际应用中,总目标通常包含一个正则化项,用于惩罚模型的复杂度:
- $ J(\theta) = L(\theta) + \lambda \, R(\theta) $
其中 $ \lambda $ 控制正则化的强度。常见选择包括 L2 正则化($ R = \|\theta\|_2^2 $)和 L1 正则化($ R = \|\theta\|_1 $)。详见 Overfitting and Regularization。
参见
- Gradient Descent
- Neural Networks
- Backpropagation
- Overfitting and Regularization
- Stochastic Gradient Descent
参考文献
- Bishop, C. M. (2006). Pattern Recognition and Machine Learning,第 1 章。Springer。
- Goodfellow, I., Bengio, Y. 与 Courville, A. (2016). Deep Learning,第 6 章与第 8 章。MIT Press。
- Lin, T.-Y. et al. (2017). "Focal Loss for Dense Object Detection". ICCV.
- Murphy, K. P. (2022). Probabilistic Machine Learning: An Introduction. MIT Press.