【网络结构】——TinyViT 一种transformer的蒸馏方案

news2024/11/19 9:22:30

来自 Microsoft

摘要

TinyViT是一种新型的小型transformer,它们高效且可以在大规模数据集上进行预训练。TinyViT通过在预训练期间应用蒸馏来传输知识,将大型预训练模型的知识转移到小型模型中,同时使小型模型能够获得大量预训练数据的红利。TinyViT在ImageNet-1k上的最高准确率为84.8%,仅使用21M参数,与在ImageNet-21k上预训练的Swin-B相当,但使用的参数少4.2倍。此外,增加图像分辨率后,TinyViT可以达到86.5%的准确度,略优于Swin-L,同时仅使用11%的参数。最后但并非最不重要的是,我们证明了TinyViT在各种下游任务上具有良好的转移能力。

1 简介

我们探讨了以下关键问题:如何有效地将现有大型变换器的知识转移到小型变换器上,并释放大规模数据的力量以提高小型模型的可表示性。
为了回答这个问题,我们引入了一种快速知识蒸馏方法来预训练小型模型,并表明小型模型也可以在大型模型的指导下获得海量预训练数据的红利。更具体地说,我们观察到,直接预训练小型模型会受到性能饱和的困扰,特别是当数据规模增加时。但是,如果我们在预训练期间施加蒸馏,并使用强大的模型作为教师,则可以为小型模型解锁大规模预训练数据的潜力。同时,蒸馏后的小型模型可以很好地转移到下游任务中,因为它们已经学到了如何从大型模型以及大规模预训练数据中推广的大量知识。

蒸馏的缺陷
使用蒸馏预训练模型既低效又昂贵,因为大量的计算资源被消耗在每次迭代中通过大型教师模型传递训练数据上,而不是训练目标小型学生。此外,巨大的教师可能占用大部分GPU内存,由于批处理大小有限,显著降低了学生的训练速度。

一种快速可拓展的蒸馏策略: 我们提出了一种快速且可扩展的蒸馏策略。具体而言,我们提前存储稀疏软标签和数据增强信息,例如随机裁剪、RandAugment [17]、CutMix [76]等。在训练过程中,我们重用存储的稀疏软标签和增强来精确复制蒸馏过程,成功省略了大型教师模型的前向计算和存储。这种策略有两个优点:1)快速。它大大节省了在训练期间生成教师软标签的内存成本和计算开销。因此,小型模型的蒸馏可以大大加速,因为它能够使用更大的批处理大小。此外,由于每个时期的教师逻辑是独立的,它们可以并行保存,而不是像传统方法那样逐个时期保存。2)可扩展。它可以模仿任何类型的数据增强并生成相应的软标签。我们只需要将大型教师模型向前推进一次,并为任意学生模型重用软标签。

我们验证了我们快速预训练蒸馏框架的有效性,不仅在现有的小型视觉变换器(如DeiT-T [64]和Swin-T [43])上,而且在我们新设计的微型架构上

3 TinyViT

在这里插入图片描述
sparse logits ???

3.1 快速的预训练蒸馏

在这里插入图片描述

直接在大量数据上预训练小型模型并不能带来太多收益,特别是在将它们转移到下游任务时,如上图所示。为了解决这个问题,我们求助于知识蒸馏来进一步揭示小型模型预训练的力量。与之前大多关注微调阶段蒸馏[64]的工作不同,我们关注预训练蒸馏,它不仅允许小型模型从大规模模型中学习,而且提高了它们在下游任务中的转移能力。

我们的框架是无标签的,即不需要真实标签,因为我们只使用教师模型生成的软标签进行训练。因此,它可以利用大量现成的无标签网络数据进行大规模预训练。这种无标签策略在实践中是可行的,因为软标签足够准确,同时携带了大量用于分类的判别信息,例如类别关系。我们还观察到,带有真实标签的蒸馏会导致轻微的性能下降。原因可能是,并非ImageNet-21k [18]中所有标签都是互斥的[55],包括“椅子”和“家具”,“马”和“动物”等相关对。因此,one-hot标签不能精确描述一个对象,在某些情况下它会在训练过程中抑制子类或父类。

稀疏的软标签 考虑教师模型为预测输出C个logits。如果C很大,例如ImageNet-21k的C = 21,841,则保存所有增强图像的整个密集logits通常会消耗大量存储空间。因此,我们只保存logits中最重要的部分,即稀疏软标签。形式上,我们选择yˆ中的前K个值,即{yˆI(k)} K k=1 ∈ yˆ,并将它们及其索引{I(k)} K k=1存储到我们的标签文件中
在这里插入图片描述
在这里插入图片描述
可以看到K的大小对TOP-1的正确率影响较小

3.2 网络结构

我们在本小节中提出了一种新的微型视觉变换器家族,通过使用渐进模型收缩方法[21]来缩小大型模型种子。具体来说,我们从一个大型模型开始,并定义一组基本的收缩因子。然后在每个步骤中,通过调整收缩因子在当前模型周围生成更小的候选模型。我们选择满足参数数量和吞吐量两个约束的模型。具有最佳验证精度的模型将用于下一步进一步减少,直到达到目标。这是一种受限局部搜索[32],在由收缩因子张成的模型空间中进行。

我们采用分层视觉变换器作为基本架构,以方便需要多尺度特征的密集预测下游任务,如检测。更具体地说,我们的基础模型由四个阶段组成,分辨率逐渐降低,类似于Swin [43]和LeViT [24]。补丁嵌入块由两个卷积组成,核大小为3,步长为2,填充为1。我们在第1阶段和下采样块中应用轻量级和高效的MBConvs [33],因为早期层的卷积能够有效地学习低级表示,这归功于它们强大的归纳偏差[24,70]。最后三个阶段由变换器块构成,带有窗口注意力以减少计算成本。注意偏差[24]和注意力与MLP之间的3×3深度卷积被引入以捕获局部信息[69,15]。残差连接[28]应用于第1阶段的每个块以及注意力块和MLP块。所有激活函数都是GELU [30]。卷积和线性的规范化层分别为BatchNorm [35]和LayerNorm [3]。


CNN归纳偏差的解释:
CNN 的归纳偏置是指 CNN 的架构本身所包含的一些对图像数据的假设或先验,这些假设或先验有助于 CNN 学习图像特征,但也可能限制了 CNN 的泛化能力和灵活性。CNN 的归纳偏置有两种,分别是:

局部相关性:邻近的像素是相关的,所以 CNN 用滑动窗口在图片上做卷积,提取局部特征。
平移等变性:图像的不同部分应该以相同的方式处理,无论它们的绝对位置如何,所以 CNN 用权重共享的卷积核来实现平移不变性。
相比之下,基于自注意力机制的视觉模型(如 DeiT 和 DETR)最小化了归纳偏置,因为它们不依赖于卷积操作,而是用全局的自注意力来捕捉图像中任意两个区域之间的关系。这样的模型可能需要更多的数据来学习有效的特征表示,但也可能具有更好的适应性和创新性。根据一篇论文《Rethinking Attention with Performers》中提到了一个例子:

例如,在一个涉及到识别猫和狗的任务中,如果训练数据中所有的猫都是黑色的,而所有的狗都是白色的,那么一个具有强归纳偏置的模型(如 CNN)可能会忽略其他特征,而只关注颜色。这样的模型在测试数据中遇到黑色的狗或白色的猫时就会出错。而一个具有弱归纳偏置的模型(如基于自注意力机制的模型)可能会考虑更多的特征,如形状、纹理、眼睛等,从而在测试数据中表现得更好。

4 讨论

讨论了两个关键问题:1)限制小模型拟合大数据的潜在因素是什么?2)为什么蒸馏能够释放大数据对小模型的能力?

  1. 在 IN-21k 中存在许多难样本,例如标签错误的图像和由于图像中存在多个同等突出的对象而具有不同标签的相似图像。这也被现有文献 [77,5,55] 所认可,并且 ImageNet 中约有 10% 的图像被认为是难样本。小模型难以拟合这些难样本,导致其训练精度低于大模型(TinyViT-21M:53.2% vs. Swin-L-197M [43]:57.1%),并且在 ImageNet-1k 上的可迁移性有限(TinyViT-21M w/ 预训练:83.8% vs. w/o 预训练:83.1%)。为啥他这种蒸馏方式,迁移可移植

难样本猜想实验
作者采用了两种技术。1)受 [5] 的启发,我们利用强大的预训练模型 Florence [75] 在 ImageNet-21k 上微调,以识别那些标签位于 Florence 的前五个预测之外的图像。通过这种方式,我们从 ImageNet-21k 中删除了 200 万张图像,约占 14%,然后在清理后的数据集上预训练 TinyViT-21M 和 Swin-T。2)我们使用 Florence 作为教师模型进行蒸馏以预训练 TinyViT-21M/Swin-T,它生成软标签以替换 ImageNet-21k 中污染的真实标签。
在这里插入图片描述

1)在原始 ImageNet-21k 数据集上预训练小模型对 ImageNet-1k 的性能提升有限(Swin-T 和 TinyViT-21M 均为 0.7%)。
2)在 ImageNet-21k 中删除部分难样本后,两种模型都能更好地利用大数据并获得更高的性能提升(Swin-T/TinyViT-21M 分别为 1.0%/1.1%)。

小模型,大数据为啥蒸馏有效
蒸馏可以提高小型模型在大型数据集上的性能,因为学生模型可以直接从老师那里学习领域知识。也就是说,老师在训练学生时注入了类关系先验,同时为小型学生模型过滤噪声标签(硬样本)。为了分析老师预测的类关系,我们从IN-21k中每个类别选择8张图像,共有21,841个类别。然后将这些图像输入Florence [75]以提取预测对数。根据[63],我们可以在预测对数上生成类之间的皮尔逊相关系数的热图。在图3(a)中,相似或相关的类之间明显具有高相关性(红色),由块对角线结构说明。此外,老师模型还能捕获不相关的类(蓝色显示)
在这里插入图片描述

5. 实验

快速蒸馏的效果
在这里插入图片描述
图像数量的影响
在这里插入图片描述
所有模型都倾向于随着epoch数量的增加而饱和,这可能受到模型容量的限制。

logit k的影响
在知识蒸馏过程中,教师模型的对数值捕捉了类别关系,但也包含噪声。这使得可以稀疏化教师对数值,以保留类别关系并减少噪声。此外,内存消耗也对K的选择施加了限制。为了在有限的存储空间下获得可比较的准确性,我们选择稍大一些的K,在IN-1k上进行300个epoch时K=10(1.0%对数),在IN-21k上进行90个epoch时K=100(0.46%对数),分别使用16GB/481GB的存储成本。

教师模型的影响
在这里插入图片描述

5.3 ImageNet结果

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

other

  • sparse soft label能推广到CNN上嘛?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/726598.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

hcip实验--RIP

实验实验要求 : 要求:R1-R2-R3-R4-R5 RIP 100运行版本2 R6-R7 RIP 200 运行版本1 1.使用合理IP地址规划网络,各自创建环回接口 2.R1创建环回 172.16.1.1/24 172.16.2.1/24 172.16.3.1/24 3.要求R4使用R2访问R1环回 4.减少路由条目数量&am…

AttributeError: ‘FreeTypeFont‘ object has no attribute ‘getsize‘

yolo训练时,yolo的训练项目报错,如下 w, h self.font.getsize(text) # text width, height AttributeError: ‘FreeTypeFont’ object has no attribute ‘getsize’ 说是字体没有getsize属性,实际看了一下,此属性存在&#xff0…

simulink 使能子模块 对应if else

Enabled Subsystem 使能子模块 这个值是对内部的全部变量↓ 对输出↓

web 页面布局:(一)align与表格布局

web 页面布局:(一)align与表格布局 古早时代页面布局 表格布局合并单元格表格布局的弃用 古早时代 之前,我们花费了一点时间,去了解了一下 html 的本质,那么,现在,我们就要尝试开始…

多元回归预测 | Matlab基于灰狼算法优化深度置信网络(GWO-DBN)的数据回归预测,matlab代码回归预测,多变量输入模型

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 多元回归预测 | Matlab基于灰狼算法优化深度置信网络(GWO-DBN)的数据回归预测,matlab代码回归预测,多变量输入模型,matlab代码回归预测,多变量输入模型,多变量输入模型 评价指标包括:MAE、RMSE和R2等,代码质…

[Android JNI] --- JNI基础

1 JNI概念 什么是JNI JNI 全称 Java Native Interface,Java 本地化接口,可以通过 JNI 调用系统提供的 API。操作系统,无论是 Linux,Windows 还是 Mac OS,或者一些汇编语言写的底层硬件驱动都是 C/C 写的。Java和C/C不…

一款批量漏洞挖掘工具

介绍 QingScan一个批量漏洞挖掘工具,黏合各种好用的扫描器。 是一款聚合扫描器,本身不生产安全扫描功能,但会作为一个安全扫描工具的搬运工;当添加一个目标后,QingScan会自动调用各种扫描器对目标进行扫描&#xff0c…

一文读懂智能汽车滑板底盘

摘要: 所谓滑板式底盘,即将电池、电动传动系统、悬架、刹车等部件提前整合在底盘上,实现车身和底盘的分离,设计解耦。基于这类平台,车企可以大幅降低前期研发和测试成本,同时快速响应市场需求打造不同的车型。尤其是无…

系统架构设计师-软件工程(2)

一、需求工程 1、需求工程阶段划分 软件需求是指用户对系统在功能、行为、性能、设计约束等方面的期望。 【需求工程主要活动的阶段划分】 2、需求获取 3、需求分析 (1)数据流图(DFD) 简称DFD,它从…

LabVIEW开发矿用泵液压头测试系

LabVIEW开发矿用泵液压头测试系 在矿井中,矿用泵是用于排放矿井水的关键设备。如果不正常运行,矿山的生产必然受到严重影响,工人的生命也受到严重威胁。确保矿用泵能够正常运行非常重要。由于其运行条件非常恶劣,矿用泵的故障率高…

网络故障排除之Traceroute命令详解

概要 遇到网络故障的时候,你一般会最先使用哪条命令进行排障? 除了Ping,还有Traceroute、Show、Telnet又或是Clear、Debug等等。 今天安排的,是Traceroute排障命令详解,给你分享3个经典排障案例哈。 一. Traceroute…

ChatGPT 最佳实践指南之:写出清晰的指示

Write clear instructions 写出清晰的指示 GPTs can’t read your mind. If outputs are too long, ask for brief replies. If outputs are too simple, ask for expert-level writing. If you dislike the format, demonstrate the format you’d like to see. The less GPTs…

如何使网站快速拥有登录注册功能

如何使网站快速拥有登录注册功能 一、产品介绍二、开始使用1、如何判断用户是否登录?2、如何让用户登录?举个例子: 3、登录成功后如何拿到用户数据?4、如何维护用户的登录态? 二、注意点 前端必备工具(免费图床、API、chatAI等)推荐网站LuckyCola: h…

机器学习——支持向量机(数学基础推导篇【未完】)

在一个周日下午,夏天的雨稀里哗啦地下着 我躺在床上,捧着ipad看支持向量机 睡了好几个觉…支持向量机太好睡了 拉格朗日乘数法太好睡了 几何函数太好睡了 在我看来,支持向量机是目前学下来,最难以理解的内容 希望日后不要太难…脑…

[计算机入门] Windows对话框

2.4 对话框 在图形用户界面中,对话框是一种特殊的窗口, 用来在用户界面中向用户显示信息,或者在需要的时候获得用户的输入响应。之所以称之为对话框是因为它们使计算机和用户之间构成了一个对话——或者是通知用户一些信息,或者是请求用户的…

C. Russian Roulette(构造)

传送门 题意 俄罗斯转盘,长度为n的环,有k个子弹,然后挨着对着脑袋打。 你是第一个人,你希望你死的概率最小,问你怎么去设置这个子弹的位置。 第二个人会一开始随机砖圈,使得每一个位置开始都是可能的。…

电脑技巧:怎么轻松地搞定Win11系统备份任务

目录 1、选择免费备份软件来自动备份系统 2、如何逐步配置定时系统备份任务? “我是一个电脑小白,不是很懂电脑的一些操作。我刚买了一台新电脑,它装的是Win11系统,我害怕它出现什么问题,听朋友说可以通过备份的方…

Kotlin~责任链模式

概念 允许多个对象按顺序处理请求或任务。 角色介绍 Handler: 处理器接口,提供设置后继者&#xff08;可选&#xff09;ConcreteHandler&#xff1a;具体处理器&#xff0c;处理请求 UML 代码实现 比如ATM机吐钱就可以使用责任链实现。 class PartialFunction<in P1, o…

【环境配置】Conda ERROR:Failed building wheel for lap

问题 note: This error originates from a subprocess, and is likely not a problem with pip.ERROR: Failed building wheel for lapRunning setup.py clean for lap Failed to build lap ERROR: Could not build wheels for lap, which is required to install pyproject.to…

JDK8安装

在官网进行下载Java Downloads | Oracle 点击进行安装即可。 之后是配置环境变量 点击我的电脑 – 属性 – 高级系统设置 – 环境变量 添加JAVA_8_HOME环境变量&#xff0c;指向jdk的安装目录。 之后编辑path环境变量&#xff0c;增加%JAVA_8_HOME%\bin win R 输入javac 测…