【半监督图像分类 2022 CVPR 】Semi-ViT

news2024/11/15 13:11:23

【半监督图像分类 2022 CVPR 】Semi-ViT

论文题目:Semi-supervised Vision Transformers at Scale

中文题目:

论文链接:https://arxiv.org/abs/2208.05688

论文代码:https://github.com/amazon-science/semi-vit

发表时间:2022年8月

论文团队:亚马逊人工智能实验室

教学视频:https://www.bilibili.com/video/BV1CN4y1w7hU

摘要

我们研究了视觉Transformer(VIT)的半监督学习(SSL)。尽管VIT体系结构在不同的任务中得到了广泛的应用,但这是一个尚未被深入研究的课题。 为了解决这个问题,我们提出了一种新的SSL流水线,它首先由非/自监督的预训练,然后是监督的微调,最后是半监督的微调组成。 在半监督微调阶段,我们采用指数移动平均(EMA)-教师框架来代替流行的FixMatch,因为前者对半监督Transformer来说更稳定,提供更高的精度。 此外,我们提出了一种概率伪混淆机制来内插未标记样本及其伪标记以改进正则化,这对于训练具有弱诱导偏差的VITs很重要。 我们提出的方法,称为半VIT,在半监督分类设置中取得了与CNN对应的相当或更好的性能。 Semi-VIT还享有VITS的可伸缩性优势,可以很容易地按比例扩展到大尺寸模型,并且精确度越来越高。 例如,Semivit-HUGE仅使用1%的标签就在ImageNet上实现了令人印象深刻的80%的Top-1准确率,这与使用100%ImageNet标签的Inception-V4相当。

1. 介绍

在过去的几年里,视觉Transformer(VIT)[18]在监督学习[59,41,69]、非/自监督学习[16,12,24]和许多其他计算机视觉任务[11,19,1,54](结构修改)方面取得了显著的进展。 然而,VITS在半监督学习(SSL)中还没有表现出同样的优势,在SSL中只有一小部分训练数据被标记,这是一个介于监督和非/自监督学习之间的问题。 尽管SSL中最近的几种方法已经显著地推进了这一领域[37,58,7,51,66,10,49],但这些方法从卷积神经网络(CNN)到VIT体系结构的转移还没有显示出太大的希望。 对于top-1精确度top-1精确度imageNet top-1精确度semi-vit-h resnet-152 inception-v4 swin-b convnext-l效率net-l2 semi-vit-h arxiv:2208.05688 v1[cs.cv]2022年8月11日示例,如[64]中所讨论的,直接将fixmatch[51](最流行的SSL方法之一)应用于vit导致比使用CNN架构时性能更差(约差10分)。 这一挑战可能是由于VITs需要更多的数据进行训练,并且比CNNs具有更弱的归纳偏差[18]。 然而,在本文中,我们证明了半监督VITs在适当训练时可以优于CNN对应的VITs,这表明有希望将SSL提升到超越CNN体系结构的水平。

为了获得这样的成功,我们提出了以下SSL管道:

1)对所有数据(包括标记和未标记)进行非/自监督预训练,

然后是2)只对标记数据进行监督微调,

最后是3)对所有数据进行半监督微调。

在我们的实验中,当训练VITs用于SSL时,这种新的管道是稳定的,并有助于降低超参数调整的敏感性。

在半监督微调的最后阶段,我们采用EMA-Teacher框架[58,10],这是对流行的FixMatch[51]的改进版本。

与FixMatch在训练半监督VIT时常常不能收敛不同,EMA-Teacher表现出更稳定的训练行为和更好的性能。

此外,我们提出了基于伪标记的SSL方法的概率伪混淆,该方法将未标记的样本与伪标记耦合进行插值,以增强正则化。

在标准混合[71]中,混合比率从β分布随机取样。

相反,在概率伪混合中,该比率取决于两个混合样本各自的置信度,因此置信度高的样本在最终插值样本中的权重更大。

这种新的数据增强技术带来了不可忽略的收益,因为VIT具有较弱的归纳偏差,特别是对于训练更加困难的场景,例如,没有非/自监督的预训练,或者在带有很少标记样本(例如,1%标签)的数据制度上。

我们称我们的方法为半VIT。 请注意,Semi-VIT构建在完全相同的VITS设计上(即,既没有额外的参数,也没有架构更改)。

Semi-VIT从不同方面实现了有希望的结果(图1)。

  1. 在SSL1上,我们首次发现纯VITS可以达到与CNNS相当或更好的精度。
  2. 在SSL设置下,半VIT可以很容易地放大。 这在图1(a)和(b)中说明了不同规模的VIT架构,从VIT小到VIT大,半VIT优于现有技术,如SIMCLRV2[15]。
  3. Semi-VIT显示出显著降低标记成本的潜力。例如,如图1©所示,具有1%(10%)ImageNet标签的Semi-VIT-HUGE实现了与全监督Inception-V4,convnext-L相当的性能。 这意味着人类注释成本减少了100×(10×)。
  4. Semi-VIT在ImageNet上达到了最先进的SSL结果,例如,仅用1%(10%)的标签就达到了80.0%(84.3%)Top-1的准确率。 此外,Semi-VIT对性能的大幅提升并不是孤立于ImageNet之上的:我们发现,对于其他数据集,包括Food-101[9]、Inaturalist[28]和GoogleLandMark[48],与监督微调基线相比,使用1%(10%)标签的Top-1精度提高了13%-21%(7%-10%)。

image-20230215174346364

图1:(a)和(b)是在不同的模型尺度下我们的半VIT与最先进的SSL算法的比较,©是与最先进的监督模型的比较。

2. 半监督Transformer

2.1 Pipeline

文献中存在一些半监督学习的管道。 例如:1)使用SSL技术直接从头开始训练模型,例如FixMatch[51]; 2)先对模型进行非/自监督预训练,然后对标记数据进行优化[25,14,22]; 3)先对模型进行自监督预训练,然后对标记数据和未标记数据进行半监督优化[10]。 在本文中,我们提出了以下流程:首先,在不使用任何标签的情况下,对所有数据进行可选的自监督预训练; 其次,对已有的标注数据进行标准监督微调; 最后,对标记数据和未标记数据进行半监督微调。 这个过程类似于[15],不同的是他们在最后阶段使用知识蒸馏[27]。 我们发现,该训练管道可以稳定地训练半监督视觉Transformer,并且在可能较少的超参数调整情况下取得了很好的效果。

2.2 EMA-Teacher Framework

FixMatch[51]在过去几年中作为一种流行的SSL方法出现。 正如[10]中所讨论的,它可以被解释为一个学生-教师框架,其中学生和教师模型是相同的,如图2(a)所示。 然而,FixMatch有意想不到的行为,特别是当模型包含批规范化(BN)时[33]。 尽管VIT使用层归一化(LN)[4]代替BN作为归一化,但我们仍然发现VIT的FixMatch性能低于CNN的同类,并且经常不收敛。 在[64]中也观察到了这种现象。 一个潜在的原因是FixMatch中的学生模型和教师模型是相同的,这很容易导致模型崩溃[25,22]。 正如文[10]所建议的,EMA-meacher(如图2(b)所示)是FixMatch的一个改进版本,因此我们采用它作为我们的半监督VIT。 在EMA-Teacher框架中,教师参数θ由学生参数θ通过指数移动平均(EMA)更新,
θ ′ = m θ ′ + ( 1 − m ) θ \theta^\prime=m\theta^\prime+(1-m)\theta θ=mθ+(1m)θ
其中动量衰减 m m m是一个接近1的数字,例如0.9999。 学生参数通过标准学习优化来更新,例如SGD或ADAMW[43]。 其他组件与FixMatch完全相同,如图2所示。 这种时间加权平均可以稳定训练轨迹[3,34]并避免模型崩溃问题[25,22]。 实验还表明,在训练Semi-ViT时,该EMA-Teacher框架比FixMatch具有更好的训练效果和更稳定的训练行为。

image-20230622101212460

图2:FixMatch(A)和EMA-Teacher(B)的框架比较。 xs/xw是样本x的强/弱增广视图,θ是模型参数。

2.3 半监督学习公式

在EMA-Teacher框架中,在训练过程中,一个minibatch中既有标记样本,也有未标记样本。 标记样品上的损失 { ( x i l , y i l } i = 1 N l \{(x_i^l,y_i^l\}_{i=1}^{N_l} {(xil,yil}i=1Nl是标准的交叉熵损失, L l = 1 N i ∑ i = 1 N l C E ( x i l , y i l ) \mathcal{L}_l=\frac{1}{N_i}\sum_{i=1}^{N_l}CE(x_i^l,y_i^l) Ll=Ni1i=1NlCE(xil,yil)

对于未标记样本 x u ∈ { x i u } i = 1 N u x^u\in\{x_i^u\}_{i=1}^{N_u} xu{xiu}i=1Nu,对其进行弱增广和强增广,分别生成 x u , w x^{u,w} xu,w x u , s x^{u,s} xu,s。 弱增广的 x u , w x^{u,w} xu,w通过教师网络转发,并输出类上的概率, p = f ( x u , w ; θ ′ ) p=f(x^{u,w};\theta^\prime) p=f(xu,w;θ)。 然后由 y ^ = arg ⁡ max ⁡ c p c \hat{y}=\arg \max_cp_c y^=argmaxcpc产生伪标记,其相关置信度为 p = max ⁡ p c p=\max p_c p=maxpc。 然后使用置信度高于置信度阈值τ的伪标签来监督学生在强增广样本 x u , s x^{u,s} xu,s上的学习,
L u = 1 N u ∑ i = 1 N u [ o i ≥ τ ] C E ( x i u , s , y ^ i ) \mathcal{L}_u=\frac{1}{N_u}\sum_{i=1}^{N_u}[o_i\ge \tau]CE(x_i^{u,s},\hat{y}_i) Lu=Nu1i=1Nu[oiτ]CE(xiu,s,y^i)
其中[·]是指示函数。 总损耗为 L = L l + μ L u \mathcal{L}=\mathcal{L}_l+\mu\mathcal{L}_u L=Ll+μLu,其中 μ \mu μ为权衡权重。 注意,只有置信度高于阈值的伪标签才会导致最终损失; 其他的都没有使用。 这种过滤背后的原理是,低置信度的伪标签噪音更大,可能会劫持SSL训练。

3 概率伪混和

image-20230622101338811

图3:未标记数据上的不同混搭变体。 红色样本是通过置信度阈值的样本,而不是蓝色样本。

3.1 Mixup

Mixup[71]执行对样本及其标签的凸组合,
x ^ = λ x i + ( 1 − λ ) x j y ^ = λ y i + ( 1 − λ ) y j \hat{x}=\lambda x_i+(1-\lambda)x_j \\ \hat{y}=\lambda y_i+(1-\lambda)y_j x^=λxi+(1λ)xjy^=λyi+(1λ)yj
其中, α ∈ ( 0 , ∞ ) \alpha \in (0,\infty) α(0,)的混合比 λ ∼ B e t a ( α , α ) ∈ [ 0 , 1 ] \lambda \sim Beta(\alpha,\alpha)\in [0,1] λBeta(α,α)[0,1]。 在训练过程中,样本通常被混合在一个小批中。 给定一个minibatch b和它的洗牌版本b,混合的minibatch是~b=λb+(1-λ)b,其中λ可以是批处理式的,也可以是元素式的。 由于弱电感偏差的性质,VIT比CNN更需要数据,因此有效的数据增强(如混杂)对于训练全监督VIT是至关重要的[18,59,41,69]。 这也适用于Semivit,因为它继承了VIT的弱电感偏置的性质。 虽然在监督学习中使用MIXUP是标准的,但如何在基于伪标记的SSL框架(如EMA-TESTEAR)下使用MIXUP还不清楚,我们将在下面讨论它。

3.2 伪混合

在基于伪标记的SSL框架[38,51,49,10]下,给定一个未标记样本及其伪标记 ( x u , y ^ ) (x^u,\hat{y}) (xu,y^),只有当其置信度O不小于置信度阈值 τ \tau τ时,才会导致损失 L u \mathcal{L}_u Lu,如(2)所示。

根据它们的置信度得分,未标记的小批量 B u {\mathcal{B}}^{u} Bu可以被分组为一个干净子集 B ^ u = { ( x i u , y i ^ ) ∣ o i ≥ τ } \hat{B}^u=\{(x_i^u,\hat{y_i})|o_i\ge \tau\} B^u={(xiu,yi^)oiτ}和一个噪声子集 B ˙ u = B u − B ^ u \dot{B}^u=B^u-\hat{B}^u B˙u=BuB^u。 一个简单的解决方案是在完整的未标记的Minibatch BU上应用混合,在干净的和噪声的样品之间没有区别,称为伪混合,如图3(a)所示。 伪混合后,仍然只有 B u \mathcal{B}^u Bu中的样本对损失有贡献,而B u中的样本被抛弃。 这样,混搭操作就不仅仅是数据扩充了。 事实上,如果将 B ˙ u \dot{B}^u B˙u中的样本与 B ^ u \hat{\mathcal{B}}^u B^u中的样本混在一起,也会导致最终的损失。 因此,由于随机性,它可能会在损失计算中涉及大量的噪声样本,然而,这违背了伪标记的哲学。 由于只有干净的子集 B ^ u \hat{\mathcal{B}}^u B^u会导致最终损耗,另一种选择是只对 B ^ u \hat{B}^u B^u使用mixup,表示为 p s e u d o   m i x u p + pseudo\ mixup+ pseudo mixup+,如图3(b)所示。 这样,噪声子集 B ˙ u \dot{B}^u B˙u中的任何样本都不会影响训练。

3.3 Probabilistic Pseudo Mixup

尽管 B ˙ u \dot{B}^u B˙u中的样本存在噪声,但它们仍然携带了一些有用的信息供模型学习。 上面的伪混合可以通过混合噪声和干净的伪样本在一起以某种方式利用这些信息。 然而,问题是混合比是随机产生的一个贝塔分布,它不依赖于每个样本的置信度。 这并不理想。 例如,当两个样本混合时,置信度较高的样本应该有较高的混合比,这样它在最终损失中的分量就更大。 基于这种直觉,我们提出了概率伪混合(图3©),其中混合比λ关系到样本的可信度
λ i = o i / ( o i + o j ) \lambda_i=o_i/(o_i+o_j) λi=oi/(oi+oj)
同时,在混合操作后,将 x i u x_{i}^{u} xiu的置信度得分更新为
o i ∗ = max ⁡ ( o i , o j ) o_i^*=\max(o_i,o_j) oi=max(oi,oj)
因为置信度得分应该与大多数图像内容对齐。 且最终清洁子集 B ~ u = { ( x ~ i u , y ~ i u ) ∣ o i ∗ ≥ τ } \tilde{\mathcal{B}}^u=\{(\tilde{x}_i^u,\tilde{y}_i^u)|o_i^*\geq\tau\} B~u={(x~iu,y~iu)oiτ}将促成最终损失。 使用这种概率伪混合可以增强正则化,利用来自所有样本的信息,即使是有噪声的样本,同时也不会违反伪标记的哲学。 实验结果表明,该方法可以有效地缓解半VIT的弱归纳偏置问题,并带来较大的增益。

4. 实验

本文提出了一种基于半监督学习的视觉变换器半VIT算法。 这是第一次纯视觉变形金刚能够在半监督学习上取得有希望的结果,甚至大大超过了以前最好的基于CNN的同行。 此外,半VIT继承了VIT的可扩展性优点,较大的模型导致与全监督上界的差距较小。 这是半监督学习的一个很有前途的方向。 Semi-VIT的优点可以很好地推广到其他数据集,暗示潜在的更广泛的影响。 我们希望这些有希望的结果能鼓励更多的半监督视觉变形金刚的努力。

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

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

相关文章

数据结构07:查找[C++][平衡二叉排序树AVL]

图源:文心一言 考研笔记整理1w字,小白友好、代码可跑,请小伙伴放心食用~~🥝🥝 第1版:查资料、写BUG、画导图、画配图~🧩🧩 参考用书:王道考研《2024年 数据结构考研复习…

Linux 超级漂亮的 Shell

先来一张美图 zsh 介绍 1 Linux shell Linux/Unix 提供了很多种 Shell,为毛要这么多 Shell? 难道用来炒着吃么?那我问你,你同类型的衣服怎么有那么多件?花色,质地还不一样。写程序比买衣服复杂多了&#xf…

在vite+vue3中使用less

目录标题 一、首先,安装插件二、在 vite.config.js中配置三、最后在模版里声明css类型 一、首先,安装插件 npm install less npm install less-loader二、在 vite.config.js中配置 css: {preprocessorOptions: {less: {math: "always", // 括…

VS里拉取时候,变成变基中,变成分离分支状态,git 头指针分离于 baf67ff

分离头指针(detached HEAD) 通常,我们工作在某一个分支上,比如 master 分支。这个时候 master 指针和 HEAD 指针是一起前进的,每做一次提交,这两个指针就会一起向前挪一步。但是在某种情况下(例…

docker搭建达梦数据库

搭建达梦数据库 搭建达梦数据库 拉取镜像 # 拉取镜像 docker pull registry.cn-shanghai.aliyuncs.com/techerwang/dbhub:jem_dm8 或去官网下载 https://eco.dameng.com/document/dm/zh-cn/start/dm-install-docker.html我是选择了去官网下载 然后上传到linux服务器 do…

Selenium教程__按钮的点击、文本框的输入和清除操作(3)

from selenium import webdriverdriver webdriver.Chrome() driver.maximize_window() driver.get("https://www.baidu.com")# 定位元素 input_box driver.find_element_by_id("kw") search_btn driver.find_element_by_id("su")# sen_keys&a…

pycharm修改文件大小限制

场景: 方法: 打开pycharm 安装目录下的idea.properties 增加配置项:idea.max.intellisense.filesize99999

电脑word如何转化为pdf格式,其实非常简单!

作为一名在职场工作多年的资深达人,我们都知道工作中常常需要转换各种文件格式,其中最常见的就是Word文档和PDF文档。有时候根据领导、客户或甲方的要求,我们需要进行格式转换,尤其是将Word转换为PDF格式。PDF格式的文件不仅方便阅…

Spring基础知识(四)

目录 1.Spring包含的模块主要有什么 2.Core Container的作用 3.Data Access/Integration模块的作用 4.AOP模块的作用 5.Spring Web模块的作用 6.Test模块的作用 7.如何将一个类声明为Bean 8.Component和Bean的区别 9.能够注入Bean的注解有什么 10.Resource注解 1.Spr…

【Java】Java 中格式化字符串:String.format() 方法

本文仅供学习参考! 相关文章地址: https://www.cnblogs.com/Dhouse/p/7776780.html https://www.javatpoint.com/java-string-format https://www.geeksforgeeks.org/java-string-format-method-with-examples/ 前言 虽然System.out.println()适合调试和…

5 STM32复位和时钟控制

STM32的复位功能 系统复位: 系统复位将复位除时钟控制寄存器CSR中的复位标志和备份区域中的寄存器以外的所有寄存器为它们的复位数值。(按键复位和软件复位属于系统复位) 电源复位: 电源复位将复位除了备份区域外的所有寄存器。…

【Flink】DataStream API使用之转换算子(Transformation)

转换算子(Transformation) 数据源读入数据之后,就是各种转换算子的操作,将一个或者多个DataSream转换为新的DataSteam,并且Flink可以针对一条流进行转换处理,也可以进行分流或者河流等多流转换操作&#xf…

sql with子语句的理解

在用sqlite时,用到了with子语句,记录下对其的理解 目的:在1个字段中找到真正包含的数据,一般用于like,但该字段可能是复杂的字符串数组。 例子数据,如: 【E2806894200050010B93C473,123456】…

软件分享:Cpu-Z电脑CPU检测工具介绍(附下载)

目录 一、软件介绍 二、功能介绍 三、使用方法 1、通过 CPU-Z 查看 CPU 信息 2、缓存信息 3、主板信息 4、内存信息 5、内存规格信息(SPD) CPU是计算机中负责读取指令,对指令译码,并执行指令的核心部件。CPU自产生以来&am…

chatgpt赋能python:用Python计算BIM:优点、应用和结论

用Python计算BIM:优点、应用和结论 Building Information Modeling(BIM)是一种数字化的建筑设计和施工方法,它包括从建筑物的设计、施工到维护和拆除的整个生命周期。BIM在大规模工程建设中越来越受到欢迎,Python编程…

单片机强排热水器方案

单片机强排热水器方案 MCU型号 MM32SPIN05TW、MM32SPIN080C 产品概述 MM32SPIN05TW本产品使用高性能的ArmCortex-M0为内核的32位MCU,最高工作频率可达72MHz,内置高速存储器,丰富的I/O端口和外设连接到外部总线。本产品包含1个12位ADC、1个比…

【群智能算法改进】基于二次插值策略的改进白鲸优化算法 改进后的EBWO[3]算法【Matlab代码#44】

文章目录 【获取资源请见文章第5节:资源获取】1. 原始BWO算法2. 基于二次插值策略的EBWO算法3. 部分代码展示4. 仿真结果展示5. 资源获取 【获取资源请见文章第5节:资源获取】 1. 原始BWO算法 白鲸优化算法 (BWO,beluga whale optimization)…

宝塔SSL续签以及申请报CURL(7)与CURL(28)错误解决方案

说一下具体背景以及遇到的问题: 主要是网站的SSL过期以后,点击宝塔里的续签功能,弹出一个黑框,等超时后报以下错误 其中也尝试过很多方法,都没什么用,当然,如果报错信息不是这类情况&#xff…

3D开发工具HOOPS可构建PLM程序,数据共享更便捷

产品生命周期管理 (PLM) 解决方案实际上都是将制造生产系统粘合在一起的粘合剂,提供从头到尾的数字主线并为最终用户优化流程。 Tech Soft 3D不是构建 PLM 应用程序的专家,但却对构建领先应用程序所基于的组件技术,以及 SDK 如何提供必要的核…

MiniGPT-4原理解读——大模型论文阅读笔记三

论文:https://arxiv.org/pdf/2304.10592v1.pdf 代码:https://github.com/vision-cair/minigpt-4 一. 作者动机 GPT-4展示了非凡的多模态能力,比如直接从手写文本生成网站,以及识别图像中的幽默元素。这些特性在以前的视觉语言模…