术语表

交叉验证

了解交叉验证在机器学习中的强大作用,以提高模型准确性、防止过度拟合并确保性能稳定。

使用Ultralytics HUB 对YOLO 模型进行简单培训

了解更多

交叉验证是一种统计方法,用于评估机器学习(ML)模型的性能和泛化能力。交叉验证不是将数据一次分成训练集和测试集,而是系统地将数据分成多个子集或 "折叠"。模型在一些折叠集上进行训练,然后在剩余的折叠集上进行测试,这个过程会重复多次,每次测试都使用不同的折叠集。与单一的训练-测试分割相比,这种方法能更准确地估计模型在未见数据上的表现,有助于防止过拟合等问题。

交叉验证的工作原理

最常见的交叉验证类型是 K 折交叉验证。以下是该过程的简化分解:

  1. 洗数据集:随机洗数据集,确保数据点的分布没有固有的顺序偏差。
  2. 拆分成褶皱将数据集分成大小相等(或接近相等)的 "K "个折叠。K 的常见选择是 5 或 10。
  3. 迭代训练和验证:
    • 选择一个折叠作为验证数据
    • 在剩余的 K-1 个折叠(训练数据)上训练模型。
    • 在保留的验证折叠上评估模型的性能(如准确性)。
    • 重复此过程 K 次,将每个折叠作为验证集精确使用一次。
  4. 平均性能:计算每次迭代所得性能分数的平均值。这个平均分可以更可靠地估计模型的泛化性能。

Scikit-learn等流行库提供了各种交叉验证技术的高效实现。

为什么要使用交叉验证?

交叉验证是模型评估的一项基本技术,原因有几个:

  • 可靠的性能估计:通过对多个分割结果进行平均,与单一的训练/验证分割相比,它对模型在新数据上性能的估计偏差更小。
  • 高效的数据使用:它允许在不同的迭代中使用几乎所有的数据进行训练和验证,这对较小的数据集尤其有用。
  • 模型选择和调整:它对于比较不同模型或调整超参数至关重要,有助于选择泛化效果最好的配置。
  • 检测过拟合/欠拟合:它通过观察不同折叠的性能变化,帮助识别一个模型是过于复杂(过拟合)还是过于简单(欠拟合)。

交叉验证与简单的训练/验证分离

简单的训练/验证分割只涉及将一部分数据用于验证,而交叉验证则能更有效地利用数据。在简单的拆分中,性能指标在很大程度上取决于哪些特定数据点最终进入验证集。交叉验证可以减轻这种依赖性,确保每个数据点都能准确地用于验证一次,从而获得更稳定、更可信的评估结果。Ultralytics 提供了使用Ultralytics YOLO 实施K 折交叉验证的指导。

实际应用

交叉验证被广泛应用于各种人工智能和 ML 领域:

  1. 医学图像分析:在使用图像分割等技术开发人工智能模型以检测扫描图像中的肿瘤时,交叉验证有助于确保模型在不同患者和设备的扫描图像中表现可靠,从而在临床部署前提供信心。这包括在患者医学影像数据的不同子集上进行训练和测试。
  2. 自主系统中的物体探测:对于 Ultralytics YOLO对于为物体检测而训练的模型(例如,为自动驾驶汽车识别行人),K-Fold Cross-Validation 可以在模型部署之前评估模型在数据集中不同环境条件(照明、天气)下的泛化程度。Ultralytics HUB等平台有助于管理此类训练过程。

通过对模型泛化进行稳健的评估,交叉验证是构建可靠、有效的人工智能系统不可或缺的工具。

阅读全部