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

Epoch(轮次)

了解机器学习中的纪元--它们如何影响模型训练、防止过拟合,以及利用Ultralytics YOLO 优化性能。

一个 epoch 代表机器学习算法对整个训练数据集进行一次完整循环。 在此过程中,模型有机会基于数据中的每个样本 精确更新一次其内部参数。在深度学习领域, 单次训练通常不足以使神经网络 有效学习复杂模式。因此训练过程通常包含多个 epoch, 使学习算法能够通过迭代优化理解能力, 并最小化预测结果与实际真实值之间的误差。

时代在优化中的作用

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

然而,选择正确的 epoch 数量是超参数调优的关键环节。

  • 训练 epoch 数不足:这可能导致 模型拟合不足,即模型尚未捕捉到 数据的潜在趋势。
  • 训练 epoch 过多:这通常会导致 过拟合现象,即模型记忆了训练噪声 而非对新数据进行泛化。为避免此情况,开发者常通过 验证数据监控模型性能,并采用 早期停止等技术——当泛化能力停止提升时 即终止训练。

纪元 vs. 批次 vs. 迭代

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

  • 时代:对完整数据集进行一次完整的遍历。
  • 批次:同时处理的数据集子集。由于数据集通常过大,无法一次性全部放入GPU ,因此会按批次大小划分为较小的数据组。
  • 迭代:模型权重的单次更新。若数据集包含1000张图像且批量大小为100,则完成一个 epoch 需要10次迭代。

实际应用

所需的训练 epoch 数量会因任务复杂度和数据规模的不同而产生巨大差异。

  • 医学图像分析: 在医学图像分析领域,例如检测MRI扫描中的肿瘤,准确性至关重要。针对此类任务训练的模型通常需要运行数百个 epoch。这种长时间训练确保卷积神经网络(CNN)能够识别区分恶性组织与健康组织的细微异常,从而可能挽救生命。
  • 自动驾驶: 对于自动驾驶车辆,物体检测模型必须可靠地识别行人、标志和其他车辆。训练这些稳健系统通常需要海量数据集,例如 COCO Objects365。尽管数据集规模庞大, 模型仍需经过多个训练周期才能收敛到能良好泛化至多样化天气和 光照条件的解决方案。

用代码管理培训周期

使用现代框架时,例如 Ultralytics YOLO时, 在训练命令中直接定义 epoch 数量即可。借助 Ultralytics 工具,可可视化每个 epoch 的损失曲线 以确定最佳停止点。

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

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次独立运行。在每个运行周期中,模型执行 前向传播反向传播 以提升其检测能力。

加入Ultralytics 社区

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

立即加入