了解机器学习中的纪元--它们如何影响模型训练、防止过拟合,以及利用Ultralytics YOLO 优化性能。
在训练 人工智能(AI)模型时,一个 是指学习算法对整个训练数据集的一次完整传递。它是 时间单位 它是神经网络(NN)训练中的一个基本时间单位,标志着 模型有机会从所提供数据中的每个样本中学习一次。因为深度学习 模型很少能在看过一次数据后就达到最佳性能,因此训练通常需要 在多个历元中重复这一过程,以尽量减少误差并完善内部参数。
在一个历时中,主要目标是调整模型权重,将输入映射到正确的输出。 模型权重,以准确地将输入映射到正确的输出上。 输出。在此过程中 优化算法,如随机梯度下降算法(SGD 梯度下降算法SGD)等优化算法,使用特定的损失函数计算误差,并更新模型的内部结构。 损失函数计算误差,并更新模型的内部状态。
由于数据集包含复杂的变化和噪音,单次学习往往是不够的。通过运行多个 模型迭代地提高其执行任务的能力,如图像分类或分割。 图像分类或分割等任务的能力。这种 迭代改进使网络能从训练数据中归纳出模式,而不是简单地记忆特定的模式。 训练数据中的模式,而不是简单地记忆特定 例子。深度学习框架,如 PyTorch和 TensorFlow提供了内置 机制来控制这些周期的训练循环。
要了解训练循环如何高效运作,必须区分三个密切相关的术语。 初学者经常混淆的三个密切相关的术语:
例如,如果您有一个包含 10,000 张图像的数据集,并将批量大小设置为 100,则需要 100 次迭代来完成一个 epoch 完成一个历元。
选择正确的历元数是超参数调整的一个关键方面。 超参数调整。训练周期太短 或过多的循环都会导致性能不理想。
为了减少这些问题,工程师通常会使用 早期停止技术。 这种技术会在验证损失停止改善时停止训练,与指定的总历时无关。可视化工具 等可视化工具经常用于实时监控这些指标。 实时监控。
纪元的概念在各种机器学习(ML)领域都很普遍。 机器学习 (ML)领域。
使用时 ultralytics 库,可以直接指定历元数。该
train() 方法接受一个 epochs 参数,用于控制模型对所提供的数据进行迭代的次数。
对所提供数据的迭代次数。
from ultralytics import YOLO
# Load the YOLO11 model (recommended for latest performance)
model = YOLO("yolo11n.pt")
# Train the model for 50 epochs on the COCO8 dataset
# The 'epochs' argument defines the total passes through the data
results = model.train(data="coco8.yaml", epochs=50, imgsz=640)
该代码段演示了如何启动训练运行,在该运行中,模型将对 "coco8 "数据集的理解进行 50 次改进。 "coco8 "数据集的理解。对于未来的发展,Ultralytics 目前正在开发 YOLO26,它将以更高的效率支持端到端训练,预计将于 2025 年底推出。

