模型测试指南
介绍
在训练和评估模型之后,就该进行测试了。模型测试涉及评估模型在真实场景中的表现。测试会考虑准确性、可靠性、公平性以及模型决策的可理解性等因素。其目的是确保模型按预期执行,提供预期的结果,并符合你应用项目的整体目标。
Watch: How to Test Machine Learning Models | Avoid Data Leakage in Computer Vision 🚀
模型测试与模型评估非常相似,但它们是计算机视觉项目中的两个不同步骤。模型评估涉及使用指标和图表来评估模型的准确性。另一方面,模型测试用于检查模型学到的行为是否符合预期。在本指南中,我们将探讨测试计算机视觉模型的策略。
模型测试与模型评估对比
首先,让我们通过一个例子来理解模型评估和测试之间的区别。
假设你已经训练了一个识别猫和狗的计算机视觉模型,并希望将其部署在宠物店中以监控动物。在模型评估阶段,你使用标记好的数据集来计算准确率、精确率、召回率和 F1 分数等指标。例如,模型在区分特定数据集中的猫和狗时可能具有 98% 的准确率。
评估完成后,你使用宠物店的图像测试模型,以查看它在更复杂和真实的条件下识别猫和狗的效果如何。你检查它是否能正确标记正在移动、处于不同光照条件或被玩具或家具等物体部分遮挡的猫和狗。模型测试用于检查模型在受控评估环境之外的行为是否符合预期。
模型测试的准备工作
计算机视觉模型通过检测模式、进行预测并评估其性能来从数据集中学习。这些数据集通常分为训练集和测试集,以模拟真实条件。训练数据用于指导模型,而测试数据用于验证其准确性。
在测试模型之前,请记住以下两点:
- 真实代表性: 未经训练的测试数据应类似于模型部署后需要处理的数据。这有助于获取对模型能力的真实理解。
- 足够的大小: 测试数据集的大小需要足够大,才能为评估模型的表现提供可靠的见解。
测试你的计算机视觉模型
以下是测试你的计算机视觉模型并了解其性能的关键步骤。
- 运行预测: 使用模型对测试数据集进行预测。
- 比较预测: 检查模型的预测结果与实际标签(Ground Truth)的匹配程度。
- 计算性能指标: 计算指标,如准确率、精确率、召回率和 F1 分数,以了解模型的优势和不足。测试重点在于这些指标如何反映真实世界的性能。
- 结果可视化: 创建混淆矩阵和 ROC 曲线等可视化辅助工具。这些工具有助于你找出模型在实际应用中表现不佳的具体领域。
接下来,可以分析测试结果:
- 错误分类图像: 识别并查看模型错误分类的图像,以了解出错的原因。
- 错误分析: 进行深入的错误分析,以了解错误类型(例如误报与漏报)及其潜在原因。
- 偏差和公平性: 检查模型预测中的任何偏差。确保模型在不同数据子集中的表现同样出色,特别是当数据包含种族、性别或年龄等敏感属性时。
测试你的 YOLO26 模型
要测试你的 YOLO26 模型,你可以使用验证模式。这是一种了解模型优势和需要改进之处的直接方法。此外,你需要正确格式化你的测试数据集以适用于 YOLO26。有关如何使用验证模式的更多详情,请查看模型验证文档页面。
使用 YOLO26 对多个测试图像进行预测
如果你想在存放在文件夹中的多个图像上测试已训练的 YOLO26 模型,可以一次性轻松完成。你可能不需要使用通常用于评估模型在验证集上的性能并提供详细指标的验证模式,而只是想查看测试集中所有图像的预测结果。为此,你可以使用预测模式。
验证模式与预测模式的区别
- 验证模式: 用于通过将预测结果与已知标签(Ground Truth)进行比较来评估模型性能。它提供准确率、精确率、召回率和 F1 分数等详细指标。
- 预测模式: 用于在新的、未见过的数据上运行模型以生成预测。它不提供详细的性能指标,但可以让你看到模型在真实图像上的表现。
在没有自定义训练的情况下运行 YOLO26 预测
如果你有兴趣测试基础的 YOLO26 模型,以了解它是否可以在没有自定义训练的情况下用于你的应用,你可以使用预测模式。虽然模型是在 COCO 等数据集上预训练的,但在你自己的数据集上运行预测可以让你快速了解它在你特定场景下的表现。
过拟合与欠拟合在机器学习中的应用
在测试机器学习模型时,特别是在计算机视觉中,注意过拟合和欠拟合非常重要。这些问题会显著影响模型在处理新数据时的表现。
过拟合
当你的模型对训练数据学习得太好,包括那些无法泛化到新数据的噪声和细节时,就会发生过拟合。在计算机视觉中,这意味着你的模型在训练图像上表现出色,但在新图像上可能会遇到困难。
过拟合的迹象
- 高训练准确率,低验证准确率: 如果你的模型在训练数据上表现非常好,但在验证数据或测试数据上表现较差,则很可能发生了过拟合。
- 目视检查: 有时,如果你的模型对图像中的微小变化或无关紧要的细节过于敏感,你就能发现过拟合。
欠拟合
当你的模型无法捕捉到数据中的潜在模式时,就会发生欠拟合。在计算机视觉中,欠拟合的模型甚至可能无法正确识别训练图像中的物体。
欠拟合的迹象
- 低训练准确率: 如果你的模型无法在训练集上达到高准确率,则可能发生了欠拟合。
- 视觉错误分类: 持续无法识别明显的特征或物体暗示着欠拟合。
平衡过拟合与欠拟合
关键在于找到过拟合和欠拟合之间的平衡。理想情况下,模型在训练集和验证集上都应表现良好。定期通过指标和目视检查监控模型性能,并应用正确的策略,可以帮助你获得最佳结果。
计算机视觉中的数据泄漏及其避免方法
在测试模型时,需要注意的一个重要事项是数据泄漏。数据泄漏是指来自训练数据集之外的信息意外地被用于训练模型。发生数据泄漏时,模型在训练期间可能看起来非常准确,但在面对新的、未见过的数据时却表现不佳。
数据泄漏的原因
数据泄漏可能难以察觉,通常源于训练数据中的隐藏偏差。以下是计算机视觉中常见的几种泄漏方式:
- 相机偏差: 不同的角度、光照、阴影和相机运动可能会引入不想要的模式。
- 叠加层偏差: 图像中的徽标、时间戳或其他叠加层可能会误导模型。
- 字体和物体偏差: 频繁出现在特定类别中的特定字体或物体可能会扭曲模型的学习。
- 空间偏差: 前景-背景、边界框分布和物体位置的不平衡可能会影响训练。
- 标签和领域偏差: 不正确的标签或数据类型的偏移可能导致泄漏。
检测数据泄漏
要发现数据泄漏,你可以:
- 检查性能: 如果模型的测试结果好得惊人,则可能存在泄漏。
- 查看特征重要性: 如果某个特征比其他特征重要得多,这可能表明存在泄漏。
- 目视检查: 仔细检查模型的决策在直觉上是否合理。
- 验证数据分离: 确保数据在任何处理之前都已正确划分。
避免数据泄漏
为防止数据泄漏,请使用来自不同相机和环境的图像或视频组成的多样化数据集。仔细审查你的数据,检查是否存在隐藏偏差,例如所有正样本是否都是在一天中的特定时间拍摄的。避免数据泄漏将有助于使你的计算机视觉模型在真实世界中更加可靠和有效。
模型测试之后做什么
模型测试后,接下来的步骤取决于测试结果。如果模型表现良好,你可以将其部署到实际环境中。如果结果不尽如人意,你需要进行改进。这可能涉及分析错误、收集更多数据、提高数据质量、调整超参数并重新训练模型。
加入 AI 讨论
成为计算机视觉爱好者社区的一员可以帮助你更有效地解决问题和学习。以下是一些联系、寻求帮助和分享想法的方式。
社区资源
- GitHub Issues: 浏览 YOLO26 GitHub 仓库 并使用 Issues 选项卡提问、报告错误并建议新功能。社区和维护者非常活跃,随时准备提供帮助。
- Ultralytics Discord 服务器: 加入 Ultralytics Discord 服务器 与其他用户和开发者交流、获取支持并分享你的经验。
官方文档
- Ultralytics YOLO26 文档: 查看 官方 YOLO26 文档 获取有关各种计算机视觉项目的详细指南和实用技巧。
这些资源将帮助你应对挑战,并保持对计算机视觉社区最新趋势和实践的了解。
总结
构建值得信赖的计算机视觉模型依赖于严格的模型测试。通过使用未经训练的数据测试模型,我们可以对其进行分析并发现过拟合和数据泄漏等弱点。在部署前解决这些问题有助于模型在实际应用中表现良好。请记住,模型测试与模型评估同样重要,都是保证模型长期成功和有效性的关键。
常见问题 (FAQ)
计算机视觉中模型评估和模型测试的主要区别是什么?
模型评估和模型测试是计算机视觉项目中的不同步骤。模型评估涉及使用标注数据集来计算准确率、精确率、召回率和 F1 分数等指标,从而深入了解模型在受控数据集上的性能。另一方面,模型测试通过将模型应用于新的、未见过的数据来评估其在真实场景中的性能,从而确保模型学到的行为在评估环境之外也符合预期。有关详细指南,请参考计算机视觉项目的步骤。
我该如何测试我的 Ultralytics YOLO26 模型在多个图像上的表现?
要测试你的 Ultralytics YOLO26 模型在多个图像上的表现,你可以使用预测模式。此模式允许你在新的、未见过的数据上运行模型以生成预测,而无需提供详细指标。这非常适合在存储于文件夹中的较大图像集上进行真实性能测试。如需评估性能指标,请改用验证模式。
如果我的计算机视觉模型出现过拟合或欠拟合迹象,我该怎么办?
解决过拟合的方法:
- 使用 dropout 等正则化技术。
- 增加训练数据集的大小。
- 简化模型架构。
解决欠拟合的方法:
- 使用更复杂的模型。
- 提供更多相关特征。
- 增加训练迭代次数或轮数。
查看错误分类的图像,执行彻底的错误分析,并定期跟踪性能指标以保持平衡。欲了解更多有关这些概念的信息,请探索我们的过拟合与欠拟合章节。
我该如何检测并避免计算机视觉中的数据泄漏?
检测数据泄漏的方法:
- 验证测试性能是否异常过高。
- 检查特征重要性是否有意外见解。
- 凭直觉审视模型的决策。
- 确保处理前的数据划分正确。
避免数据泄漏的方法:
- 使用涵盖多种环境的多样化数据集。
- 仔细检查数据是否存在隐藏偏差。
- 确保训练集和测试集之间没有重叠信息。
有关预防数据泄漏的详细策略,请参阅我们关于计算机视觉中的数据泄漏的章节。
测试我的计算机视觉模型后我应该采取哪些步骤?
测试后,如果模型性能达到项目目标,则继续进行部署。如果结果不尽如人意,请考虑:
- 错误分析。
- 收集更多样化和高质量的数据。
- 超参数调优。
- 重新训练模型。
从 模型测试与模型评估 部分获取见解,以优化和增强模型在实际应用中的有效性。
我该如何在不进行自定义训练的情况下运行 YOLO26 预测?
你可以使用预训练的 YOLO26 模型在你的数据集上运行预测,以查看它是否适合你的应用需求。利用 预测模式 快速了解性能结果,无需深入进行自定义训练。