知识蒸馏论文翻译(8)—— Knowledge Distillation Meets Self-Supervision(自监督)

XXXXXXX

文章目录

  • 知识蒸馏论文翻译(8)—— Knowledge Distillation Meets Self-Supervision(自监督)
  • 摘要
  • 一、介绍
  • 二、相关工作
  • 三、方法
    • 3.1 初期
    • 3.2 学习SSKD
    • 3.3 不完美的自我监督预测
  • 四、实验
  • 五、结论

摘要

知识蒸馏是一种重要的模型压缩和迁移学习技术,它涉及从教师网络中提取“暗知识”来指导学生网络的学习。与以前利用特定于体系结构的线索(如激活和注意力)进行蒸馏的工作不同,这里我们希望探索一种更通用、模型不可知的方法,从预先培训过的教师模型中提取“更丰富的黑暗知识”。我们表明,看似不同的自我监督任务可以作为一个简单而强大的解决方案。例如,在转换实体之间进行对比学习时,教师网络的噪声预测反映了其语义和姿势信息的内在组成。通过利用这些自我监督信号之间的相似性作为辅助任务,可以有效地将隐藏的信息从教师传递给学生。在本文中,我们讨论了利用选择性传输的噪声自我监控信号进行蒸馏的实用方法。我们进一步表明,自我监督信号改善了传统蒸馏,在少量喷射和噪声标签的情况下获得了可观的收益。鉴于从自我监督中挖掘出的知识更丰富,我们的知识提炼方法在标准基准(即CIF AR100和ImageNet)上,在类似架构和跨架构设置下,实现了最先进的性能。在跨架构设置下,这种优势更加明显,我们的方法在6个不同的师生对的CIFAR100上的平均准确率比最先进的CRD[42]高出2.3%2.3\%2.3%。

代码:https://github.com/xuguodong03/SSKD.

一、介绍

Hinton等人[16]的开创性论文表明,从大量模型集合中获得的知识可以提炼并转移到学生网络中。具体来说,可以提高最终softmax的温度,以生成教师的软目标,用于指导学生的培训。该指导通过最小化教师和学生输出之间的库尔贝克-莱布尔(KL)差异来实现。一个有趣且鼓舞人心的观察结果是,尽管教师模型为错误的课堂分配了概率,但错误答案的相对概率对于训练模型的泛化来说是非常有用的。隐藏在这些二次概率中的知识有时被称为“暗知识”。
图1。传统KD[16]和SSKD之间的差异。我们将对正常数据和单个分类任务的模拟扩展到对转换数据的模拟,并增加了一个自我监督借口任务。教师的自我监督预测包含丰富的结构化知识,可以促进学生更全面的知识提炼。在这个例子中,转换图像的对比学习可以作为自我监督的借口任务。它通过图像变换t(·)构造一个正对和几个负对,然后鼓励网络识别正对。教师和学生的主干分别用f_t和f_s表示,而相应的输出用t和s表示,下标表示索引

在这项工作中,我们着迷于如何从神经网络中提取更丰富的“暗知识”。现有的研究主要关注学生应该模仿哪些类型的教师网络中间表征。这些表示包括注意图[46]、gram矩阵[44]、梯度[39]、预激活[15]和特征分布统计[17]。虽然网络的中间表示可以提供更细粒度的信息,但这些知识媒介的一个共同特征是,它们都来自单个任务(通常是原始分类任务)。这些知识是高度特定于任务的,因此,这些知识可能只反映了封装在复杂网络中的完整知识的一个方面。为了挖掘更丰富的暗知识,我们需要在原始分类任务之外增加一个辅助任务,以便提取更丰富的信息来补充分类知识。

在这项研究中,我们展示了一种看似不同的学习方案——自我监督学习,当被视为辅助任务时,可以帮助从教师网络中获得更全面的知识。自我监督学习的最初目标是通过一个借口任务从数据中获得自然监督来学习表征。借口任务的例子包括基于范例的方法[9]、旋转预测[11]、拼图[30]和对比学习[4,27]。为了将自监督学习作为知识提炼的辅助任务,可以将借口任务应用于教师,方法是在教师的主干上附加一个轻量级的辅助分支/模块,用冻结的主干更新辅助模块,然后从辅助模块中提取相应的自监督信号进行提炼。图1显示了将对比学习借口任务[4]与知识提炼相结合的示例。

图1中的示例揭示了使用自监督学习作为知识提取辅助任务(我们将其命名为SSKD)的几个优点。首先,在传统的知识提炼中,学生基于单个分类任务从正常数据中模仿老师。SSKD将这一概念扩展到了更广泛的范围,即模仿转换后的数据和额外的自我监督借口任务。这使学生能够从教师的自我监督预测中获取更丰富的结构化知识,而这是单个任务无法充分获取的。我们发现,这样的结构化知识不仅提高了整体蒸馏性能,而且还使学生能够在少数镜头和嘈杂的标签场景下更好地概括。

SSKD的另一个优点是它是模型不可知的。以前的知识提取方法在跨体系结构设置下性能下降,因为它们传递的知识非常特定于体系结构。例如,当将ResNet50[13]的功能转移到ShuffleNet[51]时,学生可能会因为架构差异而在模仿方面遇到困难。相比之下,SSKD只传输最后一层的输出,因此允许学生模型有更灵活的解决方案空间来搜索最适合其自身架构的中间表示。

贡献:我们提出了一个名为SSKD的新框架,该框架利用自我监督任务来促进从教师网络到学生网络提取更丰富的知识。据我们所知,这是第一个通过自我监督任务定义知识的工作。我们仔细研究了不同的自我监督借口任务的影响,以及噪声自我监督预测对知识提取性能的影响。我们发现,SSKD极大地提高了学生网络的可推广性,并在少数镜头和嘈杂的标签场景下提供了显著的优势。在CIF AR100[23]和ImageNet[6]两个标准基准上进行的大量实验表明,SSKD比其他最先进的方法更有效。

二、相关工作

知识蒸馏:知识提炼利用来自地面真相标签和更大网络的监督信号训练一个更小的网络。Hinton等人[16]提出通过最小化类别分布的KL差异来匹配两个模型分类器的输出。除了最后一层逻辑,教师网络还从主干提取紧凑的特征表示。

FitNets[37]提出利用二语损失模拟教师网络的中间特征图。AT[46]使用注意力转移来教学生哪个区域是分类的关键。FSP[44]提取不同层之间的二阶统计量(Gram矩阵)。为了减少信息泄漏,FT[20]在教师网络中引入了一个自动编码器,将特征压缩为“因子”,然后使用翻译程序在学生网络中提取“因子”。AB[15]强迫学生在教师网络中学习激活前映射的二值化值。IRG[25]探讨了样本之间的相似性是否传递了更多的知识。
KDSVD[19]将其方法称为自监督知识提取。然而,本研究将教师的特征奇异向量相关图视为自我监督标签。标签是从老师那里获得的,而不是自我监督的借口任务。因此,他们的自我监督学习的概念与传统的不同。据我们所知,我们的工作是第一项通过自我监督的借口任务调查定义知识的研究。CRD[42]还将自我监督(SS)与知识提炼相结合。不同之处在于SS的目的和对比任务的执行方式。在CRD中,对比学习是跨教师和学生网络进行的,以最大化两个网络之间的相互信息。在SSKD中,对比任务是定义知识的一种方式。它在两个网络中分别执行,然后通过KL发散进行匹配,这与CRD非常不同。

自监督学习:自我监督方法设计各种借口任务,其标签可以从数据本身派生。在解决这些任务的过程中,网络学习有用的表示法。基于借口任务,SS方法可以分为几类,包括基于结构的方法,如修复[35]和着色[50],基于预测的方法[7,9,11,21,28,30,31,47,49],基于聚类的方法[3,48],基于生成的方法[8,10,12]和基于对比的方法[4,14,27,32,41]。范例[9]对每个训练图像应用重变换,并将从同一图像生成的所有图像视为一个单独的类别。此伪标签用于更新网络。Jigsaw puzzle[30]将图像分割成几个不重叠的补丁,并迫使网络识别混乱的顺序。Jigsaw[31]还涉及SS和KD。但它利用知识转移来提高自我监督绩效,解决了SSKD的一个逆问题。旋转[21]为网络提供旋转图像,并迫使其识别旋转角度。为了完成这项任务,网络必须理解图像中包含的语义信息。SimCLR[4]对训练样本进行增广,要求网络通过对比损失匹配原始图像和变换图像。考虑到SimCLR[4]所取得的优异性能,我们将其作为SSKD中的主要借口任务。然而,SSKD不仅限于使用对比学习,许多其他借口任务[9,21,30]也可以达到这一目的。我们在Sec4.1中调查它们的有用性。

三、方法

本节分为三个主要部分。我们首先简要回顾一下3.1节中的知识提炼和自我监督。为了自我监督,我们讨论了对比预测作为我们期望的借口任务,尽管SSKD并不局限于对比预测。3.2节规定了教师和学生模型的培训过程。最后,我们讨论了噪声自监督预测的影响以及在3.3节中处理噪声的方法。.

3.1 初期

Hinton等人[16]认为,与硬标签(one-hot向量)相比,经过优化的教师模型预测的软目标可以提供额外的信息。分配给错误类别的相对较高的概率编码了不同类别之间的语义相似性。强迫学生模仿老师的预测会让学生学习到这些无法用硬标签单独表达的次要信息。为了获得软目标,在[16]中引入了温度缩放,以软化峰值softmax分布:

其中xxx是数据样本,iii是类别指数,是xxx在类别iii上获得的分数logit,τ\tauτ是温度。通过KL散度测量的知识蒸馏损失为:

其中ttt和sss分别表示教师和学生模型,CCC表示班级总数,DxD_xDx​表示数据集。学生模型的完全损失函数LLL是标准交叉熵损失LceL_{ce}Lce​和知识提取损失LkdL_{kd}Lkd​的线性组合:

其中λ1\lambda_1λ1​和λ2\lambda_2λ2​是平衡重。

作为自我监督任务的对比预测:基于对比预测方法[4,14,27,32,41]在自我监督学习中的成功,我们将对比预测作为我们框架中的自我监督任务。对比预测的总体目标是通过潜在空间中的对比损失,使数据点与其转换版本之间的一致性最大化。

给定一个包含NNN个数据点的小批量{xi}i=1:N\{x_i\}_{i=1:N}{xi​}i=1:N​,我们对每个数据点应用独立变换t(⋅)t(\cdot)t(⋅)(从同一分布τ\tauτ中采样),并获得{x~i}i=1:N\{\tilde{x}_i\}_{i=1:N}{x~i​}i=1:N​。两个变量都被输入教师或学生网络,以提取表示ϕi=f(xi)\phi_i=f(x_i)ϕi​=f(xi​),ϕ~i=f(x~i)\tilde{\phi}_i=f(\tilde{x}_i)ϕ~​i​=f(x~i​)。我们遵循Chen等人[4]的观点,在网络顶部添加一个投影头。投影头是一个2层多层感知器。它将表示映射到一个潜在空间,在该空间中应用对比损失,即zi=MLP(ϕi)z_i=MLP(\phi_i)zi​=MLP(ϕi​),z~i=MLP(ϕ~i)\tilde{z}_i=MLP(\tilde{\phi}_i)z~i​=MLP(ϕ~​i​)。

我们取(x~i,xi)(\tilde{x}_i,x_i)(x~i​,xi​)为正对,(x~i,xi)k≠i(\tilde{x}_i,x_i)_{k \not= i}(x~i​,xi​)k​=i​为负对。给定一些x~i\tilde{x}_ix~i​,对比预测任务是从集合(xi)i=1:N(x_i)_{i=1:N}(xi​)i=1:N​中识别出相应的xix_ixi​。为了达到这一目标,网络应该最大化正对之间的相似性,最小负对之间的相似性。在这项工作中,我们使用余弦相似度。如果我们把{x~i}\{\tilde{x}_i\}{x~i​}和{xi}\{x_i\}{xi​}之间的相似性组织成矩阵形式AAA,那么我们有:

其中Ai,jA_{i,j}Ai,j​表示x~i\tilde{x}_ix~i​和xix_ixi​之间的相似性。对比预测的损失是:

式中,τ\tauτ是另一个温度参数(可以不同于等式(1)中的τ\tauτ)。损失形式类似于softmax损失,可以理解为最大化z~i\tilde{z}_iz~i​和ziz_izi​来自正对的概率。在匹配{x~i}\{\tilde{x}_i\}{x~i​}和{xi}\{x_i\}{xi​}的过程中,网络学习变换不变表示。然而,在SSKD中,主要目标不是学习对变换不变的表示,而是利用对比预测作为辅助任务,从教师模型中挖掘更丰富的知识。

3.2 学习SSKD

SSKD的框架如图2所示。教师和学生都由三个部分组成:用于提取表征的主干f(⋅)f(\cdot)f(⋅)、用于主要任务的分类器p(⋅)p(\cdot)p(⋅)和用于特定自我监督任务的自我监督(SS)模块。在本文中,对比预测被选为SS任务,因此SS模块ct(⋅,⋅)c_t(\cdot,\cdot)ct​(⋅,⋅)和cs(⋅,⋅)c_s(\cdot,\cdot)cs​(⋅,⋅)由一个两层MLP和一个相似性计算模块组成。实验中将比较更多的SS任务。

培训教师网络。输入为正常数据{xi}\{x_i\}{xi​}和转换版本{x~i}\{\tilde{x}_i\}{x~i​}。变换t(⋅)t(\cdot)t(⋅)从预定义的变换分布t中采样。在这项研究中,我们选择了四种变换,即颜色下降、旋转、裁剪,然后调整大小和颜色失真,如图2所示。可以包含更多的转换。我们将xxx和x~\tilde{x}x~馈送到主干,并获得它们的表示ϕ=ft(x)\phi=f_t(x)ϕ=ft​(x),ϕ~=ft(x~)\tilde{\phi}=f_t(\tilde{x})ϕ~​=ft​(x~)。

教师网络培训分为两个阶段。在第一阶段,利用分类损失对网络进行训练。只更新主干ft(⋅)f_t(\cdot)ft​(⋅)和分类器pt(⋅)p_t(\cdot)pt​(⋅)。请注意,分类损失不是在转换数据x~\tilde{x}x~上计算的,因为转换TTT比通常的数据扩充要重得多。它的目标不是扩大训练集,而是在视觉上减少与的相似性。它使对比更加困难,这有利于表征学习[4]。强迫网络正确地对x~\tilde{x}x~进行分类会破坏从xxx学习到的语义信息,并损害性能。

图2。SSKD的培训计划。输入图像通过指定的转换进行转换,为自我监督任务准备数据。教师和学生网络都包含三个部分,即主干f(⋅)f(\cdot)f(⋅)、分类器p(⋅)p(\cdot)p(⋅)和SS模块c(⋅,⋅)c_(\cdot,\cdot)c(​⋅,⋅)。教师培训分为两个阶段。第一阶段用分类任务训练ft(⋅)f_t(\cdot)ft​(⋅)和pt(⋅)p_t(\cdot)pt​(⋅),第二阶段用自我监督任务微调cs(⋅,⋅)c_s(\cdot,\cdot)cs​(⋅,⋅)。在学生培训中,除了标准标签丢失外,我们还强制学生在分类输出和自我监督输出上模仿老师

在第二阶段中,我们固定ft(⋅)f_t(\cdot)ft​(⋅)和pt(⋅)p_t(\cdot)pt​(⋅),并且仅使用公式(5)中的对比预测损失更新SS模块cs(⋅,⋅)c_s(\cdot,\cdot)cs​(⋅,⋅)中的参数。

培训的两个阶段有不同的作用。第一阶段是典型的分类网络训练。第二阶段,旨在调整SS模块,以使用现有主干的特征进行对比预测。这使我们能够从SS模块中提取知识进行蒸馏。值得指出的是,由于MLP头较小,第二阶段培训效率较高,因此很容易为SSKD准备教师网络。

培训学生网络:在训练教师的SS模块后,我们沿着行维度将softmax(带温度标度)应用于教师的相似性矩阵AAA(方程(4)),得到概率矩阵BtB^tBt,其中Bi,jtB^t_{i,j}Bi,jt​表示x~i\tilde{x}_ix~i​和xix_ixi​为正对的概率。类似的操作也适用于学生以获得BsB^sBs。使用和,我们可以计算SS模块输出的教师BtB^tBt和BsB^sBs学生之间的KL发散损失:

转换后的数据点x~\tilde{x}x~是对比预测任务的副产品。虽然我们不要求学生正确分类,但我们可以鼓励学生的分类器输出接近教师的输出LssL_{ss}Lss​。损失函数为LTL_TLT​:

学生网络的最终损失是上述术语的组合,即交叉熵损失LceL_{ce}Lce​,公式(2)中的LkdL_{kd}Lkd​,公式(6)中的,和公式(7)中的:

其中λi\lambda_iλi​是平衡权重。

3.3 不完美的自我监督预测

在进行对比预测时,教师可能会产生不准确的预测,例如,将xkx_kxk​分配给x~i,i≠k\tilde{x}_i,i\not=kx~i​,i​=k。这很可能是因为教师的主干没有与SS模块一起进行对比预测。与传统的知识提炼类似,教师分配给错误答案的相对概率包含丰富的教师知识。转移这些不准确但结构化的知识是我们SSKD的核心。

然而,我们经验发现,一个极其错误的预测仍然可能误导学生的学习。为了改善这些异常值的负面影响,我们采用启发式方法进行选择性转移。具体来说,我们将预测的误差水平定义为分类任务中相应的真实值标签的排名。给定一个转换后的样本x~i\tilde{x}_ix~i​和对应的正配对指数iii,我们将网络分配给每个{xi}i=1:N\{x_i\}_{i=1:N}{xi​}i=1:N​的分数按降序排序。xix_ixi​的秩代表预测的误差水平x~i\tilde{x}_ix~i​。排名为1意味着预测是完全正确的。级别越低表示错误程度越高。在对学生的培训过程中,我们根据教师预测的误差水平,将所有的x~\tilde{x}x~按升序排列在一个小批量中,只传输所有正确的预测和排名前k%k\%k%的错误预测。这种策略可以抑制教师预测中的潜在噪音,只传递有益的知识。

四、实验

五、结论


知识蒸馏论文翻译(8)—— Knowledge Distillation Meets Self-Supervision(自监督)相关推荐

  1. 知识蒸馏论文翻译(1)——CONFIDENCE-AWARE MULTI-TEACHER KNOWLEDGE DISTILLATION(多教师知识提炼)

    知识蒸馏论文翻译(1)--CONFIDENCE-AWARE MULTI-TEACHER KNOWLEDGE DISTILLATION(多教师知识提炼) 文章目录 知识蒸馏论文翻译(1)--CONFID ...

  2. 知识蒸馏论文翻译(5)—— Feature Normalized Knowledge Distillation for Image Classification(图像分类)

    知识蒸馏论文翻译(5)-- Feature Normalized Knowledge Distillation for Image Classification(图像分类) 用于图像分类的特征归一化知 ...

  3. 知识蒸馏论文翻译(7)—— Knowledge Distillation from Internal Representations(内部表征)

    知识蒸馏论文翻译(7)-- Knowledge Distillation from Internal Representations(内部表征) 文章目录 知识蒸馏论文翻译(7)-- Knowledg ...

  4. 知识蒸馏论文翻译(3)—— Ensembled CTR Prediction via Knowledge Distillation

    知识蒸馏论文翻译(3)-- Ensembled CTR Prediction via Knowledge Distillation 经由知识蒸馏的集合CTR预测 文章目录 知识蒸馏论文翻译(3)-- ...

  5. 【AAAI 2021】多出口架构的知识蒸馏:Harmonized Dense Knowledge Distillation Training for Multi-Exit Architectures

    [AAAI 2021]多出口架构的知识蒸馏:Harmonized Dense Knowledge Distillation Training for Multi-Exit Architectures ...

  6. 论文翻译: Relational Knowledge Distillation

    Relational Knowledge Distillation 这是 CVPR 2019年的一篇文章的译文. 文章链接: Relational Knowledge Distillation 附上G ...

  7. 论文阅读:Knowledge Distillation: A Survey 知识蒸馏综述(2021)

    论文阅读:Knowledge Distillation: A Survey 知识蒸馏综述2021 目录 摘要 Introduction Background 知识 基于响应的知识 基于特征的知识 基于 ...

  8. Paper:《Distilling the Knowledge in a Neural Network神经网络中的知识蒸馏》翻译与解读

    Paper:<Distilling the Knowledge in a Neural Network神经网络中的知识蒸馏>翻译与解读 目录 <Distilling the Know ...

  9. [论文解读]Explaining Knowledge Distillation by Quantifying the Knowledge

    Explaining Knowledge Distillation by Quantifying the Knowledge 简介 论文标题 Explaining Knowledge Distilla ...

最新文章

  1. lisp标注界址点号_(IP服务年终大盘点第二期)协会理事单位湖北高韬律师事务所完成韩国商标注册优先审查...
  2. 配置FTP服务-要点总结
  3. 分布式系统之CAP理论
  4. Java 动态代理实现
  5. redis——NOSQL及redis概述
  6. 经典排序算法之基数排序(C语言版)
  7. java 创建线程_java多线程|创建线程的各种方式
  8. GBDT算法之流失预警模型
  9. 介绍Jupyter和Pandas
  10. php面向对象开发技术 课本,PHP面向对象编程-高级技术书 - php
  11. sql server 2012 安装与下载
  12. jquery悬浮在右侧的在线客服代码
  13. Linux常用命令讲解(pdf在我的资源可以下载,有图)
  14. python导入随机函数库_Python随机函数库random的使用方法详解
  15. CountDownLatch:别浪,等人齐再团!
  16. 系统端口被占用解决方法
  17. 91m2中对DB进行了一次封装的DBHelpUtil工具类
  18. Oracle常见授权与回收权限——grant和revoke
  19. 好用的制造业erp系统软件有哪些?
  20. 简单说说 Servlet

热门文章

  1. ios浏览器微信支付回调页面_iOS H5微信支付和微信支付完成之后跳转回APP
  2. 关于 Microsoft Visual Studio
  3. [chat-GPT]解决OpenAI‘s services are not available in your country问题
  4. C练题笔记之:Leetcode-832. 翻转图像
  5. GD32F303CCT6与GD32F407VKTC spi 主从通信
  6. Vuex使用以及模块化\namespaced 命名空间
  7. Laravel 联合查询 count计数去重
  8. LabVIEW设计自定义指示灯和按钮控件
  9. python中的end的作用
  10. 数据库读写分离(一)