迁移学习
利用迁移学习的强大功能,通过预训练模型节省时间、提升 AI 性能,并以有限的数据应对新任务。
迁移学习是一种机器学习(ML)技术,其中为一项任务开发的模型被重用为第二项相关任务的模型的起点。迁移学习不是从头开始构建模型(这需要大量的数据和计算资源),而是利用从源任务中学到的知识(例如特征、权重和模式)。这种方法非常高效,并且已成为现代深度学习的基石,尤其是在计算机视觉(CV)中。通过使用预训练模型,开发人员可以用更少的数据和更短的训练时间获得更高的性能。
迁移学习的工作原理
迁移学习背后的核心思想是,在大型通用数据集(例如用于图像分类的ImageNet)上训练的模型已经学会识别诸如边缘、纹理和形状之类的通用特征。这些基础知识存储在模型的初始层中,通常称为backbone。
该过程通常涉及两个主要步骤:
- 从预训练模型开始:选择一个先前在大型基准数据集上训练过的模型。例如,大多数 Ultralytics YOLO 模型都带有在 COCO 数据集上预训练的权重。这些模型已经对一般对象特征有了深刻的理解。
- 微调: 然后,预训练模型被调整为适应新的特定任务。这种调整,被称为微调,包括在较小的、特定于任务的数据集上进一步训练模型。在此阶段,学习率通常保持较低,以便对模型的权重进行微小的调整,而不会丢失有价值的预先学习的特征。有关详细指南,您可以参考关于迁移学习的 PyTorch 教程。
实际应用
迁移学习不仅仅是一个理论概念;它在许多行业中都有实际应用。
- 医学影像分析: 模型可以在通用的 ImageNet 数据集上进行预训练,然后进行微调,以检测 MRI 扫描中的特定异常,如脑肿瘤。由于标记的医学数据通常稀缺且获取成本高昂,因此迁移学习允许创建准确的诊断工具,而无需数百万张医学图像。有关此方面的更多信息,请参阅 AI 如何在放射学中创造精确的新时代。
- 自动驾驶汽车: 目标检测模型可以在大量的道路图像数据集上进行预训练,然后由特定的汽车制造商进行微调,以识别独特的车辆模型或在特定的天气条件下运行。这利用了现有的关于汽车、行人和标志的知识,从而加速了开发并提高了安全性。
迁移学习 vs. 相关概念
区分迁移学习和其他机器学习技术非常重要:
- 基础模型(Foundation Models):这些是在海量数据上预训练的大规模模型,专门设计用于适应各种下游任务。迁移学习是调整这些基础模型的过程。
- 零样本学习: 这种技术使模型能够识别它在训练期间没有见过的类别。虽然迁移学习使用一些新数据将模型适应于新任务,但零样本学习旨在在没有任何新类别示例的情况下进行泛化。我们关于少样本、零样本和迁移学习的指南更详细地解释了这些差异。
- 知识蒸馏: 这涉及训练一个较小的“学生”模型来模仿一个较大的“教师”模型的行为,以提高效率。迁移学习侧重于将知识从一项任务转移到另一项任务,而蒸馏侧重于压缩同一任务中的知识。
工具和框架
通过各种工具和平台,可以轻松应用迁移学习。PyTorch 和 TensorFlow 等框架提供了大量的文档和预训练模型。诸如 Ultralytics HUB 之类的平台简化了整个工作流程,使用户可以轻松加载 YOLOv8 和 YOLO11 等预训练模型,在新数据集上执行自定义训练,并管理模型部署。为了更深入地理解理论知识,像 Stanford CS231n 迁移学习概述 这样的资源非常宝贵。