MGD:Masked Generative Distillation——掩码生成蒸馏

MGD这篇论文提出了一种新的知识蒸馏方法,称为Masked Generative Distillation (MGD),旨在通过引导学生模型生成教师模型的特征来提升学生模型的表示能力。与传统的蒸馏方法不同,MGD不要求学生模型直接模仿教师模型的输出,而是通过随机遮蔽学生模型的特征像素,并使用一个简单的生成块来生成教师模型的完整特征。这种方法可以应用于多种任务,包括图像分类、目标检测、语义分割和实例分割。

主要内容:

  1. 背景与动机

    • 传统的知识蒸馏方法通常通过让学生模型模仿教师模型的输出(如logits或特征)来提升性能。

    • 作者认为,直接模仿教师模型并不总是必要的,可以通过部分特征恢复教师模型的完整特征来提升学生模型的表示能力。

  2. 方法

    • MGD:随机遮蔽学生模型的特征像素,并使用一个简单的生成块来生成教师模型的完整特征。

    • 生成块由两个卷积层和一个激活层组成,通过最小化学生模型生成的特征与教师模型特征之间的差异来训练。

  3. 实验结果

    • 在多个任务和数据集上进行了广泛的实验,包括ImageNet分类、COCO目标检测和实例分割、CityScapes语义分割。

    • 结果显示,MGD在所有任务中都显著提升了学生模型的性能。例如,ResNet-18在ImageNet上的Top-1准确率从69.90%提升到71.69%,RetinaNet在COCO上的Boundingbox mAP从37.4提升到41.0。

  4. 贡献

    • 提出了一种新的特征蒸馏方法,通过生成教师模型的特征来提升学生模型的表示能力。

    • 该方法简单且易于使用,只需两个超参数。

    • 通过大量实验验证了该方法在多种任务和模型上的有效性。

  5. 分析与讨论

    • 通过实验验证了MGD的有效性,并探讨了不同超参数、生成块结构、蒸馏阶段等因素对性能的影响。

    • 结果表明,MGD不仅在同构模型(教师和学生模型结构相似)上表现良好,在异构模型上也有一定的提升。

MGD是一种简单且有效的特征蒸馏方法,能够显著提升学生模型在多种任务中的性能。该方法通过生成教师模型的特征,而不是直接模仿,来提升学生模型的表示能力。这里是自己的论文阅读记录,感兴趣的话可以参考一下,如果需要阅读原文的话可以看这里,如下所示:

摘要

知识蒸馏已成功应用于各种任务。当前的蒸馏算法通常通过模仿教师的输出来提高学生的性能。本文表明,教师还可以通过指导学生的特征恢复来提高学生的表示能力。基于这一观点,我们提出了掩码生成蒸馏(MGD),这是一种简单的方法:我们随机掩码学生的特征像素,并通过一个简单的模块强制其生成教师的完整特征。MGD是一种真正通用的基于特征的蒸馏方法,可用于各种任务,包括图像分类、目标检测、语义分割和实例分割。我们在不同的模型和广泛的数据集上进行了实验,结果表明所有学生都取得了显著的提升。值得注意的是,我们将ResNet-18的ImageNet top-1准确率从69.90%提升到71.69%,基于ResNet-50的RetinaNet的边界框mAP从37.4提升到41.0,基于ResNet-50的SOLO的Mask mAP从33.1提升到36.2,基于ResNet-18的DeepLabV3的mIoU从73.20提升到76.02。官方项目地址在这里,如下所示:

关键词:知识蒸馏,图像分类,目标检测,语义分割,实例分割

1 引言

深度卷积神经网络(CNN)已广泛应用于各种计算机视觉任务。通常,较大的模型具有更好的性能,但推理速度较慢,难以在资源有限的情况下部署。为了克服这一问题,知识蒸馏被提出[18]。根据蒸馏的位置,它可以分为两种类型。第一种是专门为不同任务设计的,例如用于分类的基于logit的蒸馏[18, 40]和用于检测的基于头部的蒸馏[10, 39]。第二种是基于特征的蒸馏[28, 17, 4]。由于不同网络之间的特征头或投影器是不同的,理论上,基于特征的蒸馏方法可以应用于各种任务。然而,为特定任务设计的蒸馏方法通常不适用于其他任务。例如,OFD[17]和KR[4]对检测器的改进有限。FKD[37]和FGD[35]是为检测器专门设计的,但由于缺乏颈部结构,无法用于其他任务。

之前的基于特征的蒸馏方法通常让学生尽可能地模仿教师的输出,因为教师的特征具有更强的表示能力。然而,我们认为,没有必要直接模仿教师来提高学生特征的表示能力。用于蒸馏的特征通常是通过深度网络获得的高阶语义信息。特征像素已经在一定程度上包含了相邻像素的信息。因此,如果我们能够通过一个简单的模块使用部分像素来恢复教师的完整特征,那么这些使用像素的表示能力也可以得到提升。基于这一观点,我们提出了掩码生成蒸馏(MGD),这是一种简单且高效的基于特征的蒸馏方法。如图2所示,我们首先随机掩码学生的特征,然后通过一个简单的模块使用掩码特征生成教师的完整特征。由于每次迭代中都使用随机像素,所有像素将在整个训练过程中被使用,这意味着特征将更加鲁棒,其表示能力也将得到提升。在我们的方法中,教师仅作为学生恢复特征的指导,而不要求学生直接模仿它。

图1展示了FPN输出第一层特征的可视化。教师模型为RetinaNet-ResNeXt101,学生模型为RetinaNet-ResNet50。FGD[35]是一种针对检测器的蒸馏方法,它强制学生模型模仿教师模型的特征 

为了验证我们的假设,即在不直接模仿教师的情况下,掩码特征生成可以提高学生特征的表示能力,我们对学生和教师的颈部特征进行了可视化。如图1所示,学生和教师的特征非常不同。与教师相比,学生的特征背景响应更高。教师的mAP也显著高于学生,41.0 vs. 37.4。在使用最新的蒸馏方法FGD[35]进行蒸馏后,学生的特征变得更加接近教师的特征,mAP也大幅提升至40.7。然而,在使用MGD训练后,学生和教师的特征之间仍然存在显著差异,但学生对背景的响应大大降低。我们也很惊讶地发现,学生的性能超过了FGD,甚至达到了与教师相同的mAP。这也表明,使用MGD训练可以提高学生特征的表示能力。此外,我们还在图像分类和密集预测任务上进行了大量实验。结果表明,MGD可以为各种任务带来显著的提升,包括图像分类、目标检测、语义分割和实例分割。MGD还可以与其他基于logit或头部的蒸馏方法结合,以获得更大的性能提升。总之,本文的贡献如下:

  1. 我们引入了一种新的基于特征的知识蒸馏方法,使学生通过其掩码特征生成教师的特征,而不是直接模仿它。

  2. 我们提出了一种新颖的基于特征的蒸馏方法,掩码生成蒸馏(MGD),该方法简单且易于使用,仅需两个超参数。

  3. 我们通过在不同数据集上的广泛实验验证了该方法在各种模型上的有效性。对于图像分类和密集预测任务,学生在使用MGD后取得了显著的提升。

2 相关工作

分类的知识蒸馏

知识蒸馏最早由Hinton等人提出[18],其中学生由标签和教师最后一层线性层的软标签共同监督。然而,更多的蒸馏方法基于特征图,而不仅仅是logit。FitNet[28]从中间层蒸馏语义信息。AT[36]总结了通道维度上的值,并将注意力知识传递给学生。OFD[17]提出了边缘ReLU,并设计了一个新的函数来衡量蒸馏的距离。CRD[30]利用对比学习将知识传递给学生。最近,KR[4]构建了一个回顾机制,并利用多层次信息进行蒸馏。SRRL[33]将表示学习和分类解耦,利用教师的分类器训练学生的倒数第二层特征。WSLD[40]从偏差-方差权衡的角度提出了加权软标签进行蒸馏。

密集预测的知识蒸馏

分类和密集预测之间存在很大差异。许多为分类设计的蒸馏工作在密集预测任务上失败了。理论上,基于特征的蒸馏方法应该对分类和密集预测任务都有帮助,这也是我们方法的目标。

目标检测的知识蒸馏

Chen等人[1]首先在检测器的颈部和头部计算蒸馏损失。目标检测蒸馏的关键在于蒸馏的位置,因为前景和背景之间存在极端的不平衡。为了避免引入背景噪声,FGF[31]利用细粒度掩码来蒸馏靠近目标的区域。然而,Defeat[13]指出,前景和背景信息都很重要。GID[10]选择学生和教师表现不同的区域进行蒸馏。FKD[37]使用教师和学生的注意力之和,使学生关注可变区域。FGD[35]提出了焦点蒸馏,迫使学生学习教师的关键部分,并结合全局蒸馏来补偿缺失的全局信息。

语义分割的知识蒸馏

Liu等人[23]提出了成对蒸馏和整体蒸馏,强制学生在输出之间保持成对和高阶一致性。He等人[16]将教师网络的输出重新解释为潜在域,并从教师网络中捕捉长期依赖关系。CWD[29]最小化概率图之间的Kullback-Leibler(KL)散度,该概率图是通过归一化每个通道的激活图计算的。

3 方法

不同任务的模型架构差异很大。此外,大多数蒸馏方法是为特定任务设计的。然而,基于特征的蒸馏可以应用于分类和密集预测任务。蒸馏特征的基本方法可以表示为:

这种方法帮助学生直接模仿教师的特征。然而,我们提出了掩码生成蒸馏(MGD),旨在迫使学生生成教师的特征,而不是直接模仿它,从而在分类和密集预测任务中为学生带来显著的提升。MGD的架构如图2所示,我们将在本节中详细介绍。

使用掩码特征生成

对于基于CNN的模型,较深层特征具有更大的感受野,并且更好地表示原始输入图像。换句话说,特征图像素已经在一定程度上包含了相邻像素的信息。因此,我们可以使用部分像素来恢复完整的特征图。我们的方法旨在通过学生的掩码特征生成教师的特征,从而帮助学生获得更好的表示。

图2展示了MGD(Masked Generative Distillation,掩码生成蒸馏)的示意图。我们首先随机遮蔽学生模型的特征,然后使用投影层迫使学生模型利用被遮蔽的特征生成教师模型的特征

总体损失

输出: S

4 主要实验

MGD是一种基于特征的蒸馏方法,可以轻松应用于不同模型和各种任务。在本文中,我们在分类、目标检测、语义分割和实例分割等任务上进行了实验。我们使用不同的模型和数据集进行实验,所有模型在使用MGD后都取得了显著的提升。

分类

数据集

对于分类任务,我们在ImageNet[11]数据集上评估了我们的知识蒸馏方法,该数据集包含1000个对象类别。我们使用120万张图像进行训练,5万张图像进行测试。我们使用准确率来评估模型。

实现细节

对于分类任务,我们在骨干网络的最后一层特征图上计算蒸馏损失。关于这一点的消融研究见第5.5节。MGD使用超参数 αα 来平衡公式6中的蒸馏损失。另一个超参数 λ 用于调整公式2中的掩码比例。我们采用超参数进行所有分类实验。我们使用SGD优化器训练所有模型,动量为0.9,权重衰减为0.0001。我们将初始学习率设置为0.1,并在每30个epoch时衰减。该设置基于8个GPU。实验基于MMClassification[6]和MMRazor[7],使用Pytorch[26]进行。

分类结果

我们在两种流行的分类蒸馏设置下进行了实验,包括同构蒸馏和异构蒸馏。第一种蒸馏设置是从ResNet-34[15]到ResNet-18,另一种设置是从ResNet-50到MobileNet[19]。如表1所示,我们与多种知识蒸馏方法[18, 36, 17, 25, 30, 4, 40, 33]进行了比较,包括基于特征的方法、基于logit的方法及其组合。使用我们的方法,学生ResNet-18和MobileNet分别获得了1.68和3.14的Top-1准确率提升。此外,如上所述,MGD只需在特征图上计算蒸馏损失,并且可以与基于logit的分类方法结合使用。因此,我们尝试在WSLD[40]中添加基于logit的蒸馏损失。通过这种方式,两个学生分别获得了71.80和72.59的Top-1准确率,分别获得了额外的0.22和0.24的提升。

表1:不同蒸馏方法在ImageNet数据集上的结果。TS分别表示教师和学生。

目标检测和实例分割

数据集

我们在COCO2017数据集[22]上进行了实验,该数据集包含80个对象类别。我们使用12万张训练图像进行训练,5千张验证图像进行测试。模型的性能通过平均精度(Average Precision, AP)进行评估。

实现细节

我们在颈部所有特征图上计算蒸馏损失。我们采用超参数 进行所有单阶段模型实验, 进行所有两阶段模型实验。我们使用SGD优化器训练所有模型,动量为0.9,权重衰减为0.0001。除非另有说明,我们训练模型24个epoch。当学生和教师具有相同的头部结构时,我们使用继承策略[20, 35],即使用教师的颈部和头部参数初始化学生。实验基于MMDetection[2]进行。

目标检测和实例分割结果

对于目标检测,我们在三种不同类型的检测器上进行了实验,包括两阶段检测器(Faster RCNN[27])、基于锚点的单阶段检测器(RetinaNet[21])和无锚点的单阶段检测器(RepPoints[34])。我们将MGD与三种最新的检测器蒸馏方法[37, 29, 35]进行了比较。对于实例分割,我们在两个模型上进行了实验,SOLO[32]和Mask RCNN[14]。如表2和表3所示,我们的方法在目标检测和实例分割任务上均超越了其他最新的方法。学生在使用MGD后获得了显著的AP提升,例如,基于ResNet-50的RetinaNet和SOLO在COCO数据集上分别获得了3.6的边界框mAP和3.1的Mask mAP提升。

表2展示了在COCO数据集上不同蒸馏方法在目标检测任务中的结果

表3:不同蒸馏方法在COCO数据集上的实例分割结果。MS表示多尺度训练。这里的AP表示Mask AP。

语义分割

数据集

对于语义分割任务,我们在CityScapes数据集[9]上评估了我们的方法,该数据集包含5000张高质量图像(2975张用于训练,500张用于验证,1525张用于测试)。我们使用平均交并比(mIoU)来评估所有模型。

实现细节

对于所有模型,我们在骨干网络的最后一层特征图上计算蒸馏损失。我们采用超参数 {α=2×10−5,λ=0.75} 进行所有实验。我们使用SGD优化器训练所有模型,动量为0.9,权重衰减为0.0005。我们在8个GPU上运行所有模型。实验基于MMSegmentation[8]进行。

语义分割结果

对于语义分割任务,我们在两种设置下进行了实验。在这两种设置中,我们使用PspNet-Res101[38]作为教师,并以512×1024的输入大小训练80k次迭代。我们使用PspNet-Res18和DeepLabV3-Res18[3]作为学生,并以512×1024的输入大小训练40k次迭代。如表4所示,我们的方法超越了最新的语义分割蒸馏方法。同构和异构蒸馏都为学生带来了显著的提升,例如,基于ResNet-18的PspNet获得了3.78的mIoU提升。此外,MGD是一种基于特征的蒸馏方法,可以与其他基于logit的蒸馏方法结合使用。如结果所示,通过添加CWD[29]中的头部logit蒸馏损失,学生PspNet和DeepLabV3分别获得了额外的0.47和0.29的mIoU提升。

表4展示了在CityScapes数据集上语义分割任务的结果。T和S分别表示教师模型和学生模型。结果是三次运行的平均值。*表示添加了CWD[29]中头部的蒸馏损失

5 分析

使用MGD获得更好的表示

MGD迫使学生通过其掩码特征生成教师的完整特征图,而不是直接模仿它。这有助于学生获得更好的输入图像表示。在本小节中,我们通过让学生自我蒸馏来研究这一点。我们首先直接训练ResNet-18作为教师和基线。然后,我们使用训练好的ResNet-18通过MGD进行自我蒸馏。为了比较,我们还通过迫使学生直接模仿教师的特征图来进行蒸馏。模仿的蒸馏损失是学生特征图和教师特征图之间的L2距离的平方。

如表5所示,即使教师是学生本身,学生在使用MGD后也获得了1.01的准确率提升。相比之下,当迫使学生直接模仿教师的特征图时,提升非常有限。这一比较表明,蒸馏后学生的特征图比教师的特征图具有更好的表示。

此外,我们可视化了使用MGD和模仿教师进行蒸馏的训练损失曲线,如图3所示。图中的差异表示学生和教师最后一层特征图之间的L2距离的平方,这也是模仿教师的蒸馏损失。如图所示,在直接模仿教师的过程中,差异不断减少,最终学生获得了与教师相似的特征。然而,使用这种方法的提升非常有限。相比之下,使用MGD训练后,差异变得更大。尽管学生的特征与教师的特征不同,但它获得了更高的准确率,这也表明学生的特征获得了更强的表示能力。

表5:ResNet-18自我蒸馏的结果。我们将ResNet-18直接训练为教师和学生基线。TS分别表示教师和学生。

图3展示了ResNet-18自蒸馏(distilling ResNet-18)的训练损失曲线。图中的“Difference”表示学生模型和教师模型最后一层特征图之间的L2距离的平方,这也是模仿教师模型的蒸馏损失

通过掩码随机通道进行蒸馏

对于图像分类,模型通常使用池化层来减少特征图的空间维度。这一层使得模型对通道比对空间像素更敏感。因此,在本小节中,我们尝试通过掩码随机通道而不是空间像素来应用MGD进行分类。我们采用掩码比例 β=0.15 和超参数 α=7×10−5进行实验。如表6所示,通过掩码随机通道而不是空间像素,学生可以获得更好的性能。学生ResNet-18和MobileNet分别获得了0.13和0.14的Top-1准确率提升。

表6:在ImageNet数据集上掩码随机通道的结果

使用不同教师进行蒸馏

Cho等人[5]表明,在图像分类中,准确率更高的教师可能不是更好的蒸馏教师。这一结论基于基于logit的蒸馏方法。然而,我们的方法只需在特征图上计算蒸馏损失。在本小节中,我们通过使用不同类型的教师来蒸馏相同的学生ResNet-18来研究这一结论,如图4所示。

如图4所示,当教师和学生具有相似的架构时,更好的教师对学生的帮助更大,例如,ResNet-18在使用ResNet-18和ResNetVID-152作为教师时分别获得了70.91和71.8的准确率。然而,当教师和学生具有不同的架构时,学生很难生成教师的特征图,蒸馏带来的提升有限。此外,架构差异越大,蒸馏效果越差。例如,尽管Res2Net-101[12]和ConvNeXt-T[24]的准确率分别为79.19和82.05,但它们仅分别为学生带来了1.53和0.88的准确率提升,甚至低于基于ResNet-34的教师(准确率为73.62)。

图4的结果表明,当教师和学生具有相似的架构时,更强的教师更适合基于特征的蒸馏。此外,同构教师比具有高准确率但异构架构的教师更适合基于特征的蒸馏。

生成块

MGD使用一个简单的块来恢复特征,称为生成块。在公式4中,我们使用两个 3×3 卷积层和一个激活层ReLU来完成这一任务。在本小节中,我们探讨了具有不同组成的生成块的效果,如表7所示。

表7展示了关于生成部分的蒸馏结果。Conv Layers表示卷积层的总数,kernel size属于卷积层的参数。我们在每两个卷积层之间添加了一个激活层ReLU

结果显示,当只有一个卷积层时,学生的提升最小。然而,当有三个卷积层时,学生的Top-1准确率变差,但Top-5准确率更好。至于卷积核大小,5×5 卷积核需要更多的计算资源,但性能更差。基于结果,我们选择公式4中的架构用于MGD,包括两个卷积层和一个激活层。

在不同阶段进行蒸馏

我们的方法也可以应用于模型的其他阶段。在本小节中,我们在ImageNet上探索了不同阶段的蒸馏。我们在教师和学生的相应层上计算蒸馏损失。如表8所示,蒸馏较浅的层也对学生有帮助,但提升非常有限。而蒸馏包含更多语义信息的较深层对学生的帮助更大。此外,早期阶段的特征不直接用于分类。因此,与最后一层特征一起蒸馏这些特征可能会损害学生的准确率。

超参数敏感性研究

在本文中,我们使用公式6中的 αα 和公式2中的 λλ 来平衡蒸馏损失和调整掩码比例。在本小节中,我们通过使用ResNet-34蒸馏ResNet-18在ImageNet数据集上进行了超参数的敏感性研究。结果如图5所示。

如图5所示,MGD对用于平衡损失的超参数 αα 不敏感。至于掩码比例 λ,当 λ=0 时,准确率为71.41,这意味着没有掩码部分用于生成。当 λ<0.5时,随着比例的增加,学生的性能提高。然而,当 λ 过大时,例如0.8,剩余的语义信息太少,无法生成教师的完整特征图,性能提升也受到影响。

6 结论

在本文中,我们提出了一种新的知识蒸馏方法,迫使学生通过其掩码特征生成教师的特征,而不是直接模仿它。基于这一方法,我们提出了一种新的知识蒸馏方法,掩码生成蒸馏(MGD)。学生可以通过MGD获得更强的表示能力。此外,我们的方法基于特征图,因此MGD可以轻松应用于各种任务,如图像分类、目标检测、语义分割和实例分割。在不同模型和数据集上的广泛实验证明,我们的方法简单且高效。

表8:在ImageNet上不同阶段的蒸馏结果。

图5:ResNet34-ResNet18的超参数 α 和 λ 的敏感性研究。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Together_CZ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值