cvpr VIT知识蒸馏综述Knowledge Distillation in Vision Transformers: A Critical Review解读
Published:
论文链接: Knowledge Distillation in Vision Transformers: A Critical Review
摘要:在自然语言处理(NLP)领域,Transformer模型通过采用基于注意力机制的编码器-解码器模型,已经彻底改变了这一领域。最近,一些开创性的研究工作将类似Transformer的架构应用于计算机视觉(CV)领域。鉴于这些显著的成果,即它们在分类、检测和分割等三项基础计算机视觉任务,以及多种感知数据流(图像、点云以及视觉语言)上所展现出的有效性,视觉Transformer(ViT)由于其强大的建模能力,已显示出相较于卷积神经网络(CNN)令人瞩目的性能提升。然而,这些模型对资源需求巨大,使得它们难以部署在对延迟有严格要求且资源受限的设备上,这一问题亟待研究关注。
为解决这些问题,人们已经开发出了许多解决方案,例如压缩型Transformer,以及实现诸如扩张卷积、最大最小池化、一维卷积等压缩功能。模型压缩作为一种潜在的解决方法,近来吸引了大量的研究关注。对于如此激进的压缩方案,前沿的方法通常会引入复杂的压缩流程。此外,它们很少关注那些已经通过知识蒸馏(KD)进行了深度压缩的较小的Transformer模型,并且这些模型需要系统的研究来支持其结论。这促使我们去研究在不影响性能的前提下,基于知识蒸馏方法对Transformer进行有效压缩的技术。在本研究中,内存效率并非主要目标,而是力求在计算效率、简单性和内存需求之间找到平衡。
本文回顾了基于激进知识蒸馏的有效Transformer压缩技术(降低这些计算和内存需求)。本文阐明了知识蒸馏在应对这些挑战且不降低性能方面所发挥的作用。除了用于Transformer压缩的知识蒸馏方法外,本文还揭示了Transformer所面临的一些有待解决的研究挑战。
全文分为三个主要部分;第一部分介绍了视觉Transformer的通用框架并进行了概述。第二部分讨论了视觉Transformer在计算机视觉领域面临的主要挑战。最后,本文对为使视觉Transformer在计算和内存需求方面实现资源高效利用而采用的各种压缩方法进行了对比分析。 关键词:计算机视觉;视觉Transformer;自然语言处理;浮点运算次数;知识蒸馏;流形知识蒸馏
1)引言
在不断发展的人工智能(AI)领域中,深度神经网络(DNN)已成为基础组成部分,而Transformer模型因其能够处理包括自然语言处理和图像识别等广泛任务的能力,成为了一种典范性的架构。Transformer模型采用自注意力机制作为核心创新,来衡量输入数据不同部分的重要性,从而在大型数据集中捕捉复杂的模式。作为Transformer模型的一个重要组成部分,自注意力机制使得所有序列元素之间能够直接交互,类似于基于相关性的过滤。这一特性增强了模型的上下文感知能力,但也以二次方的方式加剧了计算和内存的使用,阻碍了模型的可扩展性。为了解决这些可扩展性问题,研究人员一直在开发高效的Transformer模型,使其在保持模型有效性的同时,尽量减少内存占用和计算需求。知识蒸馏(KD)发挥了关键作用,它提供了在不降低性能的情况下压缩模型的方法,使得Transformer模型能够适用于随机存取存储器(RAM)和处理能力有限的设备端应用。除了提高其适用性之外,这种精细的方法还为Transformer模型在边缘计算、移动设备等领域的部署开辟了新途径,这是使人工智能对所有人来说更易获取和更有用的重要一步。
在资源有限的设备中,模型效率的概念通常与模型所需的内存量以及计算量相关。Transformer是本次讨论的主题,特别是它们在处理复杂数据输入时的性能以及高效处理长序列的能力。对于将该技术应用于处理如文本、图像和视频等详细内容而言,高水平的效率是关键,因为它们在先进计算系统中的更广泛集成和应用在很大程度上依赖于这种效率。本文提出了一种分类方法,展示了高效Transformer模型的发展里程碑,重点关注它们在自然语言处理(NLP)和计算机视觉领域的创新和应用。通过使用视觉Transformer,我们研究了处理和理解视觉和文本内容所面临的挑战,并研究了各种可用于提升视觉Transformer(ViT)性能的蒸馏技术,证明了它们有能力处理广泛的人工智能任务。
在本次综述中,我们关注知识蒸馏所带来的效率和性能提升的两个方面,强调需要开发能够将计算需求与先进能力相结合的模型,这对于资源有限的应用来说至关重要。
2)视觉Transformer(ViT)概述
通过使用自注意力机制,Transformer模型在自然语言处理和计算机视觉领域引发了变革,使得能够更好地理解序列,而不受序列长度的限制。除了在自然语言处理中发挥关键作用外,这种架构还催生了多种变体,包括Reformer和Performer,它们提高了内存和计算效率。视觉Transformer(ViT)的引入标志着图像处理领域的重大进步,超越了传统卷积神经网络和循环神经网络的能力。这一进步不仅提高了Transformer的处理效率,还扩展了其应用范围,使其能够应对各种行业中的广泛人工智能挑战。
原始的Transformer是克服循环神经网络(RNN)模型缺点的优秀模型,但它仍然存在一些关键挑战,例如有限的上下文依赖和上下文碎片化[1]。Transformer XL是Transformer的扩展版本(它是超长版本)。这种Transformer通过循环机制和相对位置编码对原始Transformer进行了扩展。对于Transformer-XL来说,它不是从头开始计算每个片段的隐藏状态,而是使用先前学习的片段的隐藏状态。除了解决原始Transformer模型中存在的问题之外,该模型还克服了长期依赖的问题。保留所有这些隐藏状态会增加每次关注时的计算和存储成本,这是这些具有革命性的自然语言处理模型的主要缺点之一。
Transformer模型的简洁性和通用性不仅使其成为自然语言处理(NLP)领域的事实标准,而且在计算机视觉领域也日益受到欢迎。基于生成对抗学习(GAN)模型的视觉模型取得了巨大成功。但这些模型通常是为高度专业化的任务而构建的。每当引入新任务时,这些模型都必须重新构建或重新训练。鉴于此,通用学习模型越来越受欢迎。视觉Transformer(ViT)就是这样一种模型的例子。
Transformer起源于自然语言处理(NLP)应用[1],其目的是理解文本并得出有意义的结论。ViT是Transformer在图像领域的应用,只是为了适应不同的数据类型做了一些实现上的修改。特别是,ViT使用了不同的标记化和嵌入方法。尽管如此,其通用架构仍然相同。输入图像被分割成称为视觉标记或标记的图像块。通过编码向量,图像中一个图像块的位置被嵌入,并输入到Transformer编码器网络中,这与处理文本输入的网络本质上是一样的。
视觉Transformer的通用方法如图1所示:由于其灵活性,ViT被广泛应用于各种视觉任务。例如图像分类[2]、图像到文本/文本到图像生成[3]、视觉推理[4]、关联学习[5]和多模态学习[6]。与最先进的卷积神经网络(CNN)相比,ViT由于其强大的建模能力,在多个基准测试中表现出更好的性能。ViT在预训练时所需的计算资源更少,同时性能超过了CNN。当在足够的数据上进行训练时,ViT可以使用少四倍的计算资源超越类似的最先进CNN的性能。与CNN不同,ViT中的自注意力机制能够对整个图像的信息进行全局嵌入。该模型还学习如何对图像块的相对位置进行编码,以便从训练数据中重建图像的结构。视觉Transformer模型受超参数的影响,如优化器、网络深度以及特定于数据集的参数。
2.1)开放的研究挑战
ViT面临的主要挑战总结在以下几个小节中:
- i)位置编码 Transformer模型是排列等变的。通常会添加位置嵌入和段嵌入,以提供关于输入标记的顺序和类型信息。一些研究已经探讨了如何将位置信息纳入Transformer中[6],[7],[8]。在许多[6],[7]和[8]的研究中,相对位置编码被认为优于绝对位置编码。然而,尚不清楚是什么导致了这种差异。论文[9]的作者表明,具有绝对位置编码的Transformer是所有序列到序列函数的通用逼近器。这[9]表明绝对位置编码可以捕获位置信息。那么,为什么相对位置编码的性能优于绝对位置编码呢?因此,需要系统地研究和理解不同位置编码方法的优缺点。
[10]中假设,在注意力计算过程中,单词和位置嵌入之间的互相关可能导致绝对位置编码的性能不佳。尽管在一些相对位置编码方法[11],[12]中存在交叉项,但这些方法的性能优于其他位置编码方案。有多种位置编码技术可用。一个简单的例子如下:
其中,ps和l分别是位置向量的长度和位置,(j)是向量中每个元素的索引。此外,二维插值对预训练的位置编码进行补充,以便即使输入图像具有任意分辨率,也能使图像块保持相同的顺序。
- ii)较弱的归纳偏差 虽然ViT是CNN的优秀替代品,但一个使其应用颇具挑战性的限制是需要大量数据集。ViT缺乏CNN中固有的归纳偏差,例如平移等变性,这使得在数据不足的情况下进行训练时,其泛化能力较差。如果在更大的数据集(如包含1400万至3亿张图像的谷歌内部大型数据集(JFT-300))上训练模型,情况就会改变。这使得ViT在诸如随机增强(Rand-Aug)[13]、裁剪混合(Cut-Mix)[14]、混合(Mix-up)[15]等先进的数据增强技术上非常可靠。已经发现,即使数据量相对较少,CNN也能够学习,这主要是由于其内在的归纳偏差。换句话说,归纳偏差有助于模型更快地学习并更好地进行泛化。尽管卷积架构在计算机视觉领域仍然占主导地位[16-18],但人们对其探索和应用的兴趣仍在增加。
在自然语言处理取得成功之后,一些研究人员将CNN与自注意力机制结合起来[19,20]。在一些研究工作中,如[21,22],作者完全用自注意力机制取代了卷积。尽管这些模型在理论上具有高效性,但它们必须在现代硬件加速器上成功地进行扩展,而这往往会导致次优的解决方案。因此,像经典的残差网络(ResNet)这样的架构仍然是大规模图像识别的黄金标准[23,24]。
阿列克谢·多索维茨基(Alexey Dosovitskiy)等人[25]指出,尽管Transformer在自然语言处理中是事实标准,但其在视觉任务中的应用仍然有限。该论文的作者尽可能少地修改,将标准的Transformer架构直接应用于图像。他们将图像分割成图像块,然后将这些图像块的线性嵌入作为Transformer的输入。这些图像块就像自然语言处理中的标记一样。他们使用ImageNet[26]、Cifar-100[27]和VTAB[28]等中等规模的数据集,以监督的方式在图像分类任务上训练模型。
这些模型取得了合理的准确率,尽管比残差网络低几个百分点。作者观察到,在大型数据集上进行训练比归纳偏差更重要。作者得出结论,ViT在转移到下游任务之前,如果在上游任务上进行预训练,可以取得优异的结果。在多个图像识别基准测试中,当在大型的ImageNet-21k和JFT-300M数据集上进行预训练时,ViT的表现与最先进的模型相当,甚至在某些情况下超过了它们。具体来说,最好的模型在ImageNet上达到88.55%的准确率,在ImageNet-Real上达到90.72%,在CIFAR-100上达到94.55%,在VTAB上达到77.63%。
论文[19]中提出的模型与科尔多尼耶(Cordonnier)等人[29]给出的模型类似,在该模型中,从输入图像中提取大小为(2\times2)的图像块,并将全自注意力机制应用于分类任务。与科尔多尼耶等人[29]提出的模型不同,阿列克谢·多索维茨基等人[25]证明,大规模预训练可以使ViT与最先进的CNN具有竞争力(甚至更好)。科尔多尼耶等人[29]使用了(2\times2)像素的小图像块大小,这使得他们的模型仅适用于小分辨率的图像。
相比之下,阿列克谢·多索维茨基(Alexey Dosovitskiy)[25]使用了(14×14)和(16×16)的图像块大小,因此能够处理中等分辨率的图像。陈(Chen)等人[30]提出了图像生成式预训练变换器(iGPT)模型。该模型不是直接使用图像块,而是在降低图像分辨率和色彩空间后,将Transformer应用于图像像素。该模型作为无监督生成模型进行训练,然后通过线性探测,在ImageNet数据集上实现了最高72%的分类准确率。阿列克谢·多索维茨基等人[25]在对所提出的模型进行高分辨率图像微调时面临一个主要挑战。为了克服这一挑战,他们没有使用预训练的预测头,而是添加了(D×K)个零初始化的前馈层((K)表示下游任务中的类别数量,(D)表示模型深度)。
图夫龙(Touvron)等人[31]和科列斯尼科夫(Kolesnikov)等人[32]认为,在更高分辨率下进行微调比从头开始预训练模型更具优势。他们观察到,将更高分辨率的输入提供给所提出的模型(保持图像块大小不变)会导致更长的有效序列长度。尽管ViT在内存限制范围内支持任意长度的序列,但在这种情况下,预训练的嵌入可能不再有用。因此,图夫龙等人[31]和科列斯尼科夫等人[32]利用预训练位置嵌入的原始图像位置进行了二维插值。就ViT而言,这种分辨率调整和图像块提取是仅有的手动注入偏差的地方。阿列克谢·多索维茨基等人[25]提出的架构如图2所示:
- iii)注意力机制的二次复杂度 ViT实现了点积注意力的缩放,这与自然语言处理Transformer中的一般注意力机制类似。对于每个查询(q),缩放点积注意力首先计算它与所有键(k)的点积。然后应用一个soft-max函数,将每个结果除以键的数量(d_k)。因此,它得到了用于缩放值(v)的权重。结果是,缩放点积注意力所执行的计算可以有效地同时应用于整个查询集合。作为注意力函数的输入,(Q)、(K)和(V)的使用方式如下: [ Attention(Q, K, V) = Softmax\left(\frac{QK^T}{\sqrt{d_k}}\right)V ]
多头注意力机制将查询、键和值进行(h)次线性投影,每次使用不同的学习投影。为了产生最终结果,将单个注意力机制并行应用于这(h)个投影中的每一个,产生(h)个输出,然后将这些输出连接起来并再次投影。多头注意力模型能够同时关注来自多个位置的多个表示子空间的信息。在单个注意力头的情况下,求平均值会阻止这种情况发生。多头自注意力(MHSA)的一般公式如下:
ViT的注意力机制具有二次复杂度,需要(O(n^2))的内存和计算能力,这使得这些模型拥有数十亿个参数,因此既资源密集又计算复杂。对大量资源的需求使得这些模型难以部署在对延迟有严格要求且资源受限的设备上,这需要立即进行研究关注,并促使我们研究在不降低性能的情况下有效压缩Transformer的技术。
知识蒸馏(KD)具有多种优势,可作为一站式解决方案,不仅专注于模型压缩,还能解决归纳偏差、位置编码和二次复杂度等问题。通过知识蒸馏,复杂的模型可以转化为更简单、更高效的模型,在不需要大量计算能力的情况下提高学习效率和对模型的理解。通过这个过程,位置编码问题可以通过简化序列表示来缓解,较弱的归纳偏差可以通过转移更多的学习模式来缓解,二次复杂度可以通过简化模型操作来解决,从而除了上述关键挑战之外,还能显著降低计算需求和内存占用。本研究旨在全面优化Transformer模型,不仅关注内存效率,还力求在计算速度、模型简洁性和内存消耗之间实现平衡。通过对利用知识蒸馏技术的视觉Transformer(ViT)的发展进行整理和分析,本研究对该领域做出了具有里程碑意义的贡献。
3)预备知识:知识蒸馏
为了解决这些问题,已经开发出了许多解决方案,例如压缩型Transformer,以及实现诸如扩张卷积、最大最小池化、一维卷积等压缩功能。模型压缩作为一种潜在的解决方法,近来吸引了大量的研究关注。有人提出通过极端压缩,特别是超低比特精度(二进制/三进制)量化[33],使大型自然语言处理模型适用于资源受限的设备。对于如此激进的压缩方案,前沿的方法通常会引入复杂的压缩流程,例如,经过多阶段且需要大量超参数调整的昂贵知识蒸馏。此外,它们很少关注那些已经通过知识蒸馏进行了深度压缩的较小的Transformer模型,并且这些模型需要系统的研究来支持其结论。
由于知识蒸馏,一个较小的模型(称为学生模型)可以使用一个较大模型(称为教师模型)的输出(来自各种中间功能组件)进行训练。有时信息会通过一个中间模型(通常称为教学助手)来提供[34],[35]。知识蒸馏由三个主要部分组成:知识、蒸馏算法和师生架构。
师生之间的知识共享框架。师生之间的知识共享框架如图3所示,它概述了知识蒸馏过程及其与相邻部分的关系。从图3中可以最好地理解所有部分的说明:
从上述讨论可以推断出,ViT在数据量不足的情况下进行训练时需要更好的泛化能力。必须使用大量的训练图像才能取得优异的性能。因此,迫切需要一种数据高效的Transformer解决方案。使用ViT在小数据集上进行训练会增加对正则化或数据增强技术的依赖。如果在大规模数据集上进行训练,尽管ViT缺乏卷积的固有属性,但仍可以取得具有竞争力的性能。然而,由于在多个头上堆叠了自注意力模块,ViT的成本仍然过高。与卷积神经网络(CNN)压缩方面的大量文献和显著成功相比,ViT压缩直到最近才出现,并且先前的工作主要集中在几个方面。
本文包含八十多篇研究论文,探讨了有关ViT压缩的研究工作。在最流行的用于降低计算成本的ViT压缩方法中,知识蒸馏(KD)[36]能够在大型教师模型和较小的学生网络之间实现有效的知识转移。根据苟(Gou)等人[37]的研究,有三种类型的知识需要蒸馏(见图3 a - c):基于响应的知识[38],[39],[40]、基于特征的知识[41],[42]和基于关系的知识[43],[44],[45]。基于响应的知识蒸馏和基于特征的知识蒸馏分别使用教师模型特定一层(最后一层或中间层)的输出。然而,基于关系的蒸馏同时使用多个层的输出。在这些范式中[38],[39],[41],主要关注的是从CNN到CNN的知识转移,但它们没有充分涵盖来自Transformer特定中间模块(如图像块嵌入)的知识蒸馏,导致结果不太理想。鉴于ViT的高计算成本以及它们所需的广泛预训练,问题来了:能否使用不同的知识蒸馏方法创建轻量级模型呢?
为了回答这个问题或实现我们的目标,我们讨论了各种解决方案,这些方案有助于我们在各种蒸馏方案下将知识从大型教师模型蒸馏到轻量级学生模型。虽然学生模型比教师模型轻,但它具有与教师模型相同的表达能力,且参数数量要少得多。根据郭(Guo)等人[37]的研究,计算机视觉中的知识蒸馏主要分为三类:基于响应的知识蒸馏、基于关系的知识蒸馏和基于特征的知识蒸馏方法。
3.1) 损失函数以及从理论上探究温度软化超参数的作用
4. 用于有效压缩 ViT 的不同知识蒸馏方法
本节讨论了使用不同知识蒸馏方法对 ViT 进行激进压缩的各种解决方案。知识蒸馏(KD)有效地提高了轻量级学生网络的性能,因为教师网络可以直接将领域知识传授给学生网络。人们常常发现,在大型数据集上预训练的大模型比小模型能取得更好的结果,因为当数据规模增加时,小模型容易出现饱和(或欠拟合)现象 [46]。小模型可以通过蒸馏大规模预训练数据,并使用一个强大的模型作为教师模型,来挖掘大规模预训练数据的潜力。同时,经过蒸馏的小模型可以轻松应用于下游任务,因为它们从大模型和大规模预训练数据集中学到了很多关于泛化的知识。
此外,知识蒸馏(KD)技术的最新进展使得混合方法的发展成为可能,这些方法结合了不同知识蒸馏方法的优势,以进一步提高在资源受限环境中视觉 Transformer(ViT)的压缩效果和性能。学生网络将从结合基于特征、基于关系和基于逻辑的蒸馏策略的学习路径中受益。为了给学生网络提供更丰富、更细致的指导,这些混合方法整合了教师模型知识的多个方面,例如特征表示、层间关系和输出预测。因此,学生模型不仅能够紧密模仿教师模型的输出,还能继承对数据表示和关系的更深入理解,最终提高泛化能力。此外,一些方法还融入了注意力机制,以便有选择地关注教师模型知识中最具信息性的部分,从而优化蒸馏过程。随着混合知识蒸馏技术的不断发展,它们为在各种资源受限的应用中部署高效且强大的 ViT 提供了有前景的途径。以下介绍了文献中提出的一些使用知识蒸馏方法在资源受限环境中部署 ViT 的解决方案。
本文讨论的知识蒸馏方法的总体分类如图 4 所示。
4.1) 目标感知Transformer
文献[46]的作者提出的一种新颖解决方案指出,在之前的大多数研究中,表征特征是从教师模型到学生模型以一对一的空间匹配方式进行回归的。然而,由于架构上的差异,研究人员需要对此给予更多关注。一个空间位置根据其所处位置的不同,可能会具有不同的语义信息。因此,一对一的蒸馏方法在很大程度上存在缺陷。文献[46]的作者通过目标感知Transformer(TaT)提出了一种新颖的一对多空间匹配知识蒸馏方法来解决这一问题。给定相似性,目标感知Transformer(TaT)允许教师模型特征的每个像素转换为学生模型特征的所有空间位置。在他们提出的方法中,利用参数相关性将教师模型的特征蒸馏到所有学生模型特征中,也就是说,蒸馏损失是所有学生模型特征的加权总和。他们使用Transformer结构,对每个学生模型特征组件进行重构,并使其与目标教师模型特征对齐。因此,所提出的方法被命名为TaT。该方法面临的一个关键挑战是,在处理大尺寸特征图时,由于需要计算特征空间位置之间的相关性,该方法很可能变得难以处理。为了克服这一问题,作者以分层的两步方式扩展了流程,具体如下:
1) 他们没有计算所有空间位置之间的相关性,而是将特征图分割成若干个图块,并在每个图块内进行一对多的蒸馏。
2) 他们将一个图块内的特征平均为一个单一向量,以蒸馏知识。
为了实现特征对齐,使用目标感知Transformer(TaT)将教师模型和学生模型的特征转换到相似的特征空间中。
知识蒸馏方法:使用库尔贝克散度(KLD)损失函数的图块组蒸馏和锚点蒸馏。
文献[46]中所提出方法的图示见图3和图4。主要发现如下:
- 学生Transformer模型除了从逻辑值中获取信息外,还可以通过从中间层获取信息来获得更多信息。
- 在文献[46]中,蒸馏应用于主干网络的最后一层,也就是从网络的逻辑值中进行蒸馏。
- 一些研究已经探索了多层蒸馏,所以当涉及多个层时,看看其效果如何会很有趣。
4.2) 细粒度流形蒸馏方法
郝志伟等作者[47]提出了另一种新颖的解决方案,即通过细粒度流形蒸馏进行有针对性的学习。在流形学习中,以非线性方式降低维度。它通过学习嵌入在原始特征空间中的平滑流形来构建低维特征。知识蒸馏最近引入了流形学习的概念。通过这些方法[47],学生模型学习如何保留教师模型所传授的样本之间的关系。这些初步尝试比较粗糙,并且可以进一步改进,因为对于视觉Transformer(ViT)来说,图块而非图像是基本的输入元素。所提出的方法利用矩阵的正交分解将流形关系图解耦为三个部分。关系图由三个部分组成,分别是图像内关系图、图像间关系图和随机采样关系图。例如,在文献[47]中,如图5所示,针对每组包含相同颜色的图块计算一个流形关系图。
知识蒸馏方法:使用流形蒸馏损失(MD损失),它是图像内图块级蒸馏损失、图像间图块级蒸馏损失、随机采样图块级流形蒸馏损失与原始知识蒸馏损失函数的组合。计算流形蒸馏损失是为了映射教师模型和学生模型的特征。图5展示了图像级别和图块级别的流形,如下所示:
图5. 所提出框架的图示 a) 目标感知Transformer基于教师模型和学生模型的特征。计算变换映射Corr. 并将其应用于学生模型特征,以便对学生模型特征进行重新配置,从而使其与教师模型特征的L2损失最小化(图b)。图块组蒸馏方法要求将教师模型和学生模型特征的切片重新排列成组以进行蒸馏。将图块添加到一个组中会引入图块本身之外的图块之间的空间相关性。 (c) 使用平均池化的锚点蒸馏。文献[46]的作者在给定特征图的局部区域内提取锚点,形成一个较小的特征图。对生成的锚点特征进行蒸馏。
所提出的流形蒸馏方法的总体架构如图6所示: 图6. (a)图像级别与(b)图块级别流形空间的对比。包含细粒度信息的图块级别流形空间有助于知识的传递。
图7. 这种方法涉及流形的细粒度蒸馏。a). 作为一种将知识从一个教师模型传递到(学生模型)的方法,流形蒸馏损失与原始的知识蒸馏(KD)损失结合使用。b) 流形蒸馏损失是通过在流形空间中匹配每一对选定的教师模型层与学生模型层之间的特征关系来计算的。
主要观察结果:
- 使用了一种映射学生模型和教师模型特征的流形空间,并且将映射损失解耦为三项,以降低计算复杂度。
- 解耦显著降低了计算量和内存空间,但如果图块尺寸过小,计算和存储开销就会过高。在Swin变换中,对于224×224的输入尺寸,图块数量N为3136。使用如此大的图块数量会显著增加图像内流形损失(L_{intra})的计算复杂度和内存空间需求。
4.3) 交叉归纳偏差蒸馏(协同建议法)
苏城等人[48]提出了另一种新颖的解决方案,名为交叉归纳偏差蒸馏(Coadvice)。文献[48]的作者指出,教师模型的准确率并非决定学生模型准确率的主导因素,而教师模型的归纳偏差才是关键因素。使用具有不同架构归纳偏差的轻量级教师模型对学生Transformer模型进行协同指导,能够取得出色的效果。因此,尽管在相同的数据集上进行训练,具有不同归纳偏差的教师模型拥有不同的知识,并且具有不同归纳偏差的模型往往会关注不同的模式。在蒸馏过程中,由于多教师网络所蒸馏出的多样化知识,学生模型对数据和组合有了更准确、更全面的理解。
还提出了一种标记归纳偏差对齐方法,以使标记的归纳偏差与其目标教师模型的归纳偏差保持一致。文献[48]中提出的视觉Transformer(CiT)仅使用带有交叉归纳偏差蒸馏方法的轻量级教师模型,其性能就超过了所有现有的视觉Transformer模型。
主要观察要点:
- 根据该研究,教师模型内在的归纳偏差比其准确率更为重要。
- 卷积神经网络(CNN)和内蕴神经网络(INN)具有归纳偏差,这会导致互补的模式,而归纳偏差较少的视觉Transformer模型能够从这两种架构中继承信息。
- 当有多个具有不同归纳偏差的教师模型指导学生模型时,学生模型更有可能学到各种知识。
- 与将归纳偏差引入Transformer模型相比,知识蒸馏使学生Transformer模型的表现与各种具有归纳偏差的教师模型相近。
- 在这项研究中开发的交叉归纳偏差视觉Transformer(CiT),其性能超过了所有具有相同架构的现有视觉Transformer模型。本研究中使用的超轻量级教师模型的参数分别仅为DeiT-Ti和DeiT-S参数的20%和50%。
知识蒸馏方法:卷积 + 卷绕归纳偏差知识蒸馏方法。 损失函数:库尔贝克散度损失函数 + 交叉熵损失函数。所提出方法的总体架构最能通过给出的图来说明:
图8. 交叉归纳偏差知识蒸馏框架。a) 以一幅图像作为输入,人类(感知)模型、卷积模型和卷绕模型将给出三种相似但略有不同的分布来描述图像的类别。与视觉Transformer(ViT)模型相比,交叉归纳偏差视觉Transformer(CiT)模型有来自卷积教师模型和卷绕教师模型的两个额外标记(即卷积标记和卷绕标记)。
4.4) 使用保存的软逻辑值进行预训练蒸馏(Tiny-ViT)
与之前提到的大多专注于微调蒸馏的方法不同,吴侃(Kan Wu)等人[49]提出了一种名为Tiny-ViT的不同解决方案。他们发现,小型预训练模型可以从使用大量预训练数据的大型预训练模型向小型预训练模型转移的知识中获益。特别是,作者在预训练过程中采用蒸馏来转移知识。对于大型教师模型,通过提前对逻辑值进行稀疏化处理并存储,可以节省内存和计算开销。一个受计算和参数限制的大型预训练模型会自动缩小规模,以生成小型的学生Transformer模型。大量实验证明了Tiny-ViT的有效性。它仅使用2100万个参数就实现了84.8%的Top-1准确率,与Swin-B相当,但使用的参数比Swin-B少得多。当提高图像分辨率时,Tiny-ViT还实现了86.5%的准确率,仅用Swin-L 11%的参数就略超过了Swin-L的准确率。
论文[49]中提出的工作专注于预训练蒸馏,使小型模型更有能力从大型模型中学习,并将这些技能转移到下游任务中。
预训练蒸馏方法的关键挑战在于,大量的计算资源被浪费在让训练数据通过大型教师模型上,而不是用于训练小型目标模型组。这种蒸馏方法效率低且成本高。一个大规模的教师模型还可能消耗大量的GPU内存,从而减慢目标学生模型的训练速度。
作者提出了一个框架[49]来实现快速预训练蒸馏,以解决这个问题。作者提前存储了教师模型的预测结果和数据增强信息。因此,通过重复使用存储的信息,训练简化了蒸馏过程,这样大型教师模型就不需要那么多的内存和计算量。作者只需要从存储文件中恢复数据增强信息和教师模型的预测结果,并为学生模型的蒸馏优化交叉熵目标函数。
主要观察结果:
- 因为作者在训练中只使用了教师模型生成的软标签,所以所提出的框架是无标签的,即不需要真实标签。
- 因此,它可以利用大量现成的无标签网络数据进行大规模预训练。
- 在实践中,这样的策略是可行的,因为软标签包含了足够的用于分类的判别信息,包括类别关系,并且其准确性足以使用。
- 然而,使用真实标签进行蒸馏会导致性能略有下降。
知识蒸馏方法:从存储的稀疏软逻辑值和预先存储的数据增强信息中进行蒸馏。
KD损失函数:交叉熵损失函数。所提出方法的通用架构如图9所示:
图9. 用于快速训练的预训练蒸馏框架 顶部:顶部展示了用于保存教师模型逻辑值的分支。已对教师模型的逻辑值进行稀疏化处理,并保存了经过编码的数据增强信息。 中间:中间部分使用磁盘来存储信息。 底部:用于训练学生模型的分支在底部。解码器通过重构数据增强信息,将教师模型的逻辑值蒸馏为学生模型的输出。需要注意的是,每个分支都是独立且异步运行的。
4.5) 基于注意力探针的蒸馏方法
作者王家豪[50]提出了一种新颖的解决方案,即基于注意力探针的方法,这是考虑到由于伦理和遗留问题导致数据的真实分布不可得的情况而提出的。由于视觉Transformer(ViT)对计算资源的要求较高,它与资源受限的设备不兼容。使用原始训练数据对其进行压缩或许是可行的,但隐私和传输方面的问题可能会阻碍这一做法。大量的无标签的自然数据为压缩卷积神经网络(CNN)提供了一种替代范式。然而,由于卷积神经网络和视觉Transformer在模型结构和计算机制上存在显著差异,针对视觉Transformer的类似范式仍是一个有待解决的问题。
本文旨在利用从自然环境中收集的两阶段无标签数据来压缩视觉Transformer。第一步是设计一种工具,从自然数据中筛选出有价值的数据,即注意力探针。第二步是使用筛选出的数据,通过探针知识蒸馏算法来训练一个轻量级的学生Transformer模型,该算法在输出和中间特征方面,使大型教师模型和轻量级学生模型之间的相似度最大化。注意力探针如图所示:
在多个基准测试上进行的实验表明,通过所提出方法得到的学生Transformer模型与基于原始训练数据的基线模型相当。注意力探针的定义如下: 注意力探针:我们的注意力探针是基于来自自然数据的随机输入(x_U)的注意力图的一个特殊部分。
其中(A_U\in\mathbb{R}^{H\times W}),(P_U\in\mathbb{R}^{H\times W}),并且(\Psi)这种重塑操作将(\mathbb{R}^{1\times N})转换为(\mathbb{R}^{H\times W})。由于自注意力机制,图像的前向传播首先得到注意力图,然后提取第一行的最后(N)个元素并进行重塑。通过使用注意力探针,他们确定了模型的[类别]标记对其他(N)个图像块的关注程度。通过这种方式,他们从大量无标签的自然数据中收集数据。
从这项研究[50]中,很容易理解注意力值是如何起作用的。用在原始数据上训练的教师Transformer模型可以提高对接近原始数据分布的数据的识别能力。为了执行识别任务,教师模型的[类别]标记会确定输入图像的哪个区域应该被重点关注。因此,注意力探针中的值的方差通常较大,并且比均匀矩阵(S_N)中的方差低得多。相反,当采样数据来自原始分布时,预训练教师模型的方差较低且更接近(S_N)。由于这个限制,许多分布外的干扰数据无法被收集到。
知识蒸馏方法:探针蒸馏 + 知识蒸馏。
KD损失函数:用于蒸馏中间特征的探针蒸馏函数和交叉熵。
所提出方法的通用架构如图11所示:
图11. 展示了学生视觉Transformer如何在自然数据中进行学习。数据选择器利用教师网络的输出和注意力探针,从自然数据中挑选出有用的数据,并将其用于接下来的蒸馏过程。探针蒸馏被用于从已经过预训练的大型Transformer的中间特征中提取信息。
主要观察结果
- 在无数据场景下,其动机在于所收集的数据未标注,从而缺乏监督信息。
- 由于学生模型的输出与真实标签之间缺乏交叉熵,这不可避免地会导致信息丢失和准确率下降。
- 为了弥补监督信息的缺失,作者考虑了从预训练的教师Transformer模型中获取的中间信息。
- 除了输出之外,中间层包含更多的嵌入信息,这使得学生Transformer模型能够获取更多的信息。
4.6) 通过注意力实现数据高效的图像Transformer蒸馏
图夫龙(Touvron)等人[51]提出了一种名为“通过注意力实现数据高效的图像Transformer蒸馏”的新颖技术。作者提出了一种基于Transformer特定蒸馏标记的师生策略。蒸馏标记确保学生模型通过注意力从教师模型中学习,通常是从卷积网络教师模型中学习。在ImageNet数据集上,所学习的Transformer模型表现出色(Top-1准确率达到85.2%),可与当前最先进的模型相媲美,在其他任务上也是如此。蒸馏过程包含一个蒸馏标记,它与类别标记起着相同的作用,只是它的目的是重现教师模型估计的标签。由于注意力机制,这两个标记在Transformer模型中通过该机制相互作用。这种特定于Transformer的策略在很大程度上优于普通的蒸馏方法。通过这种方式,作者[51]表明,缺乏卷积层的神经网络模型在没有外部数据的情况下,在诸如ImageNet等基准数据集上也能取得与当前最先进模型相当的结果。他们[51]还观察到,与ResNet-50和ResNet-18相比,他们的两个新模型DeiT-S和DeiT-Ti在计算需求更少的情况下取得了更好的性能。
知识蒸馏方法:使用从卷积网络教师模型中预学习的蒸馏标记,通过注意力进行蒸馏。使用真实标签和教师模型的预测结果在更高分辨率下对模型进行微调。
KD损失函数:库尔贝克散度蒸馏损失函数 + 交叉熵蒸馏损失函数。
蒸馏过程如图11所示。
鉴定为水文,不再读。