机器学习——损失函数
回归任务
MSE均方误差
MSE=1n∑i=1n(yi−y^i)2MSE = \frac{1}{n}\sum_{i=1}^{n}(y_i - \hat{y}_i)^2MSE=n1∑i=1n(yi−y^i)2
解释:计算预测值与真实值之差的平方的平均值。
特点:对异常值非常敏感,因为误差被平方放大了。一个巨大的误差会使整个损失变得很大。
导数 (2(yi−y^i)2(y_i - \hat{y}_i)2(yi−y^i)) 会随着误差增大而线性增大,导致梯度很大,可能使训练不稳定。
适用场景:大部分回归问题,当数据中异常值不多时效果很好。
MAE均值绝对误差
MAE=1n∑i=1n∣yi−y^i∣MAE = \frac{1}{n}\sum_{i=1}^{n}|y_i - \hat{y}_i|MAE=n1∑i=1n∣yi−y^i∣
解释:计算预测值与真实值之差的绝对值的平均值。
特点:对异常值不如MSE敏感,鲁棒性更好。
导数要么是+1,要么是-1,梯度大小是恒定的,即使在误差很大时也能保持稳定的更新。
适用场景:当数据中存在可能异常值时,希望模型不受其过分影响。
Huber Loss
Lδ(y,y^)={12(y−y^)2for ∣y−y^∣≤δ δ∣y−y^∣−12δ2otherwiseL_\delta(y, \hat{y}) = \begin{cases} \frac{1}{2}(y - \hat{y})^2 & \text{for } |y - \hat{y}| \le \delta \ \delta |y - \hat{y}| - \frac{1}{2}\delta^2 & \text{otherwise} \end{cases}Lδ(y,y^)={21(y−y^)2for ∣y−y^∣≤δ δ∣y−y^∣−21δ2otherwise
解释:MSE和MAE的混合体。它设定一个阈值 δ\deltaδ。当误差小于 δ\deltaδ 时,表现为MSE(平滑,利于收敛);当误差大于 δ\deltaδ 时,表现为MAE(线性,抗干扰)。
特点:兼具MSE和MAE的优点,既对小误差敏感(利于优化),又对异常值鲁棒。但需要手动调整超参数 δ\deltaδ。
适用场景:数据中既有需要精细调整的部分,又可能存在异常值。
分类任务
交叉熵损失 - Cross-Entropy Loss
核心思想:比较模型预测的概率分布与真实的概率分布之间的差异。
二分类交叉熵损失
L=−1n∑i=1n[yi⋅log(y^i)+(1−yi)⋅log(1−y^i)]L = -\frac{1}{n}\sum_{i=1}^{n}[y_i \cdot log(\hat{y}_i) + (1 - y_i) \cdot log(1 - \hat{y}_i)]L=−n1∑i=1n[yi⋅log(y^i)+(1−yi)⋅log(1−y^i)]
适用场景:二分类问题,输出层通常使用Sigmoid激活函数。
多分类交叉熵损失:
L=−1n∑i=1n∑c=1Cyi,c⋅log(y^i,c)L = -\frac{1}{n}\sum_{i=1}^{n}\sum_{c=1}^{C}y_{i,c} \cdot log(\hat{y}_{i,c})L=−n1∑i=1n∑c=1Cyi,c⋅log(y^i,c)
其中,CCC 是类别总数。这通常是 Categorical Cross-Entropy(需要真实标签是one-hot编码)或 Sparse Categorical Cross-Entropy(真实标签是整数索引)。
适用场景:多分类问题,输出层通常使用Softmax激活函数。
特点:分类任务中最常用、最有效的损失函数。当预测概率与真实标签完全一致时,损失达到最小值。
Hinge Loss
L=1n∑i=1nmax(0,1−yi⋅y^i)L = \frac{1}{n}\sum_{i=1}^{n}max(0, 1 - y_i \cdot \hat{y}_i)L=n1∑i=1nmax(0,1−yi⋅y^i),其中 yiy_iyi 是真实标签(+1或-1),y^i\hat{y}_iy^i 是模型输出的决策函数值(不是概率)。
特点:试图找到一个“最大间隔”的决策边界,不仅要求分类正确,还要求有足够的置信度。
适用场景:主要用于支持向量机。
任务划分
选择策略:
默认选择:对于回归用MSE,对于分类用交叉熵。这通常是很好的起点。
关注异常值:如果数据可能有异常值,回归任务中考虑MAE或Huber Loss。
任务目标:如果你的目标不是预测精确值,而是排序(如推荐系统),可能会选择基于排序的损失函数(如Pairwise Hinge Loss)。
任务类型 | 问题描述 | 常用损失函数 | 输出层激活函数 |
---|---|---|---|
回归 | 预测房价、温度等连续值 | 均方误差(MSE)、平均绝对误差(MAE)、Huber损失 | Linear (无激活函数) |
二分类 | 判断垃圾邮件、疾病诊断 | 二分类交叉熵(Binary Cross-Entropy) | Sigmoid |
多分类 | 手写数字识别、图像分类 | 多分类交叉熵(Categorical Cross-Entropy) | Softmax |
多标签分类 | 一张图片有多个标签 | 二分类交叉熵(Binary Cross-Entropy) | Sigmoid (每个节点独立) |