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

Epoch(轮次)

了解机器学习中的 epoch 是什么以及它如何影响模型训练。探索优化,避免过拟合,并轻松训练 Ultralytics YOLO26。

一个epoch代表机器学习算法对整个训练数据集的一次完整遍历。在此过程中,模型有机会根据数据中的每个样本精确地更新其内部参数一次。在深度学习中,单次遍历通常不足以让神经网络有效地学习复杂模式。因此,训练通常涉及多个epoch,使学习算法能够迭代地完善其理解,并最小化其预测与实际真实值之间的误差。

训练轮次在优化中的作用

训练的主要目标是调整模型权重以最小化特定的损失函数。优化算法,例如stochastic gradient descent (SGD)Adam optimizer,利用每个 epoch 期间计算的误差来指导这些调整。随着 epoch 数量的增加,模型通常会从高误差状态(随机猜测)转变为低误差状态(学习到的模式)。

然而,选择正确的epoch数量是超参数调优的一个关键方面。

  • Epoch 数量过少:这可能导致 欠拟合,即模型尚未捕捉到数据的潜在趋势。
  • Epoch 数量过多:这通常会导致 过拟合,即模型记忆了训练噪声,而不是泛化到新数据。为了防止这种情况,开发者通常会监控 验证数据上的性能,并采用诸如 提前停止之类的技术,在泛化能力不再提升时停止训练。

纪元 vs. 批次 vs. 迭代

初学者常将“epoch”与相关术语混淆。理解这些概念的层次结构对于正确配置训练循环至关重要:

  • 周期:对整个数据集的一次完整遍历。
  • 批次:同时处理的数据集的一个子集。由于数据集通常太大,无法一次性全部载入 GPU内存,因此它们被分成由 批大小 定义的更小的组。
  • 迭代: 对模型权重的一次更新。如果一个数据集有 1,000 张图像,批次大小为 100,则需要 10 次迭代才能完成一个 epoch。

实际应用

所需的迭代次数因任务复杂性和数据量而差异巨大。

  • 医学图像分析:医学图像分析 中,例如检测 MRI 扫描中的肿瘤,准确性至关重要。为这些任务训练的模型通常会运行数百个 epoch。这种 广泛的训练确保 卷积神经网络 (CNN) 能够辨别区分恶性组织与健康组织的细微异常,可能挽救生命。
  • 自动驾驶:对于自动驾驶车辆,目标检测模型必须可靠地识别行人、标志和其他车辆。训练这些鲁棒系统通常涉及大规模数据集,如COCOObjects365。尽管数据集规模庞大,模型仍需要多个 epoch 才能收敛到一个在各种天气和光照条件下都能良好泛化的解决方案。

通过代码管理训练周期

使用 Ultralytics YOLO 等现代框架时,在训练命令中定义 epoch 数量是一个直接的参数。像 Ultralytics Platform 这样的工具可以帮助可视化每个 epoch 的损失曲线,以识别最佳停止点。

以下示例演示了在训练YOLO26模型时如何设置epoch计数:

from ultralytics import YOLO

# Load the YOLO26n model (nano version for speed)
model = YOLO("yolo26n.pt")

# Train the model for 50 epochs
# The 'epochs' argument determines how many times the model sees the entire dataset
results = model.train(data="coco8.yaml", epochs=50, imgsz=640)

在这个片段中, epochs=50 参数指示训练引擎循环遍历 coco8.yaml 数据集 50 次。在每个循环中,模型执行 前向传播反向传播 改进其detect能力。

让我们一起共建AI的未来!

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