探索微调如何使Ultralytics YOLO26等预训练模型适应专业任务。学习如何利用迁移学习来构建更快、更准确的AI。
微调是 机器学习 (ML) 中的一个基本过程,它涉及使预训练模型适应特定任务或数据集。开发者不是 从头开始训练(这需要大量数据、时间和计算能力),而是从一个已经从 ImageNet 等庞大数据集中学习了通用特征的“基础模型”开始。这种方法是 迁移学习 的实际应用,使 AI 系统能够以显著更少的资源在小众问题上实现高性能。
微调的核心思想是利用模型已获得的“知识”。一个基础模型通常对边缘、纹理和形状等基本视觉元素具有深刻的理解。在微调过程中,模型的参数(权重)会进行微调,以适应新的、专门数据的细微差别。
这种调整通常通过使用较低学习率的梯度下降来实现。保守的学习率确保在初始预训练期间学到的有价值特征得到优化而非破坏。在许多计算机视觉(CV)工作流中,工程师可能会冻结主干网络的初始层(这些层detect通用特征),而只更新更深层和负责做出最终类别预测的detect头。
微调弥合了通用 AI 能力与特定行业需求之间的差距。它使通用模型能够成为专业专家。
区分微调与从头开始训练有助于理解何时采用每种方法。
现代框架使这一过程变得易于使用。例如,Ultralytics Platform通过自动处理数据集管理和云端训练来简化工作流程。然而,开发者也可以使用python在本地微调模型。
以下示例演示了如何微调预训练的
YOLO26 在自定义数据集上训练模型。请注意,我们加载了
yolo26n.pt (预训练权重),而不是简化的配置文件,这会指示库启动迁移学习。
from ultralytics import YOLO
# Load a pre-trained YOLO26 model (n=nano size)
# This automatically loads weights trained on COCO
model = YOLO("yolo26n.pt")
# Fine-tune the model on a custom dataset (e.g., 'coco8.yaml')
# The 'epochs' argument determines how many passes over the data occur
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# The model is now fine-tuned and ready for specific inference tasks
为了获得最佳结果,新数据集的质量至关重要。使用数据增强工具可以通过旋转、翻转或调整图像亮度来人工扩展小型数据集,从而防止过拟合。此外,监控验证损失和平均精度 (mAP)等指标可确保模型对未见数据具有良好的泛化能力。
对于管理复杂工作流程的用户,采用 MLOps 策略和 实验跟踪 等工具可以帮助对不同的微调迭代保持版本控制。无论是用于 object detection 还是 instance segmentation,微调仍然是部署有效 AI 解决方案的行业标准。
开启您的机器学习未来之旅