深圳Yolo 视觉
深圳
立即加入
词汇表

损失函数

了解损失函数在机器学习中的作用、类型、重要性以及现实世界中的人工智能应用,如YOLO 和物体检测。

损失函数,通常被称为成本函数或目标函数,是现代机器学习(ML)的数学核心。 现代机器学习(ML)深度学习(DL)系统的数学核心。它量化了 模型的预测输出与训练数据中提供的实际地面实况之间的差异。 训练数据之间的差异。从本质上讲,损失函数 计算出一个数值,代表模型在任何给定时刻的 "误差"。 值高表示性能差,而值低则表示预测结果接近目标。模型训练阶段的主要 在模型训练阶段,主要目标是将这一数值最小化。 在模型训练阶段,主要目标是反复使这个值最小化,从而引导神经网络达到更高的精度。

学习机制

人工智能的学习过程是由损失函数提供的反馈回路驱动的。当 模型处理一批数据时,会立即利用损失函数将预测结果与正确标签进行比较。 使用损失函数。计算出的误差不仅仅是一个分数,更是一个用于改进的信号。

计算出损失后,一个名为 反向传播确定损失的梯度 的梯度。一个 优化算法,如 随机梯度下降算法(SGDAdam 优化器优化算法会使用梯度信息来调整内部模型权重。 信息来调整内部模型权重。 这些微小的调整由特定的 学习率控制,确保模型逐渐收敛 到损失最小的最佳状态。

常见损失函数类型

不同的 计算机视觉任务 需要不同的数学公式来有效测量误差。

  • 平均平方误差 (MSE):主要用于 该函数计算估计值与实际值之间的 估计值与实际值之间的平均平方差。在预测连续 数值数据(如房价或坐标)时非常有用。
  • 交叉熵损失:这是图像分类问题的标准损失函数。 图像分类问题的标准损失函数。它衡量 它能有效地对高置信度的错误预测进行惩罚,对于在 0 和 1 之间的概率值的分类模型的训练至关重要。 有效地惩罚了高置信度的错误预测,这对于在以下数据集上训练模型至关重要 ImageNet.
  • 焦点丢失:旨在解决分级不平衡问题、 Focal Loss对标准的 交叉熵损失(cross-entropy loss)的调制项,以便将学习重点放在classify 分类的示例上。这在 物体检测中尤为重要。 超过感兴趣的物体。
  • IoU 损失:IoU 的变体 交集与联合(IoU)的变体,如IoUIoU 对边界框回归至关重要。它们测量的是预测框与 的重叠度。高性能模型如 Ultralytics YOLO11等高性能模型利用这些复杂的损失 函数来实现精确的目标定位。
  • 骰子损失:广泛应用于 该函数 度量两个样本之间的重叠度,在像素分类任务中对类别不平衡具有特别的鲁棒性。 分类任务中的类不平衡问题。

实际应用

几乎每一个成功的人工智能应用背后都有损失功能在运作,以确保安全和可靠。 可靠性。

  1. 自动化制造:在工业环境中、 制造业中的人工智能依赖于缺陷 缺陷检测系统。损失函数可帮助模型学习完美产品与缺陷产品之间的细微视觉差异。 缺陷产品之间的细微视觉差异。在对质量检测数据集进行训练时,通过最小化损失 通过在质量检测数据集的训练过程中将损失降到最低,系统就能学会高精度地标记装配线上的异常情况,从而减少浪费。
  2. 医疗诊断:在医疗图像分析领域 医学图像分析领域,像 U-Net 等模型利用骰子损失或加权交叉熵来 识别病理。例如,在脑肿瘤检测数据集上进行训练时 脑肿瘤检测数据集进行训练时,如果模型漏检了癌细胞,损失函数 函数,如果模型漏掉了癌变像素,就会受到严重惩罚,从而引导模型从健康组织中准确地segment 肿瘤,这对医疗分析至关重要。 健康组织,这对于 人工智能在医疗保健工作流程中的应用至关重要。

Python 示例:监控损失

在使用高级框架时,损失的计算通常是自动进行的。下面的示例演示了 训练YOLO11 模型时,损失函数是自动选择和计算的,以优化性能。训练循环 训练循环会在每次计时后打印损失值(盒损失、类损失等)。

from ultralytics import YOLO

# Load the YOLO11 nano model
model = YOLO("yolo11n.pt")

# Train the model on the COCO8 dataset
# The loss functions (IoU, DFL, Cls) are automatically applied and minimized
results = model.train(data="coco8.yaml", epochs=3, imgsz=640)

# Loss metrics are recorded in the results object
print("Final Box Loss:", results.results_dict.get("train/box_loss"))

与相关概念的区别

要全面了解训练管道,最好将损失函数与其他指标和组件区分开来。 的组成部分。

  • 损失函数与评估指标:虽然两者都能衡量性能,但服务于不同的阶段。 损失函数是可微分的,训练过程中用于更新权重(如对数损失)。 评价指标准确度精确度平均精度(mAP 等评估指标以人类可读的术语来解释模型的表现。一个模型可以有效地 如果损失函数与评估指标不匹配,模型可以有效地最小化损失,但准确率仍然很低。
  • 损失函数与正则化:损失函数将模型导向正确答案、 而 正则化技术 (如 L1、L2 或 Dropout)被添加到损失方程中,以防止过度拟合。 过度拟合。正则化对过于复杂的 模型,确保它们能很好地泛化到新的、未见过的 测试数据
  • 损失函数与优化:损失函数定义了目标(最小化 误差),而优化算法则定义了如何达到这一目标(通过梯度更新权重)。 您可以在 PyTorch 文档中探索各种优化器。

加入Ultralytics 社区

加入人工智能的未来。与全球创新者联系、协作和共同成长

立即加入