探索损失函数如何指导模型训练。了解如何使用 Ultralytics YOLO26 最小化 object detection 等任务的误差并优化 AI 性能。
损失函数是指导 人工神经网络 和其他机器学习算法训练的数学指南针。从根本上说,它量化了模型预测输出与 训练数据 中实际“真实标签”之间的误差。您可以将其视为一个评分系统,分数越低表示性能越优异。在训练过程中,主要目标是迭代地最小化此损失值。这种最小化使模型能够调整其内部参数,使其预测更接近真实情况,这一过程由 Adam 或 随机梯度下降 (SGD) 等 优化算法 驱动。
AI 中的学习机制严重依赖于损失函数产生的反馈循环。模型处理一批数据后,损失函数会计算一个数值误差值,表示预测与目标之间的距离。通过一种称为 反向传播 的技术,系统计算损失相对于每个 模型权重 的梯度。这些梯度充当一张地图,指示为减少误差所需的调整方向和幅度。学习率 随后控制这些更新期间所采取的步长,确保模型收敛到最佳解决方案而不会过冲。
不同的机器学习任务需要特定类型的损失函数。对于目标是预测连续值(如房价)的 回归分析,均方误差 (MSE) 是标准选择。相反,对于涉及分类数据的 图像分类 任务,通常使用 交叉熵损失 来衡量预测概率与真实类别之间的差异。先进的 目标 detect 模型,例如 YOLO26,利用复合损失函数同时优化多个目标,结合了 交并比 (IoU) 等指标用于定位,以及像 Distribution Focal Loss (DFL) 或 Varifocal Loss 这样的专门公式用于类别置信度。
损失函数是几乎所有 AI 应用可靠性背后的引擎,确保系统能够在复杂环境中安全运行。
尽管像Ultralytics Platform这样的高级框架在训练期间会自动处理损失计算,但理解其底层数学对于调试很有用。以下示例使用PyTorch—Ultralytics模型的后端—来计算预测与目标之间的损失。
import torch
import torch.nn as nn
# Define the loss function (CrossEntropyLoss includes Softmax)
loss_fn = nn.CrossEntropyLoss()
# Mock model output (logits) for 3 classes and the true class (Class 0)
# A high score for index 0 indicates a correct prediction
predictions = torch.tensor([[2.5, 0.1, -1.2]])
ground_truth = torch.tensor([0])
# Calculate the numerical loss value
loss = loss_fn(predictions, ground_truth)
print(f"Calculated Loss: {loss.item():.4f}")
区分损失函数与机器学习流程中使用的其他指标非常重要。

开启您的机器学习未来之旅