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

超参数调优

掌握超参数调整,优化Ultralytics YOLO 等 ML 模型。利用专家技术提高准确性、速度和性能。

超参数调整是发现一组最佳外部配置变量的系统过程、 称为超参数,用于管理机器学习(ML)模型的训练。 机器学习(ML)模型的训练。与内部 在学习阶段直接从训练数据中学习到的weights and biases 等内部模型参数不同,超参数调优是一个系统化的过程。 在学习阶段直接从训练数据中学习、 超参数是在训练之前设置的,并在整个过程中保持不变。这一优化步骤至关重要 因为神经网络的默认设置 神经网络的默认设置很少能为特定数据集带来最佳 性能。通过对这些控制进行微调,数据科学家可以大大提高模型的 准确性,缩短收敛时间,并防止出现过拟合等问题。 过度拟合。

超参数的作用

要理解调谐,不妨将模型想象成一台带有各种刻度盘和开关的复杂机器。当 机器会自行学习如何将原材料(数据)加工成成品(预测),但操作员 必须首先设置速度、温度和压力。这些 "刻度盘 "就是超参数。

经常需要优化的常见超参数包括

  • 学习率通常被认为是 通常被认为是最关键的设置,它决定了优化算法在移动时的步长。 步长。 的步长。学习率 过高会导致模型偏离最优解,而过低则会导致训练缓慢。 训练。
  • 批量大小这定义了 在一次迭代中使用的训练实例数量。调整批量大小会影响梯度估计的稳定性和 内存需求 GPU.
  • 历时学习算法在整个数据集上运行的次数。 算法对整个数据集进行学习的次数。找到适当的平衡有助于避免 拟合不足(epoch 太少)和 过度拟合(epoch 太多)。
  • 网络结构:有关隐藏层数、每层神经元数量或特定类型的决定 层数或特定类型的激活函数(如 ReLU、SiLU 激活函数(如 ReLU、SiLU)也是架构超参数。 也是架构超参数。

常见的调谐技术

由于搜索空间巨大,寻找完美的设置组合可能具有挑战性。从业人员采用 几种标准方法来浏览这个 高维空间

  • 网格搜索这种详尽的 这种方法针对网格中指定的每种算法和参数组合对模型进行评估。虽然全面,但 但计算成本高,而且对于大型参数集来说往往效率低下。
  • 随机搜索随机搜索 该技术随机选择超参数组合来训练模型。研究表明 研究表明,随机搜索通常比网格搜索更有效,因为并非所有超参数对模型性能都同样重要。 对模型性能同等重要。
  • 贝叶斯优化这是一种 这是一种基于概率模型的方法,它为目标函数建立了一个代理模型。它试图预测 哪些超参数将根据过去的评估结果产生最佳结果,并将重点放在搜索空间中最有前途的领域。 搜索空间。
  • 进化算法 受生物进化的启发,这种方法使用突变和交叉等机制,在几代人的时间里进化出一个 超参数集。这是Ultralytics 调谐器优化以下模型的主要方法 YOLO11.

超参数调整与模型训练

必须区分调优培训,因为它们是 MLOPS 生命周期中的不同阶段。 MLOPS生命周期中的不同阶段:

  • 模型训练:模型迭代标注数据的过程 标注数据来学习内部参数(权重 和偏置)的过程。目标是 最小化训练集上的误差。
  • 超参数调整:在训练开始前选择结构和运行设置的元过程 的元过程。目标是最大化验证指标,如 平均精度 (mAP)。 最大化。

实际应用

有效调整模型对于在各行各业部署强大的 人工智能解决方案至关重要。

精准农业

农业人工智能领域,配备计算机视觉模型的无人机可 计算机视觉模型监测作物健康状况。这些模型在 边缘计算设备上运行。 处理能力有限。这里使用超参数调整来优化模型架构(如减少层深度)和输入分辨率。 和输入分辨率。这样就能确保系统在高 推理速度与足够的检测 准确性,以实时识别杂草或害虫。

医疗诊断

对于医疗保健领域的人工智能,特别是在 医疗图像分析中,假阴性 会危及生命。在检测 X 射线或核磁共振成像扫描中的异常时,工程师们会积极调整与数据增强管道相关的超参数 与数据增强管道和 损失函数中的类加权。这种调整能最大限度地提高模型的 召回率,确保即使是细微的病理迹象也能被标记出来,供人工检查。 标记出来,以供人工检查。

使用Ultralytics进行自动调整

"(《世界人权宣言》) ultralytics 库通过内置的 tuner 利用遗传算法。这样,用户就能自动为其自定义数据集搜索最佳 超参数,而无需为每次训练运行手动调整数值。

下面的示例演示了如何启动YOLO11 模型的超参数调整。调谐器将在数次迭代中改变 超参数(如学习率、动量和权重衰减),以最大限度地提高性能。

from ultralytics import YOLO

# Initialize a YOLO11 model (using the 'nano' weight for speed)
model = YOLO("yolo11n.pt")

# Start tuning hyperparameters on the COCO8 dataset
# This will run for 10 epochs per iteration, for a total of 30 iterations
model.tune(data="coco8.yaml", epochs=10, iterations=30, optimizer="AdamW", plots=False)

对于管理大规模实验的高级用户来说,与专用平台(如 Ray Tune或利用 Weights & Biases进行可视化,可以 进一步简化调整工作流程。随着YOLO26 等架构的研发工作即将展开,自动调整仍是高效实现最先进性能的基石、 自动调整仍是高效实现最先进性能的基石。

加入Ultralytics 社区

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

立即加入