了解知识蒸馏如何将智能从大型教师模型转移到紧凑型学生模型。优化Ultralytics YOLO26以实现快速、高效的边缘部署。
知识蒸馏是 机器学习 中的一种复杂技术,其中一个紧凑型神经网络(称为“学生模型”)被训练以复现一个更大、更复杂网络(称为“教师模型”)的行为和性能。此过程的主要目标是 模型优化,使开发人员能够将大型架构的预测能力转移到适用于资源受限硬件部署的轻量级模型中。通过捕获教师模型预测中编码的丰富信息,学生模型通常能实现比仅凭原始数据进行训练显著更高的 准确性,从而有效弥合了高性能与效率之间的差距。
在传统 监督学习 中,模型使用来自 训练数据 的“硬标签”进行训练,其中图像被明确分类(例如,100%“狗”和0%“猫”)。然而,预训练的教师模型通过 softmax 函数 生成输出,为所有类别分配概率。这些概率分布被称为“软标签”或“暗知识”。
例如,如果教师模型分析一张狼的图像,它可能会预测90%是狼,9%是狗,1%是猫。这种分布揭示了狼与狗共享视觉特征,这是硬标签所忽略的上下文信息。在蒸馏过程中,学生模型最小化一个 损失函数,例如 Kullback-Leibler 散度,使其预测与教师模型的软标签对齐。这种由 Geoffrey Hinton 的研究 推广的方法,有助于学生模型更好地泛化,并减少 过拟合 在较小数据集上的发生。
在计算资源稀缺但高性能不可妥协的行业中,知识蒸馏至关重要。
区分知识蒸馏与其他压缩策略很重要,因为它们以根本不同的方式修改模型。
在实际工作流程中,您首先选择一个轻量级架构作为学生模型。 Ultralytics Platform可用于管理数据集并跟踪这些高效模型的训练实验。下面是初始化一个紧凑型YOLO26模型的示例,该模型非常适合边缘部署并作为学生网络:
from ultralytics import YOLO
# Load a lightweight YOLO26 nano model (acts as the student)
# The 'n' suffix denotes the nano version, optimized for speed
student_model = YOLO("yolo26n.pt")
# Train the model on a dataset
# In a custom distillation loop, the loss would be influenced by a teacher model
results = student_model.train(data="coco8.yaml", epochs=5, imgsz=640)
开启您的机器学习未来之旅