在线蒸馏论文翻译——Online Knowledge Distillation via Collaborative Learning

在线蒸馏论文翻译——Online Knowledge Distillation via Collaborative Learning

通过协作学习进行在线知识提炼

论文链接:https://openaccess.thecvf.com/content_CVPR_2020/papers/Guo_Online_Knowledge_Distillation_via_Collaborative_Learning_CVPR_2020_paper.pdf
代码链接:https://github.com/shaoeric/Online-Knowledge-Distillation-via-Collaborative-Learning


摘要

这项工作通过协作学习提出了一种高效而有效的在线知识提取方法,称为KDCL,它能够持续提高具有不同学习能力的深度神经网络(DNN)的泛化能力。与现有的两阶段知识提取方法不同,即预先训练一个具有大容量的DNN作为“教师”,然后将教师的知识单向(即单向)转移到另一个“学生”DNN,KDCL将所有DNN视为“学生”,并在单个阶段对其进行协作训练(在协作训练期间,知识在任意学生之间转移),实现并行计算、快速计算和吸引人的泛化能力。具体来说,我们精心设计了多种方法,通过有效地整合学生的预测并扭曲输入图像,生成软目标作为监督。大量实验表明,KDCL在不同的数据集上持续改进所有“学生”,包括CIF AR100和ImageNet。例如,当使用KDCL一起训练时,ResNet-50和MobileNetV2在ImageNet上实现了78.2%和74.0%的top 1准确率,分别比原始结果高1.4%和2.0%。我们还验证了用KDCL预训练的模型在MS COCO数据集上很好地转移到对象检测和语义分割。例如,FPN检测器提高了0.9%mAP


一、介绍

在这里插入图片描述
图1:(a)[10]将知识从静态的预先培训的教师转移到学生模型。(b) 学生可以在[32]中相互学习。(c) [15]使用多分支设计建立教师。gate是把所有的分支集合在一起。(d) KDCL始终从所有学生产生的组合软目标中获得额外信息,优于现有方法。每个模型的输入分别随机失真,以提高其泛化能力。当在ImageNet上用KDCL训练模型对时,由于ResNet-18的知识,ResNet-18提高了1.9%,ResNet-50提高了1.0%。

知识提炼[10]通常被定义为“师生”学习环境。它能够提高紧凑的“学生”深度神经网络的性能,因为“教师”网络的表示可以用作结构化知识来指导学生的训练。教师产生的预测(如软目标)可以很容易地被学生学习,并鼓励学生比从头开始训练的预测更好地概括。然而,在传统的离线知识提取框架中,教师首先经过预训练,然后固定,这意味着知识只能从教师转移到学生(即单向),如图1a所示。

在线蒸馏方法[32,15]更具吸引力,因为训练过程被简化为单个阶段,并且所有网络都被视为学生。这些方法融合了所有学生网络的培训过程,使他们能够从彼此那里获得额外的知识。在深度相互学习(DML)[32]中,学生直接从其他学生的预测中学习,如图1b所示。然而,学生的产出可能是多样的,相互冲突,甚至是基本事实。当模型之间的性能显著不同时,这种方法会损害高性能模型。

[15](ONE)提出的另一种方法是在建立动态教师的同时训练多分支网络,如图1c所示。尽管如此,这种方法是不灵活的,因为网络被迫共享较低的层,并且知识转移仅发生在单个模型中的上层,而不是其他模型中的高层,从而限制了额外的知识和性能。门模块并不能保证高质量的软目标。

自蒸馏[6]表明,与教师相比,将收敛的教师模型蒸馏为相同网络架构的学生模型可以进一步提高泛化能力。自蒸馏和在线蒸馏的功效使我们产生了以下问题:我们能否在一级蒸馏框架中使用一个小网络来改进具有更大容量的模型?

在这项工作中,我们提出了一种新的通过协作学习的在线知识提取方法。在KDCL中,具有不同能力的学生网络协作学习,以产生高质量的软目标监督,如图1d所示,它为每个学生提取了额外的知识。高质量的软目标监督旨在指导具有显著性能差距的学生以更高的泛化能力和更小的数据域输入扰动方差一致收敛。

主要挑战是产生软目标监督,以提高所有具有不同学习能力或显著成绩差距的学生的高信心表现。当模型输出之间存在差异时,嵌入往往会产生更好的结果[14]。因此,我们建议通过在线方式将学生的输出与地面实况信息仔细组合,生成高质量的软目标监督。此外,我们建议通过在验证集上测量模型来估计泛化误差。生成软目标是为了在验证集上具有更强的泛化能力。

为了提高对输入数据域中扰动的不变性,软目标应该鼓励学生以类似的失真输入图像进行类似的输出。因此,向学生提供图像,这些图像是从相同的输入中单独扰动的,并且通过组合输出并融合数据增强的信息来生成软目标。在这种情况下,模型集成的好处得到了进一步的利用。

为了评估KDCL的效果,我们对图像分类的基准CIFAR-100[13]和ImageNet-2012[4]进行了广泛的实验。我们证明,使用KDCL,成对训练的ResNet-50[8]和ResNet-18分别达到77.8%和73.1%的val准确率。得益于ResNet-18的额外知识,ResNet18的性能比基线提高了1.9%,ResNet-50的性能提高了1.0%。我们还验证了用KDCL预训练的模型在COCO数据集上很好地转移到对象检测和语义分割[17]。

我们的贡献如下。

  • 设计了一个基于协作学习的新的知识提炼管道。各种学习能力的模型可以从合作培训中受益。
  • 设计了一系列模型集成方法,以在一阶段在线知识提取框架中动态生成高质量的软目标。
  • 通过转移知识和融合具有不同失真的图像输出,增强了输入域中对扰动的不变性。

二、相关工作

[2,10]提倡神经网络的知识转移,以将知识从教师提取到学生。一个显而易见的方法是让学生模仿教师模型的输出。[2] 提出通过惩罚学生和教师之间的logits差异来改善浅层网络。[10] 通过最小化其输出分类概率的Kullback-Leibler(KL)发散损失来实现知识提取。

结构知识:在开拓性工作的基础上,人们提出了许多方法来从教师那里挖掘更多的信息。[20] 通过进一步利用中间隐藏层的特性,引入了更多的监督。[31]定义了与蒸馏相结合的附加注意力信息。[18] 通过按距离和按角度的损失来挖掘数据示例的相互关系。[23]建立了雅可比匹配和蒸馏之间的等价性。[9] 将更准确的信息通过路由传输到决策边界。最近几篇关于自我升华的论文[29,3,6,28]表明,监督相同架构的学生模型的聚合教师模型可以提高教师的泛化能力。与模仿复杂模型相反,KDCL将所有网络都包含在学习中,并通过融合学生的信息来提供提示。在中间层没有任何额外损失的情况下,KDCL降低了优化模型的难度。

协作学习:在网络蒸馏框架中,学生在培训过程中模仿老师。DML[32]建议同伴学生通过每对学生之间的交叉熵损失相互学习。共蒸馏[1]类似于DML,而它通过在更新足够的步骤后增加蒸馏损失来迫使学生网络更长时间地保持其多样性。受自我升华的启发,提出了训练目标网络的多分支变体,以建立一个强大的动态教师。ONE[15]构造多个分支分类器,并训练门控制器来对齐教师的预测。CLNN[22]通过分层多分支设计来促进每个分支的多样性,并提出相应地缩放梯度。与上述方法采用的通过平均logits来生成软目标不同,KDCL被建议动态生成软目标,以提高所有学生,即使存在显著的成绩差距。软目标也被设计为提高输入数据域中的不变性。

集成方法:我们的工作也与网络集成方法有关。多数V oting、Stacked Generalization[27]、GASEN[33]和Super Learner[12]明确选择可靠预测。Dropout[24]、DropConnection[26]和随机深度[11]通常在训练期间创建具有共享权重的指数,然后在测试时对其进行平均。我们的方法侧重于融合学生的信息,保证软目标的质量,以提高学生的泛化能力。

在这里插入图片描述
图2:通过协作学习进行知识提炼的概述(KDCL)。我们为每个网络分别输入失真的图像,以增加对数据域中扰动的不变性。KDCL动态地整合所有学生产生的软目标,以持续提高学生。 h ( x , ϵ ) h(x,\epsilon) h(xϵ)表示随机失真, ϵ \epsilon ϵ是随机种子。

三、知识提炼的协作学习

3.1 Background

在这里插入图片描述
表1:ImageNet-2012验证集的精确度排名前1。第二列是预先训练的教师模型的性能,第三列是用KD损失训练的学生模型的准确性。在硬目标的监督下,学生的准确率为70.1%。

知识提炼是在教师网络的监督下优化学生网络。更确切地说,损失是[10]定义的教师网络和学生网络的软化输出的KL散度
在这里插入图片描述
其中 n n n是批量大小, T T T是温度参数, p \bm{p} p q \bm{q} q表示教师网络和学生网络产生的软化概率分布。我们注意到学生和老师的logit是 z s \bm{z}_s zs z t \bm{z}_t zt。那么 q = s o f t m a x ( z s / T ) \bm{q}=softmax(\bm{z}_s/T) qsoftmaxzs/T,并且软目标 p = s o f t m a x ( z t / T ) \bm{p}=softmax(\bm{z}_t/T) psoftmaxzt/T

一个高质量的老师对于优化一个好学生很重要。如果教师没有得到很好的优化,并且提供嘈杂的监督,那么软目标和基本事实相互冲突的风险就会很高。我们使用ResNet-18[8]作为ImageNet数据集上的学生模型来评估教师质量的影响。所有的教师模型和学生模型都经过了100个时代的训练。在表1中,比较了不同教师模型监督下同一学生网络的表现。当教师的规模对学生来说不太大时,教师的表现会提高,因此它通过成为更好的预测者来为学生提供更好的监督。

3.2 方法

概述:我们建议KDCL以在线方式自动生成软目标,如图2所示。该框架可以被视为一个由多个单独的子网络组成的超级网络。用不同的随机种子分别对原始图像进行增强,并生成软目标来监督所有网络。我们提出了一系列生成软目标的方法,这确保了具有不同能力的学生从协作学习中受益,并增强了网络对输入扰动的不变性。请注意,所有模型都可以独立预测,因此改进不会产生额外的测试计算成本。

损失函数:为了提高泛化性能,我们通过KD损失将软目标的知识提取到每个子网络。所有子网络都是从头开始训练的。使用标准的交叉熵损失,所有网络都使用多任务损失函数进行端到端训练:
在这里插入图片描述
其中 L K D L_{KD} LKD是学生输出和软目标之间的KL偏差, λ λ λ是权衡权重。

KDCL-Naive:在我们的框架中,所有的模型都是学生模型,并且通过组合模型的输出来生成监督。假设有 m m m个子网络,则第 k k k个子网络的logit被定义为 z k \bm{z}_k zk。教师logit z t \bm{z}_t zt表示为
在这里插入图片描述
其中 h h h是与学生的logit相比产生更高质量logit的函数。假设训练样本和测试样本遵循相同的分布,在训练集上损失较小的模型预测会鼓励学生更快地收敛。

一种简单的组合方法是在所有学生中选择交叉熵损失最小的logit,可以定义为
在这里插入图片描述
其中 y y y是一个热标签, L C E L_{CE} LCE是标准交叉熵损失。

KDCL-Linear :天真的组合很容易实现,但教师的logit质量不够。KDCLLinear将教师logit定义为子网络logit的最佳线性组合,这是一种简单但有用的信息融合。找出最佳线性组合可以被视为一个优化问题。设矩阵 Z = ( z 1 T ; z 2 T ; … ; z m T ) \bm{Z}=(\bm{z}^T_1;\bm{z}^T_2;…;\bm{z}^T_m) Z=z1Tz2TzmT。矩阵 Z \bm{Z} Z的每一列代表学生的logit。问题可以说明如下:
在这里插入图片描述
方程5是一个凸优化问题,很容易求解。

KDCL-MinLogit:KDCL线性在训练过程中会产生另一个优化问题,而我们希望网络集成是有效的。作为一种替代方案,我们提出了KDCL-MinLogit方法来生成软目标。logit中的值之间的差异决定了softmax函数产生的概率分布。因此,输出概率表示为
在这里插入图片描述
其中 z c z^c zc是对应于logit中的目标类 c c c的元素。定义 z c = z − z c \bm{z}^c=\bm{z}−z^c zc=zzc,则 z c \bm{z}^c zc的第 c c c个元素对于所有子网络都是0。当logit中的其他元素变小时,具有一个热标签的交叉熵损失将减小。然后,生成教师logit的一种巧妙方法是选择矩阵 Z c \bm{Z}^c Zc每行的最小元素,可以定义为 Z c = ( z 1 c , z 2 c , … , z m c ) \bm{Z}^c=(\bm{z}^c_1,\bm{z}^c_2,…,\bm{z}^c_m) Zc=z1cz2czmc。更确切地说,教师逻辑可以表示为
在这里插入图片描述
其中 z t , j z_{t,j} zt,j是软目标 z t \bm{z}_t zt的第 j j j个元素, Z j , i c Z^c_{j,i} Zj,ic Z c \bm{Z}^c Zc中第 j j j行和第 i i i列的元素。这种方法与主流的深度学习框架兼容。

KDCL-General:泛化能力更强的老师通常会指导学生更好地收敛。验证数据集的性能可以被视为泛化能力的衡量标准。因此,我们建议找到一个 m m m分量网络的最优集合来逼近一般的教师。我们从训练集中随机选取 N N N个例子来构建验证集 D v \mathcal{D}_v Dv,并通过加权平均对分量网络的预测进行组合。权重应满足 w i ∈ [ 0 , 1 ] ( i = 1 , 2 , … , m ) w_i∈[0,1](i=1,2,…,m) wi[0,1]i=12m ∑ i = 1 m w i = 1 \sum ^m_{ i=1} w_i=1 i=1mwi=1。在这个设置中,我们专注于直接测量泛化能力,因此讨论的是概率,而不是logit。输入 x \bm{x} x上的泛化误差定义为
在这里插入图片描述
其中 f ( x ) f(\bm{x}) f(x)是目标类别的预测概率,t是基本事实。集成网络的泛化误差可以表示为
在这里插入图片描述
其中 p ( x ) p(\bm{x}) p(x)是数据分布, C i j C_{ij} Cij表示为
在这里插入图片描述
一般来说,数据的分布是未知的或难以处理的。因此,经验分布被调整为近似值。根据等式9和对权重的约束,最佳权重 w w w可以通过拉格朗日乘法器求解如下:
在这里插入图片描述
其中 w k w_k wk是最佳权重 w w w的第 k k k个元素, C i j − 1 C^{−1}_{ij} Cij1 C \bm{C} C的逆矩阵的第 i i i行和第 j j j列的值。

测量泛化误差产生的计算成本很小,并且由于学习率小,几步更新神经网络的参数不会显著改变输出。因此,我们在每个训练时期之后更新最优权重向量 w w w。此外,在没有任何先验知识的情况下,我们假设所有分量网络在初始化时具有相等的权重 1 / m 1/m 1/m,并且软目标是加权平均概率分布。

不变的协作学习:为了提高对数据域中扰动的不变性,我们为所有学生生成了相同的软目标,这些学生都有类似的失真图像。因此,我们对每个子网络使用相同的数据增强策略随机采样图像,并用上述集成方法融合知识。这种方法增加了训练数据的数量和多样性。有了额外训练数据的知识,软目标鼓励子网络具有较低的泛化误差。

四、实验

在本节中,我们进行了一系列实验,以评估我们在图像分类基准上的训练机制,并在对象检测和分割领域广泛使用的基准COCO数据集[17]上进行转移实验。

4.1 ImageNet上的结果

在ImageNet上的实验中,我们分析了我们基于学生对ResNet-50和ResNet-18生成软目标的方法的有效性,并评估了ImageNet上一系列网络架构。

数据集和培训详细信息:ImageNet数据集包含1000个对象类,其中约128万个图像用于训练,50000个图像用于验证。我们从训练集中分离出20000张图像,每类20个样本,作为验证集,以衡量KDCL General子网络的泛化能力。因此,原始验证集被视为测试集。
在这里插入图片描述
表2:ImageNet上排名前1的准确率(%)。所有模型都通过我们的训练程序重新实现,以便进行公平的比较。增益表示组成部分学生网络改进的总和。ONE和CLNN与不同的网络结构不兼容。因此,仅对ResNet-18的精度进行比较。
在这里插入图片描述
表3:ImageNet上排名前1和前5的准确率(%)。主干是ResNet-18。ONE使用3个分支(Res4块)进行训练,CLNN具有4个头的分层设计。对于KDCL,ResNet-18使用对等网络进行训练。我们将重量衰减设置为0.0001,批量大小设置为2048,动量为0.9。所有ResNet模型都训练了200个历元,在60、120和180个历元时学习率下降了0.1。默认情况下,MobileNetV2[21]模型通过随机梯度下降(SGD)优化300个历元,预热学习率为0.8,并在90、180和270历元时衰减0.1。我们应用了比例和纵横比增强以及光度失真[25]。在测试期间,图像被缩放到256×256,然后是224×224的中心裁剪。

定量比较:表2显示了ImageNet上排名前1的准确率。KD表示知识提炼[10]。DML代表深度相互学习[32]。ONE[15]和CLNN[22]是自蒸馏方法,与不同的网络结构不兼容。因此,仅对ResNet-18的精度进行比较。

根据表2中的结果,我们可以得出以下关键观察结果。DML可以为紧凑模型生成适当的软目标,但当存在显著的性能差距时,会损害复杂模型,因为紧凑模型的预测与复杂模型和基本事实相冲突。KDCL Linear的性能优于KDCL Naive,因为它具有更高质量的软目标。KDCL MinLogit可以更高效,性能与KDCL Linear相当。由于估计不精确,KDCL General的结果不够好。用于组合预测的权重在每个历元而不是每次迭代中更新,以节省计算成本,因此生成的软目标不如KDCL Linear和KDCL MinLogit。
在这里插入图片描述
表4:不同子网络在ImageNet验证集上的比较结果。MBV2是MobileNetV2的缩写。MBV2x0.5表示宽度乘数为0.5。ResNet-50和ResNet-18被训练了100个时期。MBV2和MBV2x0.5被训练了200个时期。

在设置ONE[15]和CLNN[22]之后,共享低层以保存参数。多个分支是集合的,相当于几个相同的网络。为了进行公平的比较,我们选择单个模型作为对等网络,其参数比多分支架构少。我们的方法超越了门控制器预测可学习集成逻辑的复杂ONE,并精心设计了具有分层结构的CLNN,如表3所示。结果证明,由于多分支设计,ONE和CLNN在额外知识方面受到限制。

我们提出的方法适用于各种体系结构。因此,我们对复紧致对和紧致对进行了实验。表4显示,更紧凑的模型MobileNetV2×0.5可以为MobileNetV2、ResNet-18甚至ResNet-50提供提示,因为紧凑模型可以在一些样本上击败复杂模型,如图所示。3。具有1.9M参数的MobileNetV2×0.5有助于提高具有25.6M参数的ResNet-50。事实证明,我们的方法适用于模型之间存在显著性能差距的情况。长时间的训练可以通过随机扭曲训练图像来提供更多不同的软目标,从而提高准确性。因此,对于另外100个训练时期,ResNet50和ResNet-18的前1精度进一步提高了0.8%和1.0%。
在这里插入图片描述
图3:ResNet-50和ResNet-18在ImageNet验证集零件类别上的比较。
在这里插入图片描述
表5:KDCL从集成更多子网络中获益。所有网络都是ResNet-18,以防止网络性能差异的影响。
在这里插入图片描述
表6:ImageNet上排名前1的准确率(%)。ResNet-50利用三种紧凑型模型的知识进行了显著改进。

集合更多的模型:使用两个子网络进行的主要实验显示了良好的结果。我们还证明,集合更多的模型通常会提供更好的准确性。表5显示,组合两个子网络可以以显著的优势优于基线模型。KDCL可以很好地扩展更多的子网络,但增益随着网络的增加而降低。我们推测,强系综网络和附加网络之间的互信息随着系综大小的增加而增加。当在ImageNet上使用具有不同容量的神经网络时,进一步进行实验。表6显示,利用三个紧凑型模型的知识,ResNet-50达到了78.2%的前1级精度。

4.2 CIFAR结果

数据集和培训详细信息。CIFAR-100由32×32个彩色图像组成,包含100个类别。数据集分为一个包含50000个图像的训练集和一个包含10000个图像的测试集。对于KDCL General,我们从训练集中分离出5000张图像,每个类50个样本,作为验证集来衡量学生的泛化能力。所有模型都被训练了200个时期,学习率从0.1开始,并且在100和150个时期学习率下降了0.1。我们将重量衰减设置为0.0005,批量大小设置为128,动量为0.9。所有训练图像都用4个像素填充,并且从填充的图像或其水平翻转中随机采样32×32裁剪。温度T和λ分别为2和1。精度计算为5次运行的中位数。
在这里插入图片描述
表7:我们的生成蒸馏方法在CIFAR-100数据集上的比较和消融结果。ICL是不变的协作学习。我们只报告了ResNet-32的准确性,因为ONE和CLNN与WRN-16-2不兼容。

知识蒸馏缓解了过度拟合:表7的第二行和第三行显示,学生模型在知识提炼方面变得更加通用,甚至超过了教师模型。对于从加宽因子为2(WRN-116-2)的Wide-ResNet-16[30]到ResNet-32的蒸馏(表7中的第二行),我们观察到学生网络ResNet32在火车上的准确率为93.37%,落后于教师网络WRN-116-299.39%,而测试误差低于WRN-116-2。这一现象表明,知识提炼可以缓解过度拟合。

定量比较:与多阶段参数更新相比,由于有效的学习机制和端到端的训练方式,我们提出的大多数方法都优于DML。观察到一个有趣的现象,即KDCL MinLogit和KDCLLinear的表现比KDCL Naive差,这与ImageNet上的结果相冲突。我们推测,CIFAR-100训练集上交叉熵损失较小的软目标会像一个热标签一样导致过度拟合。KDCL-General根据验证集上的最优加权平均值,通过更通用的教师模型显著提高了性能。这一结果证明,我们的方法可以进一步提高知识提取的能力,以缓解过度拟合。它还表明,当数据量有限时,拟合能力和泛化能力之间存在权衡。

表7中的消融研究表明,不变的协作学习是有希望的。这种改进来自于融合不同失真图像的信息,共享的软目标也鼓励子网络以类似的输入进行类似的输出。
在这里插入图片描述
表8:COCO 2017验证集的平均精度(AP)使用预训练的ResNet-18。所有型号都用作更快的RCNN[19],基于FPN[16]的掩码RCNN[7]。

4.3 迁移学习

数据集和培训详细信息:我们遵循常用的实践[19,7]将40k验证集划分为35k和5k子集。包含80k个图像的训练集和35k个子集用于训练。表示为minival集的5k子集用于验证我们的结果。所有模型都在8个GPU上训练了14个时期,每个GPU上有4个图像。学习率从0.04开始,在9和12历元衰减0.1。重量衰减为0.0001,动量为0.9。为了充分利用模型的容量,所有批处理规范化层都处于同步模式,并且没有冻结权重。默认情况下,我们将ROI Pooling替换为ROIAlign[7]以获得更好的结果。

结果:表8报告了对象检测和实例分割的验证集在标准AP度量上的性能(对应于IOU的平均AP从0.5到0.95,步长为0.05。)。基于使用KDCL训练的ResNet-18,检测头的性能比基线提高了0.9%。我们提出的学习机制在实例分割方面也提高了0.6%。这些改进来自于更强大的泛化。总之,这组实验表明,我们的学习机制所带来的改进可以在广泛的任务和数据集中实现。

五、分析

概括错误的定义:广义误差的L2范数(方程8)是为了简单起见,并产生一个简洁的分析解,该解易于实现且高效。实际上,只要函数E(x)=g(f;(x),t)是凸的和非负的(例如交叉熵损失),方程11就成立。我们可以使用Jensen不等式得出如下结论:
在这里插入图片描述
最小化上边界E’可以减少一般化误差。

对损失超参数的敏感性。在主要实验中,我们只需设置超参数入 至1,旨在突出KDCL的有效性。表9中的结果表明,性能对入 在从1到5的大范围内,经过精心调整的超参数确实会带来一些额外的性能增益。
在这里插入图片描述
表9:模型对ResNet-32和WRN-116-2在CIFAR-100上使用KDCL通用方法进行训练。

对数据扩充策略的敏感性。我们采用了Cutout[5],它产生了最先进的结果,来评估我们在CIFAR-100上的方法。表10中的结果——下表证明了我们的方法对数据扩充的选择是不敏感的。
在这里插入图片描述
表10:模型对使用切割策略进行训练。

ICL如何做出贡献?:不变的协作学习(ICL)导致类似的类概率预测,这意味着类内距离很小。我们通过计算每一类概率预测的标准差来衡量预测的相似性。比较基于在CIFAR-100上训练的ResNet-32和WRN-16-2。

在这里插入图片描述
图4:从KDCL General到基线和CIFAR-100上的DML的损失差距曲线。稳健性测试基于KDCL、DML和Vanilla训练发现的ResNet-32解决方案。

标准偏差的平均值分别为0.347和0.343。ICL将平均值降低到0.337和0.336。

对噪音的鲁棒性:我们将噪声带到测试图像中,并观察到我们的方法对随机噪声是鲁棒的。从独立的高斯分布N(0,δ2)中对噪声进行采样,并将其添加到每个像素。标准δ的取值范围为0.0至0.15,步长为0.01。在每个量级上,损失是10次独立测试的平均值。图4显示,随着δ的增加,从KDCL到基线和DML的损失差距变得更加显著。

六、结论

在这项工作中,我们引入了一种新的基于协作学习策略的在线知识挖掘框架。通过我们的集成方法,不同能力的模型可以从协作学习中受益。此外,我们通过融合图像失真的信息来传递知识,从而提高不变性。在ImageNet、CIFAR和COCO上的实验表明,KDCL显著降低了生成误差,同时保持了学生的独立预测。当训练的模型在其他视觉任务上进行微调时,性能增益会持续存在。KDCL可以进一步扩展到其他识别任务,并有助于优化多个相关任务的协作学习,如联合人类解析和姿态估计。

鸣谢这项工作得到了香港大学基础研究种子基金、启动基金、SenseTime再搜索捐赠、中国国家自然科学基金会U19B2034和61836014号赠款的部分支持。


参考文献

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
知识蒸馏Knowledge Distillation)是一种将一个较大的模型的知识转移到一个较小的模型的技术。这种技术通常用于减小模型的大小和推理成本,同时保持模型在任务上的性能。 在Python中,你可以使用以下步骤来实现知识蒸馏: 1. 准备教师模型和学生模型:首先,你需要准备一个较大的教师模型和一个较小的学生模型。教师模型通常是一个预训练的大型模型,例如BERT或其他深度学习模型。学生模型是一个较小的模型,可以是一个浅层的神经网络或者是一个窄的版本的教师模型。 2. 训练教师模型:使用标注数据或其他训练数据集来训练教师模型。这个步骤可以使用常规的深度学习训练方法,例如反向传播和随机梯度下降。 3. 生成教师模型的软标签:使用教师模型对训练数据进行推理,并生成教师模型的软标签。软标签是对每个样本的预测概率分布,而不是传统的单一类别标签。 4. 训练学生模型:使用软标签作为学生模型的目标,使用训练数据集来训练学生模型。学生模型的结构和教师模型可以不同,但通常会尽量保持相似。 5. 进行知识蒸馏:在训练学生模型时,除了使用软标签作为目标,还可以使用教师模型的中间层表示或其他知识来辅助学生模型的训练。这可以通过添加额外的损失函数或使用特定的蒸馏算法来实现。 以上是实现知识蒸馏的一般步骤,具体实现细节可能因应用场景和模型而有所不同。你可以使用深度学习框架(如TensorFlow、PyTorch等)来实现这些步骤,并根据需要进行调整和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值