深度学习_神经网络_损失函数基础

🎯 一、什么是损失函数(Loss Function)

损失函数(Loss Function)用于衡量模型预测值与真实值之间的差距。

它是模型训练中优化器(如 SGD、Adam)调整参数的依据。

👉 简单理解:

  • 模型预测越准 → Loss 越小。
  • 模型预测越差 → Loss 越大。

训练目标就是 让 Loss 最小化 (minimize loss)


🧩 二、回归任务的常见损失函数

回归任务(Regression)目标是预测连续值(如房价、温度、销量等)。最常用的损失函数是:

1️⃣ 均方误差(MSE, Mean Squared Error)------ L2 Loss

💡 定义公式:

L MSE = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 L_{\text{MSE}} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 LMSE=n1i=1∑n(yi−y^i)2

  • y i y_i yi: 真实值
  • y ^ i \hat{y}_i y^i: 模型预测值
  • n n n: 样本数

🧠 含义解释:

计算所有样本预测误差的平方的平均值。平方项让"大误差"惩罚更重,对异常值(outlier)敏感。

特点总结:

优点 缺点
数学性质好(可导、平滑) 对离群点敏感(平方放大误差)
常用于梯度下降训练 不适合有较多异常点的数据

💻 PyTorch 实现:

python 复制代码
import torch
import torch.nn as nn

loss_fn = nn.MSELoss()
y_pred = torch.tensor([2.5, 0.0, 2.1])
y_true = torch.tensor([3.0, -0.5, 2.0])
loss = loss_fn(y_pred, y_true)
print(loss.item())

2️⃣ 平均绝对误差(MAE, Mean Absolute Error)------ L1 Loss

💡 定义公式:

L MAE = 1 n ∑ i = 1 n ∣ y i − y ^ i ∣ L_{\text{MAE}} = \frac{1}{n} \sum_{i=1}^{n} |y_i - \hat{y}_i| LMAE=n1i=1∑n∣yi−y^i∣

🧠 含义解释:

取预测值与真实值的绝对差的平均值。

特点总结:

优点 缺点
对异常值更鲁棒(不受平方放大影响) 不可导点在 0 处(梯度不连续)
更关注整体误差的平衡 收敛速度慢,优化不稳定

💻 PyTorch 实现:

python 复制代码
import torch
import torch.nn as nn

loss_fn = nn.L1Loss()
y_pred = torch.tensor([2.5, 0.0, 2.1])
y_true = torch.tensor([3.0, -0.5, 2.0])
loss = loss_fn(y_pred, y_true)
print(loss.item())

⚖️ L1 vs L2 对比总结:

项目 L1(MAE) L2(MSE)
公式 平均绝对误差 平均平方误差
对异常值敏感度 低(鲁棒)
导数连续性 不连续(0处) 连续、平滑
收敛速度 较慢 较快
常见应用 噪声大、异常点多 噪声小、平滑优化

🔹 在实际应用中,也常用 Huber Loss 作为折中方案(小误差用 L2,大误差用 L1)。


🧠 三、分类任务的常见损失函数

分类任务(Classification)目标是预测类别标签(如猫/狗、0/1、A/B/C 等)。最常用的是 交叉熵损失 (Cross-Entropy Loss)

1️⃣ 交叉熵损失(Cross-Entropy Loss)

💡 定义背景:

交叉熵 (Cross Entropy) 来自信息论,用来衡量两个概率分布之间的差距。

在分类任务中:

  • 模型输出的是 预测概率分布 ( y ^ \hat{y} y^)(通过 Softmax/Sigmoid)
  • 真实标签是 真实分布 ( y y y)(独热编码 one-hot)

💡 数学定义:

对于多分类问题:
L CE = − ∑ i = 1 C y i log ⁡ ( y ^ i ) L_{\text{CE}} = - \sum_{i=1}^{C} y_i \log(\hat{y}_i) LCE=−i=1∑Cyilog(y^i)

  • C C C: 类别数
  • y i y_i yi: 真实标签(one-hot)
  • y ^ i \hat{y}_i y^i: 模型预测概率

在二分类时可简化为:
L BCE = − [ y log ⁡ ( y ^ ) + ( 1 − y ) log ⁡ ( 1 − y ^ ) ] L_{\text{BCE}} = -[y \log(\hat{y}) + (1 - y) \log(1 - \hat{y})] LBCE=−[ylog(y^)+(1−y)log(1−y^)]

🧠 含义解释:

当模型预测的概率越接近真实标签(比如真实为"猫",预测猫=0.99),损失越小。当预测概率偏离真实标签(比如真实为"猫",预测猫=0.1),损失急剧增大。

特点总结:

优点 缺点
对概率输出 (Softmax) 天然匹配 对错误预测惩罚较大
数学性质良好、可导 对于极端预测 (0 或 1) 易产生数值不稳定
可清晰度量分类置信度 需要概率化输出(如 Sigmoid / Softmax)

💻 PyTorch 实现:

(1) 二分类(Binary CrossEntropy)

python 复制代码
import torch
import torch.nn as nn

loss_fn = nn.BCELoss()  # 输出需经过Sigmoid
y_pred = torch.tensor([0.9, 0.2, 0.8])
y_true = torch.tensor([1.0, 0.0, 1.0])
loss = loss_fn(y_pred, y_true)
print(loss.item())

⚠️ 若模型输出未经 Sigmoid,则使用 BCEWithLogitsLoss()(更稳定,内部自带 Sigmoid)。

(2) 多分类(CrossEntropyLoss)

python 复制代码
import torch
import torch.nn as nn

loss_fn = nn.CrossEntropyLoss()
y_pred = torch.tensor([[2.0, 0.5, 0.1], [0.3, 2.1, 0.2]])  # logits
y_true = torch.tensor([0, 1])  # 标签索引
loss = loss_fn(y_pred, y_true)
print(loss.item())

说明:CrossEntropyLoss 内部会自动执行 Softmax。

🔢 举个例子直观理解:

类别 真实标签 y y y 预测概率 (猫/狗) Loss 值
样本 1 猫 (1,0) (0.9, 0.1) 很小(预测准)
样本 2 猫 (1,0) (0.3, 0.7) 较大(预测错)
样本 3 狗 (0,1) (0.4, 0.6) 较小(预测对)

🧮 四、回归 vs 分类的损失函数对比

任务类型 常用损失函数 适用场景 备注
回归 MSE / MAE / Huber 连续数值预测 预测误差的"距离"
分类 Cross-Entropy / BCE 离散标签预测 概率分布差距

🧭 五、扩展:Huber Loss(平衡 L1 与 L2)

KaTeX parse error: Expected 'EOF', got '&' at position 60: ... - \\hat{y})^2 &̲ \\text{if } |y...

当误差小于阈值 δ \delta δ 时使用平方误差(平滑优化),当误差大于 δ \delta δ 时使用绝对误差(抗异常)。


📌 总结一句话:

  • 回归问题: 衡量预测值与真实值之间的"距离差"。
  • 分类问题: 衡量预测概率分布与真实标签分布之间的"相似度差"。

优化目标:损失越小,模型预测越接近真实。

相关推荐
新知图书14 小时前
智能体与大模型的关系
人工智能·ai agent·智能体·大模型应用开发·大模型应用
金融小师妹14 小时前
AI视角下黄金避风港属性的量化验证:基于2000-2025年历史数据的时序分析
大数据·人工智能·深度学习·1024程序员节
WenGyyyL14 小时前
基于昇腾平台的Qwen大模型推理部署实战:从模型转换到推理(含代码)
人工智能·python·语言模型·nlp·昇腾
Eric.Lee202114 小时前
ultralytics-yolo-webui 项目介绍及使用演示
人工智能·计算机视觉·目标跟踪·yolo目标检测·yolo-webui
AI魔王进化论.14 小时前
Transformer、强化学习融合?解决序列决策优化难题!!!
人工智能·深度学习·transformer
新加坡内哥谈技术14 小时前
如何在追求正确性的过程中,意外让路由匹配性能提升 20,000 倍
人工智能
代码小白的成长14 小时前
Windows: 调试基于千万短视频预训练的视频分类模型(videotag_tsn_lstm)
人工智能·rnn·lstm
北京青翼科技15 小时前
【PCIE044】基于复旦微 JFM7VX690T 的全国产化 FPGA 开发套件
图像处理·人工智能·fpga开发·信号处理·智能硬件
智算菩萨15 小时前
《自动驾驶与大模型融合新趋势:端到端感知-决策一体化架构分析》
人工智能·架构·自动驾驶
8K超高清15 小时前
超高清科技引爆中国电影向“新”力
大数据·运维·服务器·网络·人工智能·科技