# 损失函数
本文介绍 ROM Builder 工具箱中支持的各种损失函数及其计算公式和应用场景。
# 1. L1Loss
L1Loss 是一种常用的损失函数,用于衡量预测值与真实值之间的差异。它的计算方式是将预测值与真实值的差的绝对值求和,然后除以样本数量。
# 2. PoissonNLLLoss
该损失函数基于泊松分布,用于衡量模型预测值与真实计数之间的差异。PoissonNLLLoss 的计算方式是将预测值和真实计数值作为参数传入泊松分布的负对数似然函数中,然后求平均值。
# 3. GaussianNLLLoss
用于真实标签服从高斯分布的负对数似然损失的分类任务,神经网络的输出作为高斯分布的均值和方差。
# 4. KLDivLoss
用于分类任务中计算 input 和 target 之间的 KL 散度 (Kullback–Leibler divergence)。 下式中 p 和 q 分别是两个概率分布,求和符号对所有可能的离散事件进行求和,p(i) 表示真实概率分布中第 i 个事件的概率,q(i) 表示模型预测的概率分布中第 i 个事件的概率。公式中的 log 表示自然对数。
# 5. MSELoss
MSELoss(Mean Squared Error Loss)是深度学习中常用的回归问题损失函数之一。它用于衡量模型预测值与真实值之间的差异,计算方式是预测值与真实值之间差的平方的均值。
# 6. BCEWithLogitsLoss
该损失函数用于分类任务。将 Sigmoid 与 BCELoss 结合,类似于 CrossEntropyLoss()。即输入会经过 Sigmoid 激活函数,将输入变成概率分布的形式。
# 7. HingeEmbeddingLoss
HingeEmbeddingLoss(铰链嵌入损失函数)是一种用于支持向量机(SVM)训练的损失函数。它广泛应用于二分类问题中,鼓励模型将正确的样本与错误的样本分开。
# 8. Smooth L1Loss
Smooth L1 Loss(平滑 L1 损失函数)是一种用于回归问题的损失函数,广泛应用于目标检测、人脸识别等计算机视觉任务中。它是对均方误差(MSE)损失函数的改进,能够缓解 MSE 损失函数中易受异常值影响的问题。
# 9. Huber Loss
Huber Loss(Huber 损失函数)是一种用于回归问题的损失函数,它能够同时兼顾均方误差(MSE)损失函数和绝对值损失函数的优点。Huber Loss 在 MSE 损失函数和绝对值损失函数之间进行平滑转换,具有一定的鲁棒性。
# 10. MultiLabelSoftMarginLoss
MultiLabelSoftMarginLoss(多标签软边缘损失函数)是一种用于多标签分类任务的损失函数。它适用于每个样本可以属于多个类别的情况,并且在训练过程中对每个类别的预测概率进行独立估计。