L1 损失(平均绝对误差 MAE)
数学公式
单个样本:
批次平均:
PyTorch API
import torch
import torch.nn as nn
# 1. 类形式(推荐)
criterion = nn.L1Loss()
loss = criterion(pred, target)
# 2. 函数形式
loss = torch.nn.functional.l1_loss(pred, target)
使用场景
-
回归任务、数据含较多异常值/离群点(鲁棒性强)
-
图像去噪、超分、预测波动较大的连续值
-
缺点:梯度恒定,极值点处梯度不连续,收敛慢
L2 损失(均方误差 MSE)
数学公式
单个样本:
批次平均:
PyTorch API
criterion = nn.MSELoss()
loss = criterion(pred, target)
# 函数形式
loss = torch.nn.functional.mse_loss(pred, target)
使用场景
-
标准回归任务(房价预测、流量预测、坐标回归)
-
误差越大惩罚越重,对离群点敏感
-
梯度平滑,收敛速度快
Smooth L1 损失(平滑L1)
结合 L1、L2 优点,广泛用于目标检测。
数学公式
PyTorch API
criterion = nn.SmoothL1Loss()
loss = criterion(pred, target)
# 函数形式
loss = torch.nn.functional.smooth_l1_loss(pred, target)
使用场景
-
目标检测:边框回归(YOLO、Faster R-CNN)
-
误差小时用 MSE、误差大时用 L1,兼顾收敛与鲁棒性
二元交叉熵
BCE (Binary Cross Entropy)
数学公式
单个样本:
(Sigmoid 输出),
PyTorch API
# 输入:pred 经过 sigmoid,target 是 0/1 标签
criterion = nn.BCELoss()
loss = criterion(torch.sigmoid(pred), target)
# 函数形式
loss = torch.nn.functional.binary_cross_entropy(torch.sigmoid(pred), target)
使用场景
-
标准单标签二分类(正负样本区分)
-
图像二分类、判断是否存在目标、简单二分类任务
BCEWithLogitsLoss
(BCE + Sigmoid 合并)
内部集成 Sigmoid,数值更稳定。
数学公式
等价于先 Sigmoid 再 BCE:
输入线性调整后的数据
PyTorch API
# 无需手动加 sigmoid!内部自带
criterion = nn.BCEWithLogitsLoss()
loss = criterion(pred_logits, target) # pred_logits: 网络原始输出
使用场景
-
二分类首选(数值稳定性 > 手动 Sigmoid + BCELoss)
-
多标签分类、语义分割(逐像素二分类)、样本不均衡二分类
-
支持
pos_weight解决正负样本不均衡
交叉熵损失 CrossEntropyLoss
多分类标准损失,CrossEntropyLoss = LogSoftmax + NLLLoss
数学公式
设模型原始输出 ,真实类别为
:
批次平均:
PyTorch API
# 输入:pred_logits(网络原始输出),target(类别索引,shape=[N])
criterion = nn.CrossEntropyLoss()
loss = criterion(pred_logits, target)
使用场景
-
单标签多分类(图像分类、文本分类、手写数字识别)
-
网络最后一层不额外加 Softmax,函数内部自动计算
DiceLoss Dice损失(分割不均衡)
公式
PyTorch(无原生层,自定义)
class DiceLoss(nn.Module):
def __init__(self, smooth=1):
super().__init__()
self.smooth = smooth
def forward(self, pred, target):
intersection = (pred * target).sum()
union = pred.sum() + target.sum()
dice = (2.*intersection + self.smooth)/(union + self.smooth)
return 1 - dice
使用场景
医学图像分割(前景像素极少,类别极度不均衡)
FocalLoss 聚焦损失(分类/分割不均衡)
核心公式(基于CE改进)
降低易分样本权重,聚焦难样本
使用场景
-
目标检测:前景框极少、背景海量
-
小目标分割、不均衡多分类