🎯 一、分类任务的损失函数

✅ 1. 多分类的交叉熵损失函数(Multi-class Cross-Entropy Loss)

🔍 通俗解释:

想象你在考试中选答案,老师根据你“猜对”的程度来打分。
如果你完全猜对了正确答案,得满分;
如果你猜错了,得分越低;
如果你把正确答案当成概率很低的选项,扣分更多。

📌 数学公式:

Loss=−∑�=1���log⁡(�^�)Loss=−i=1∑C​yi​log(y^​i​)

  • ��yi​ :真实标签(one-hot 编码),只有一个是 1,其余是 0
  • �^�y^​i​ :模型预测的概率(比如 [0.1, 0.7, 0.2])
  • C:类别总数
✅ 举个例子:

假设一个图像识别任务有 3 类:猫、狗、鸟

表格

真实标签 模型预测概率
狗(即第2类) [0.1, 0.7, 0.2]

那么损失为:

Loss=−[0⋅log⁡(0.1)+1⋅log⁡(0.7)+0⋅log⁡(0.2)]=−log⁡(0.7)≈0.357Loss=−[0⋅log(0.1)+1⋅log(0.7)+0⋅log(0.2)]=−log(0.7)≈0.357

✅ 越接近 1 的预测值,损失越小 → 模型越准!

💡 应用场景:
  • 图像分类(如猫/狗/鸟)
  • 文本分类(如新闻类别)
  • NLP 中的词预测(如 BERT)

✅ 2. 二分类的交叉熵损失函数(Binary Cross-Entropy Loss)

🔍 通俗解释:

就像判断一个东西是不是“好”或“坏”。
如果它是“好”,但你预测它是“坏”,那你就错了,惩罚大;
如果你是“半信半疑”(预测 0.5),说明你没把握,也得罚。

📌 数学公式:

Loss=−[�log⁡(�^)+(1−�)log⁡(1−�^)]Loss=−[ylog(y^​)+(1−y)log(1−y^​)]

  • �y :真实标签(0 或 1)
  • �^y^​ :模型输出的概率(如 0.8 表示“是正类的可能性是 80%”)
✅ 举个例子:

判断一封邮件是否是垃圾邮件:

表格

真实标签 模型预测概率
是垃圾邮件(y=1) �^=0.9y^​=0.9

损失为:

Loss=−[1⋅log⁡(0.9)+(1−1)⋅log⁡(1−0.9)]=−log⁡(0.9)≈0.105Loss=−[1⋅log(0.9)+(1−1)⋅log(1−0.9)]=−log(0.9)≈0.105

如果模型预测是 0.1(认为不是垃圾邮件),则:

Loss=−[1⋅log⁡(0.1)]=−log⁡(0.1)=2.302(惩罚很大!)Loss=−[1⋅log(0.1)]=−log(0.1)=2.302(惩罚很大!)

✅ 所以模型会尽量让正确的类别概率接近 1。

💡 应用场景:
  • 垃圾邮件检测
  • 疾病诊断(是否有病)
  • 情感分析(正面 or 负面)

🎯 二、回归任务的损失函数

回归任务的目标是预测一个连续数值,比如房价、温度、年龄等。

✅ 1. MAE(Mean Absolute Error)平均绝对误差

🔍 通俗解释:

你猜一个房子价格,实际是 100 万,你猜了 110 万,差了 10 万;
另一个人猜了 90 万,也差了 10 万。
不管高估还是低估,都算“错 10 万”。

📌 公式:

MAE=1�∑�=1�∣��−�^�∣MAE=n1​i=1∑n​∣yi​−y^​i​∣

✅ 举个例子:

表格

实际价格(y) 预测价格(ŷ) 绝对误差
100 110 10
100 90 10
100 105 5

MAE=10+10+53=8.33MAE=310+10+5​=8.33

✅ 优点:对异常值不敏感(不会被极端错误拉大)


✅ 2. MSE(Mean Squared Error)均方误差

🔍 通俗解释:

和 MAE 类似,但“犯大错”会被狠狠惩罚!
比如你猜 100 万,实际是 10 万,差了 90 万,平方后变成 8100 万,非常大!

📌 公式:

MSE=1�∑�=1�(��−�^�)2MSE=n1​i=1∑n​(yi​−y^​i​)2

✅ 举个例子:

表格

实际价格(y) 预测价格(ŷ) 平方误差
100 110 100
100 90 100
100 105 25

MSE=100+100+253=75MSE=3100+100+25​=75

✅ 优点:能让模型更关注“大错误”,适合需要高精度的任务


✅ 3. Smooth L1 损失函数(Huber Loss)

🔍 通俗解释:

是 MAE 和 MSE 的“折中方案”:

  • 当误差小时,像 MSE(平滑梯度)
  • 当误差大时,像 MAE(避免爆炸)
📌 公式:

SmoothL1(�)={0.5�2if ∣�∣﹤1∣�∣−0.5otherwiseSmoothL1(x)={0.5x2∣x∣−0.5​if ∣x∣﹤1otherwise​

✅ 举个例子:

误差为 0.5 → 使用 0.5×0.52=0.1250.5×0.52=0.125
误差为 2 → 使用 2−0.5=1.52−0.5=1.5

✅ 优点:既不会对小误差太敏感,也不会对大误差过度惩罚

💡 应用场景:
  • 目标检测(YOLO, Faster R-CNN)
  • 物体跟踪
  • 任何存在噪声或异常值的回归任务

🧩 总结对比表

表格

损失函数 适用任务 特点 例子
多分类交叉熵 分类(多类) 对错分类惩罚明确 图像分类
二分类交叉熵 分类(两类) 输出概率,适合 sigmoid 垃圾邮件检测
MAE 回归 对异常值鲁棒 房价预测
MSE 回归 强调减少大误差 温度预测
Smooth L1 回归 折中方案,稳定训练 目标检测框坐标

📌 记忆口诀

✅ 分类任务用“交叉熵”
✅ 回归任务看“大小”

  • 想稳一点 → 用 MAE
  • 想准一点 → 用 MSE
  • 想又稳又准 → 用 Smooth L1
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐