怎么选?先看任务类型
| 任务 | 输出形式 | 常用损失 |
|---|---|---|
| 回归(预测数值) | 连续实数 | MSE MAE |
| 二分类 | 0 / 1 概率 | BCE Hinge |
| 多分类 | 多类概率 | 交叉熵 |
| 排序 / 对比 | 样本间相对顺序 | Triplet Hinge |
回归损失:MSE 与 MAE
设预测值 ŷ,真实值 y,误差 e = y − ŷ:
均方误差 MSE(Mean Squared Error)
L = (1/n) Σ (y − ŷ)²
平均绝对误差 MAE(Mean Absolute Error)
L = (1/n) Σ |y − ŷ|
区别:MSE 对大误差“惩罚更重”(平方放大),所以更怕异常值,但梯度更稳定;
MAE 对所有误差一视同仁,更鲁棒但接近 0 时梯度恒定、收敛慢。
分类损失:交叉熵
二分类(真实标签 y∈{0,1},预测概率 p∈(0,1)):
二元交叉熵 BCE(Binary Cross-Entropy)
L = −[ y·log(p) + (1−y)·log(1−p) ]
多分类(类别概率向量 ŷ,真实 one-hot 向量 y):
交叉熵 Cross-Entropy
L = − Σ y_c · log(ŷ_c)
交叉熵衡量“预测概率分布”与“真实分布”的差距。预测越准(p→1 且 y=1),损失越接近 0。
实践中常配合 Softmax / Sigmoid 输出概率后使用。
可视化:误差 → 损失曲线
拖动滑块改变“误差 e”,观察不同损失函数如何随误差惩罚。MSE 的曲线是抛物线(大误差陡升),MAE 是 V 形直线。
📈 损失函数曲线(横轴:误差 e = y − ŷ)
竖线表示当前误差 e 对应的位置;圆点表示当前损失值。
小结:怎么挑损失
- 数值预测 → MSE(要惩罚大错)/ MAE(有异常值)
- 是不是某类 → BCE(配 Sigmoid)
- 是哪一类 → 交叉熵(配 Softmax)
- 学“相似/不相似” → Triplet / 对比损失(如人脸识别、检索)
经验:分类任务别直接拿 MSE 当损失(梯度与概率语义不匹配);
回归任务别硬套交叉熵。任务和损失要“配对”。