论文笔记|ECCV2022:Self-Promoted Supervision for Few-Shot Transformer

论文地址:https://arxiv.org/abs/2203.07057
代码链接:https://github.com/DongSky/few-shot-vit
这篇论文在2022年发表在ECCV上,论文的题目是用于小样本Transformer的self-promoted supervision(自我推荐监督)

1 Motivation

1、目前很少的论文研究ViTs在小样本学习的应用。第一,ViTs在只有少数标记训练数据可用的小样本学习标准下实验表现并不好,原因是ViTs的自注意力机制不会引入任何 归纳偏置 。因此,在没有任何先前 归纳偏置 的情况下,ViTs 需要大量数据来学习局部特征(即patch tokens)之间的依赖关系,并且只学习到了低质量的标记依赖。

2、第二,因为CNN具有高 归纳偏置,所以一些研究中将类似CNN的归纳偏置引入到ViTs,虽然可以加速ViTs的 patch 标记(tokens)的依赖学习从而提高性能,但是ViTs和CNN的网络架构不同,因此类似CNN的归纳偏置并不能很好的适用于ViTs,而且CNN的归纳偏置不具备ViTs捕获数据中局部特征之间的远程依赖关系的能力。

因此,文章提出了一种新的ViTs的小样本训练框架,即self-promoted supervision(SUN),它的核心是通过密集的特定位置的监督来快速准确地学习patch tokens地依赖关系,解决Transfomrer较差归纳偏置的问题。

2 Idea

1、SUN为全局特征嵌入提供全局监督。并进一步对ViT在基类数据集预训练,然后使用ViT生成单独的特定位置(即与位置相关)的监督来指导每个patch 标记,这种特定于位置的监督可以告诉 ViT 哪些patch 标记相似,哪些不相似,从而加速 标记依赖学习 。另外,SUN对每个patch 标记的局部语义建模,提高模型泛化能力。

2、SUN为了提高patch级的监督质量,提出了两种技术:(1)背景patch过滤和(2)空间一致性增强。

3 Methods

SUN框架由两个阶段组成:元训练和元微调
在这里插入图片描述
对于元训练阶段 (a),给定图像 xi,我们使用空间一致的增强来生成两个裁剪 ¯xi 和 ∼xi。
给定∼ xi,具有背景过滤 (BGF) 的教师 (ViT f0 & 和分类器 g0) 生成其特定于位置的监督 {sij}
给定 ¯xi,元学习器 f 提取其标记特征,然后全局分类器 gglobal 和局部分类器 glocal 分别预测 ¯xi 的全局语义标签∼ yi 和所有patches的语义标签 {∼sij}。
最后,SUN 使用真实标签 yi 和特定位置标签 {sij} 来监督 ∼yi 和 {∼sij} 以优化 f 和 gglobal/local。
在元微调阶段 (b),SUN 采用现有的小样本方法(例如元基线 [8])微调 f,然后使用支持集 S 预测每个查询 x 的标签。

3.1 元训练

目的 :学习一个meta-learner(元学习器) f,是其能够通过少量样本快速适应新类别。

1、使用 全局监督 ,即 ground-truth 标签,来指导 f 中所有patch标记的全局平均标记

2、使用 单独的特定位置监督 来监督(指导) f 中的每个patch标记。

-生成 patch级伪标签 作为特定位置的监督

SUN 首先在基类数据集集上预训练,来优化 教师模型 (teacher model) fg,它由与 f 具有相同架构的 ViT f0 和基类数据集 Dbase 上的分类器 g0 组成的。利用f0来生成生成patch级的伪标签作为特定位置的监督.

-之所以称为自我提升的监督,就是因为SUN使用相同的ViT来生成局部监督。

-形式上,对于基类数据集 Dbase 中的每个训练图像 xi,SUN 首先计算每个标记的分类置信度得分 ^si:

在这里插入图片描述

其中 z = f(xi) = [zcls, z1, z2, · · · , zK] 表示图像 xi 的类(zcls)和patch 标记,而 ^sij 是样本 xi 中第 j 个局部patch xij 的伪标签。
因此,对于每个patch xij,在 ^sij 中具有相对高置信度的位置表明这个patch包含相应类别的语义。

3、背景过滤(BGF)
目的: 将背景patches分类为一个新的独特类别来提高patch级监督的质量

做法: 过滤掉置信度分数很低的局部patches作为背景patches,并将它们分类到一个新的独特类别中

-具体来说,文章在基类 Cbase 中添加了一个新的类,即背景类,相应地,伪标签 ^si增加一维。将置信度分数较低的patches分类到背景类,即这些patches的伪标签设置为最后位置为1,其余位置为0;对于非背景patch,就是置信度分数较高的patches,设置它们的伪标签最后位置为0,其余位置不变。

-整体的训练损失公式:

在这里插入图片描述

其中 z = f(xi) = [zcls, z1, z2, · · · , zK] 表示图像 xi 的类(zcls)和patch 标记,zglobal 是所有patch 标记 的全局平均池化。这里H表示交叉熵损失,gglobal和glocal分别是全局语义分类和局部patch分类的两个可训练分类器。

-对背景过滤掉之后,就得到了 密集监督 ,有两点好处:

(1)减少了背景杂波的影响,可以保证相似的局部标记具有相似的伪标签,从而可以加速 标记依赖学习。
(2)相对于对整幅图像的全局监督,特定位置的监督处于细粒度级别,即patch级别,从而帮助 ViTs 轻松发现目标对象并提高识别精度。

4、空间一致性增强(SCA)
目的: 提高教师 f0 局部监督的鲁棒性,同时保持足够的数据多样性。

SCA由纯空间增强和非空间增强组成。(spatial-only augmentation and a non-spatial augmentation.)

-纯空间增强
引入空间变换:随机裁剪和调整大小、翻转和旋转,来增强输入图像- xi 并获得~ xi。

在元训练阶段,我们将 ∼xi 输入教师 f0 以生成 sij:教师 f0 使用弱增强 ~xi 来生成特定位置监督,这也有助于提高 ViT 的泛化能力

将 ¯xi 输入目标元学习器 f:训练元学习器 f 的样本具有高度多样性,同时仍然享有非常准确的特定位置监督 sij。

3.2 元微调

目的: 更好地适应包含只有少数标记样本的未知类的新任务。

做法: 微调元学习器f通过训练它在从基类数据集 Dbase 采样的多个“N-way K-shot”任务 {τ}

-具体来说,给定一个支持集 S 的任务 τ,SUN计算类 k 的分类原型 wk:

在这里插入图片描述
其中 Sk 表示来自类 c 的支持样本, GAP表示全局平均池化操作

然后对于每个查询图像 x,元学习器 f 计算第 k 个类的分类置信度分数:
在这里插入图片描述
其中 cos 表示余弦相似度,γ 是温度参数。最后,它最小化交叉熵损失 Lfew-shot = H(px, yx) 以在各种采样任务 {τ} 上微调 meta-leaner f,其中 px = [p1, · · · , pc] 是预测, yx 是 x 的真实标签。在这个元微调之后,给定一个新的测试任务 τ ′ 和支持集 S ′ ,我们按照上面的步骤计算它的分类原型,然后使用等式 (3) 预测测试样本的标签。

4 Results

为了公平比较,文章缩放了ViT 的深度和宽度,使得它们的模型大小类似于 ResNet12 [17](~12.5M 参数)

1、最初的ViT
-所有ViT无论是经过元训练还是元训练+元微调,表现都比 ResNet-12 差得多。

在这里插入图片描述

-a和b看出所有 ViT 在基础数据集 Dbase 中的训练和验证集上都很好地收敛;
-c看出 ViT 在整个元训练阶段也很好地收敛于新类别的训练数据;
-d看出ViT 对新类别的测试数据的泛化能力较差。

在这里插入图片描述

2、ViT引入归纳偏置
三种方式:
-使用一个 ViT 分支和一个 CNN 分支来独立提取图像特征,并将它们的特征进行融合;
-在 Dbase 上训练一个 CNN 模型,并通过知识蒸馏使用它来教授 ViT ;
-局部注意力引入了(类似 CNN 的) 归纳偏置。

在这里插入图片描述
3、收敛速度≠标记依赖学习的质量

-与 vanilla ViT 相比,CNN distilled ViT 可以学习更高质量的 token 依赖性,如图 4(a) 所示。然而,CNN distilled ViT 收敛速度较慢且训练精度较低,如图 4(b) 所示。
-对于 vanilla ViT,其训练精度在前 30 个时期迅速增加,但在图 4(b)中的后续时期变得饱和,而其在最后一个块的注意力图仍在图 3 中演变。
-图 4(c)(和 4(d))表明注意力得分距离在所有训练阶段都稳定下降。
注意,注意力距离越大表明该点在图像中越重要,这里注意力稳定下降,应该指的是一些背景patch。
在这里插入图片描述

4、引入SUN后的ViTs

-表 3 显示,在 miniImageNet 上,SUN 在四个 ViT 上显着超过元基线
在这里插入图片描述

-表4显示,SUN在1-shot实验已经达到了66.54%,非常高了

一些方法细节:
AC:引入CNN模块
Distill:知识蒸馏
FT:元微调
所有的方法都是使用NesT作为ViT的特征提取器(纯Transformer)

在这里插入图片描述

-表5显示,SUN和目前SOTA的比较,使用Visformer(引入了CNN模块)的SUN准确率已经达到了67.80%,更高!

在这里插入图片描述
5、消融实验

-各个模块的作用

在这里插入图片描述

-元微调的方法
当选择DeppEMD作为SUN的元微调方法时,结果已经超过SOTA,达到69.56%(特征提取器为Visformer)
在这里插入图片描述

此外,具有 ViT 主干的 SUN 是第一个将 ViT 主干应用于少样本分类的工作,与以前的工作 [11,19,58,67,30] 利用Transformer层作为少样本分类器不同。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

求给定集合中好数对的个数

已知一个集合A,对A中任意两个不同的元素求和,若求得的和仍在A内,则称其为好数对。例如,集合A{1 2 3 4},123,134,则1,2和1,3 是两个好数对。 编写程序求给定集合中好数对的个数。 注:…

java设计模式(1) 适配器模式、装饰器模式

适配器模式 适配器就是一种适配中间件,它存在于不匹配的了两者之间,用于连接两者,使不匹配变得匹配。 手机充电需要将220V的交流电转化为手机锂电池需要的5V直流电 知识补充:手机充电器输入的电流是交流,通过变压整流…

XML复习

目录什么是XMLXML中的内容可以干什么XML文件的创建以及其格式XML的文档约束-DTD约数XML的文档约束-schema约束Dom4J 解析XML 文档什么是XML XML 全称(extensible Markup Lanage) 可扩展标记语言它是一种数据的表示形式, 可以存储复杂的数据格式以及我们自己定义的格式.XML经常…

windows安装ubuntu时错误WslRegisterDistribution failed with error: 0x8007023e的解决方法

cmd或者powershell安装,或者打开linux时 莫名的出现了如下错误: Installing, this may take a few minutes... WslRegisterDistribution failed with error: 0x8007023e Error: 0x8007023e {Application Error} The exception s (0x尝试了很多的方法都不…

Qt图片显示有波纹

现象 Qt中当渲染显示的分辨率比原图片分辨率小时,就会有波纹。如下图所示,左边是正常显示,右边衬衫那里产生严重的波纹。这种波纹在计算机图形学叫摩尔纹,这是纹理贴图采样出现走样的现象,纹理分辨率过大时就会出现这…

解决Windows微信和 PowerToys 的键盘管理器冲突

Windows开机之后PowerToys能正常使用, 但是打开微信之后设置好的快捷键映射就全部失效了 打开微信 -> 左下角三条杠 -> 设置 -> 快捷键 首先我把微信的快捷键全部清空了,发现还是没用 然后发现了设置里默认勾选了检测快捷键,我在想程序肯定是一直在后台检测,而powerTo…

可以计算“如何把程序写好”吗?

其实简单理解这个问题就是“可不可以用机器来判断人的程序写得好不好? 后面我查阅了资料,历史上有一个对计算机领域影响颇深的可计算理论,“计算”应该就来源于这里。其实继续深挖还能找出很多涉及计算机本源的有趣的知识,比如图…

异构计算给我们带来了哪些思考?

虽然异构计算的快速发展给企业创新带来了更加强大的算力支撑,但真正推动异构计算的高速发展和应用落地,笔者认为还需要在以下三个方面做好功课。 从2022年火爆全球的元宇宙,到今年的ChatGPT,以人工智能为代表的科学技术正在创造出…

Unity Animation -- 改进动画效果

使用曲线(Curves)改善动画 在上一篇笔记中(Unity Animation -- Overview_亦枫Leonlew的博客-CSDN博客),我们制作了简单的小球弹跳的动画,但这个动画看起来很不自然,小球的弹跳看起来就像是不受…

Vue3信息提示(Modal)

Vue2信息提示(Modal) 可自定义设置以下属性: 标题描述(title),类型:string,默认 Title 内容描述(content),类型:string,…

盲盒经济下与社交电商结合,打造电商卖货新模式

如今,盲盒经济正在从线下延伸到线上,从潮流玩具扩展到美妆、食品、服装、数码等领域,形成了一种新的电商生态。 什么是盲盒电商? 盲盒电商是一种电商行业的营销模式,通过发起盲盒活动或拆盲盒,让参与者不…

MongoDB 查询文档(3)

我们之前讲解过,查询文档的语法: db.collection.find(query, projection, options) 其中 query 代表的是查询过滤器,projection 代表的是文档返回的字段,options 代表的是用于查询的其他选项; 我们已经对query进行了…

Ubuntu16.04虚拟机下安装Qt5.10.0

首先安装虚拟机Vmware,具体参见: Win10安装Vmware+Ubuntu16.04_芯片-嵌入式的博客-CSDN博客 安装完成后,下载qt-opensource-linux-x64-5.10.0.run,使用U盘来实现win10和ubuntu虚拟机之间的文件传输,cp到一个目录后,sudo ./qt-opensource-linux-x64-5.10.0.run进行运行,…

I/O多路转接之select

初识select 系统提供select函数来实现多路复用输入/输出模型.* select系统调用是用来让我们的程序监视多个文件描述符的状态变化的; * 程序会停在select这里等待,直到被监视的文件描述符有一个或多个发生了状态改变;select函数原型 select的函数原型如下: #include …

SpringCloud 使用sentinel

一、添加依赖 <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId> </dependency> 二、配置文件配置地址 spring:cloud:sentinel:transport:dashboard: localhost:8080三…

【CSS】课程网站 网格商品展示 模块制作 ① ( 网格商品展示模块盒子模型测量及样式 | 顶部文本标题盒子测量及样式 | 代码示例 )

文章目录一、网格商品展示模块盒子模型测量及样式1、盒子尺寸测量2、标题盒子尺寸测量和样式3、左侧文本盒子尺寸测量和样式4、右侧文本盒子尺寸测量和样式二、顶部文本标题盒子代码示例1、HTML 标签结构2、CSS 样式3、展示效果绘制矩形框中的部分 : 一、网格商品展示模块盒子…

【服务器数据恢复】NTFS分区被格式化如何恢复数据?

服务器数据恢复环境&故障&#xff1a; 误操作格式化服务器RAID5磁盘阵列下的分区&#xff08;NTFS文件系统&#xff09;。 服务器数据恢复过程&#xff1a; 1、将故障服务器连接到北亚企安备份服务器上&#xff0c;将故障服务器的所有硬盘设置为脱机状态&#xff0c;然后以…

什么是中间件?

一、什么是中间件&#xff1f; 1、百度百科 中间件是介于应用系统和系统软件之间的一类软件&#xff0c;它使用系统软件所提供的基础服务&#xff08;功能&#xff09;&#xff0c;衔接网络上应用系统的各个部分或不同的应用&#xff0c;能够达到资源共享、功能共享的目的。目…

手写简易 Spring(二)

文章目录手写简易 Spring&#xff08;二&#xff09;1. 扩展 BeanFactory 接口2. 实现资源加载器&#xff0c;从 Spring.xml 解析和注册 Bean 对象1. 核心实现类 XmlBeanDefinitionReader3. 实现应用上下文&#xff0c;自动识别、资源加载、扩展机制1. 应用上下文2. 核心实现类…

java基础之抽象类与接口

文章目录1.抽象方法和抽象类2.抽象类的作用3.接口4.接口和抽象类的异同5.面向接口编程1.抽象方法和抽象类 抽象方法和抽象类必须使用abstract修饰符来定义&#xff0c;有抽象方法的类只能被定义成抽象类&#xff0c;抽象类里可以没有抽象方法。 抽象类必须使用abstract修饰符来…