Hard Patches Mining for Masked Image Modeling

在这里插入图片描述

摘要

蒙面图像建模(MIM)因其在学习可伸缩视觉表示方面的潜力而引起了广泛的研究关注。在典型的方法中,模型通常侧重于预测掩码补丁的特定内容,并且它们的性能与预定义的掩码策略高度相关。直观地说,这个过程可以被看作是训练一个学生(模型)来解决给定的问题(预测掩蔽补丁)。然而,我们认为,该模型不仅应该关注解决特定的问题,而且应该站在教师的立场上,以产生一个更具挑战性的问题本身。为此,我们提出了硬补丁挖掘Hard Patches Mining(HPM),一个全新的MIM预训练框架。我们观察到,重建损失自然可以成为预训练任务难度的度量标准。因此,我们引入了一个辅助损失预测器,首先预测补丁损失,并决定下一步掩盖在哪里。它采用相对关系学习策略,以防止对精确重建损失值的过拟合。在不同设置下的实验证明了HPM在构建掩蔽图像方面的有效性。此外,我们通过经验发现,仅仅引入损失预测目标就会导致强大的表示,验证了感知哪里难以重建的能力的有效性。

介绍

自监督学习的目标是从没有任何注释的大规模数据集中学习可扩展的特征表示,一直是计算机视觉(CV)的研究热点。受自然语言处理(NLP)中的掩蔽语言建模(MLM)的启发,该模型被敦促预测句子中的掩蔽词,CV中的掩蔽图像建模(MIM)引起了许多研究者的极大兴趣。图1a显示了MIM预训练的传统方法的范例。在这些典型的解决方案中,模型通常侧重于预测掩蔽补丁的特定内容。直观地说,这个过程可以被看作是训练一个学生(即模型)来解决给定的问题(即预测掩蔽补丁)。
在这里插入图片描述

为了缓解CV中的空间冗余,产生具有挑战性的借口任务,掩蔽策略变得非常关键,这些策略通常是在预定义的方式下生成的,如随机掩蔽、块级掩蔽和统一掩蔽。然而,我们认为,一个困难的借口任务并不是我们所需要的全部,不仅学习解决MIM问题是很重要的,而且学习产生具有挑战性的任务也是至关重要的。换句话说,如图1b所示,通过学习创建具有挑战性的问题和解决它们,模型可以站在学生和老师的鞋子,被迫举行更全面的理解图像内容,从而导致自己通过生成一个更理想的任务。

为此,我们提出了硬补丁挖掘(HPM),一种新的MIM训练范式。具体来说**,给定一个输入图像,我们不是在手动设计的标准下生成一个二进制掩模,而是首先让模型作为教师生成一个要求很高的掩模,然后像传统方法一样训练模型作为学生预测掩模补丁。**通过这种方式,我们敦促模型学习在哪里值得被掩盖,以及如何同时解决问题。然后,问题就变成了如何设计辅助任务,使模型知道硬补丁在哪里。

在这里插入图片描述

直观地说,我们观察到重建损失可以自然地衡量MIM任务的难度,这可以通过图2中每个元组的前两个元素来验证,其中由MAE [24]预先训练的1600个时期的主干2用于可视化。正如预期的那样,我们发现图像的那些鉴别部分(例如,物体)通常很难重建,导致更大的损失。因此,通过简单地敦促模型预测每个斑块的重建损失,然后掩盖那些预测损失较高的斑块,我们可以获得一个更强大的MIM任务。为了实现这一点,我们引入了一个辅助损失预测器,首先预测斑块损失,并根据其输出决定下一步屏蔽哪里。为了防止它被重建损失的精确值所淹没,并使其集中于斑块之间的相对关系,我们设计了一种新的基于二元交叉熵的相对损失作为目标。在图2中,我们使用在200个epoch的预训练所使用的ViT-B进一步评估了损失预测器的有效性。正如图2中每个元组的最后两个元素所示,预测损失较大的斑块往往具有区别性,因此掩盖这些斑块带来了一个具有挑战性的情况,即对象几乎被掩盖。同时,考虑到训练的演变,我们提出了一个简单到困难的mask生成策略,在早期阶段提供了一些合理的提示。

根据经验,我们观察到在各种设置下,比监督基线和香草MIM预训练有显著和一致的改善。具体来说,由于预训练只有800个epoch,HPM使用ViT-B和ViTL在ImageNet-1K [58]上达到了84.2%和85.8%的前1准确率,分别比1600个时代预训练的MAE [24]高出+0.6%和+0.7%。

相关工作

  • Self-supervised learning.

  • Masked image modeling.

  • Mask strategies in masked image modeling.

方法

在本节中,我们首先在Sec中概述我们提出的HPM。3.1.然后,在第二秒中介绍了HPM中的两个目标,即重建损失和预测损失。3.2和3.3,分别。最后,在第二节中。3.4,描述了易于实现的掩模生成方式,以及整个训练过程的伪代码。

3.1 概述

如图1和第二节所介绍。1、传统的MIM预训练解决方案可以看作是训练学生解决给定的问题,而我们认为让模型站在教师的立场上,产生具有挑战性的借口任务是至关重要的。为此,我们引入了一个辅助解码器来预测每个掩蔽补丁的重建损失,并仔细设计了其目标。图3给出了我们提出的HPM的概述。
在这里插入图片描述

HPM由一个学生(fθs、dφs和dψs)和一个教师(fθt、dφt和dψt)组成。fθ(·)、dφ(·)和dψ(·)分别是编码器、图像重建器和重建损失预测器,分别由θ、φ和ψ参数化。下标t代表老师,s代表学生。为了产生一致的预测(特别是对于重建损失预测器),动量更新被应用于教师:其中,θt =(θt,φt,ψt)、θs =(θs,φs,ψs)、m为动量系数。

在这里插入图片描述

在每次训练迭代中,一个输入图像I被重塑为一系列二维补丁x∈RH×W×C∈RN×(P2C)。(H,W)为原始图像的分辨率,C为通道数,P为patch大小(例如,16),因此为N = HW/P2。然后,将x输入教师,得到章节中描述的补丁预测重建损失模型(Lˆt=dψt,fθt(x))。3.2.基于预测的重建损失Lˆt和训练状态,以一种简单到困难的方式生成了一个二进制掩码M∈{0,1} N。3.4.学生的训练基于两个目标,即重建损失(3.2)和预测损失(3.3)

在这里插入图片描述

这两个目标以一种交替的方式工作,并通过逐渐敦促学生重建图像中的硬补丁来相互强化以提取更好的表示。

3.2 Image Reconstructor

掩蔽图像建模的目的是训练一个自动编码器(即图像重建器)根据预定义的目标,如原始RGB像素和特定特征。

在这里插入图片描述

其中,对于传统的方法,二进制掩模M∈{0,1} N ^N N是通过预先定义的方式生成的。 ⊙ \odot 表示元素级的点积,因此x ⊙ \odot M表示未屏蔽的(即可见的)补丁,反之亦然。T(·)是变换函数,生成重构的目标。M(·,·)表示相似性度量,如l2-距离、平滑的l1-距离、知识蒸馏和交叉熵。

3.3 Hard Patches Mining with a Loss Predictor

众所周知,在NLP中,句子中的每个单词都是高度语义的。在理解语言时,训练一个模型来只预测少数缺失的单词往往是一项具有挑战性的任务。而在CV中,图像具有较重的空间冗余,因此提出了大量的掩模策略来处理这个问题。

除了通过先验知识设计一个具有挑战性的情况外,我们认为,产生高要求的场景的能力对MIM的预训练也是至关重要的。直观地说,我们考虑了在等式中定义的具有高重建损失的补丁(3)作为硬斑块,它隐含地表示了图像中最具鉴别性的部分,这在图2中得到了验证。因此,如果该模型具有预测每个补丁的重建损失的能力,那么简单地掩盖这些硬补丁就会成为一项更具挑战性的借口任务。

为此,我们使用了一个额外的损失预测器(即图3中的dψ)来在训练过程中挖掘硬斑块。接下来,我们将介绍如何设计具有两种变量的损失预测器的目标: 1)绝对损失和2)相对损失。

Absolute loss

最简单和最直接的方法是以MSE的方式来定义目标。

在这里插入图片描述

其中dψs是由ψs参数化的学生的辅助解码器,这里的Lrec与梯度分离,是损失预测的ground-truth。然而,请回想一下,我们的目标是确定图像中的硬补丁,因此我们需要学习补丁之间的相对关系。在这样的设置下,MSE并不是最合适的选择,因为Lrec的量表随着训练的进行而减小,因此损失预测器可能会被Lrec的量表和确切值所淹没。为此,我们提出了一种基于二值交叉熵的相对损失作为替代方案。

Relative loss.

给定一系列重建损失的Lrec∈RN,我们的目标是利用相对损失来预测目标排序(Lrec)。这是因为,在一个图像中,重建任务的拼块难度可以通过精射排序(Lrec)来测量。然而,由于目标排序(·)操作是不可微的,因此很难直接最小化目标排序(dψs(fθs(xM))和目标排序(Lrec)之间的一些自定义距离。

因此,我们将这个问题转化为一个等价的问题:密集关系比较。具体来说,对于每一对补丁(i,j),其中i,j = 1、2、···、N和i ≠ j,我们可以通过预测Lrec (i)和Lrec (j)的相对关系来隐式地学习目标排序(Lrec),即哪个更大。其目标的定义如下:

在这里插入图片描述

其中,Mi = Mj = 0表示补丁i和j在训练期间都被屏蔽。

在这里插入图片描述

3.4 Easy-to-Hard Mask Generation

有了重建损失预测器,我们能够定义一个更具挑战性的借口任务,即掩盖输入图像的硬/鉴别部分。具体地说,我们从教师网络中获得预测的重建损失,即fθt=dψt(Lˆt=))后,对Lˆt降序进行目标排序(·)操作,以获得图像内的相对重建难度。然而,在早期的训练阶段,学习到的特征表征还没有准备好进行重建,而是被丰富的纹理所淹没,这意味着较大的重建损失可能不等同于鉴别。

然而,在早期的训练阶段,学习到的特征表征还没有准备好进行重建,而是被丰富的纹理所淹没,这意味着较大的重建损失可能不等同于鉴别。为此,我们提出了一种易于硬实现的掩模生成方法,提供了一些合理的提示,指导模型逐步重建掩模硬补丁。

如图3所示,对于每个训练阶段t,由Lˆt生成掩模补丁的αt,并随机选择其余1个−αt。具体来说,αt = α0 + t/T(αT−α0),其中T是总的训练时期,而α0,αT∈[0,1]是两个可调的超参数。我们过滤了Lˆt最高的αt·γN补丁,其余的(1个−αt)·γN补丁被随机屏蔽。αt的比例从α0以线性方式逐渐增加到αT,而没有进一步调整简单,有助于一个易于难操作的训练过程。

算法1总结了训练过程,以及计算训练重建损失预测器的目标的伪代码。由于易于硬的掩模生成的简单实现,请参考补充材料的伪代码。

实验

消融

总结

在本文中,我们发现有必要让模型站在教师的立场上进行MIM预训练,并验证补丁重建损失可以自然地作为重建难度的度量。为此,我们提出了HPM,它引入了一个辅助的重建损失预测任务,从而以生成-求解的方式迭代地指导训练过程。在实验上,HPM引导了跨各种下游任务的掩蔽图像建模的性能。跨不同学习目标的消融表明,HPM作为一个即插即用的模块,可以毫不费力地集成到现有的框架中(例如,像素回归[24,78]和特征预测[17,72,86])中,并带来一致的性能改进。
挖掘硬例子的技术被广泛应用于对象检测[34,39,60]。损失预测可以是一种全新的选择。此外,它还可以作为一种在标签高效学习[19,70,71]中过滤高质量伪标签的技术。同时,如图2和图4所示,显著性区域倾向于有较高的预测损失,因此HPM也可以用于显著性检测[67]和无监督分割[63,64]。我们希望这些观点能启发未来的工作。讨论作为MIM的一个常见问题,线性探测和k-NN分类的性能不如对比学习替代方案[24]相似。此外,由于额外的解码器,HPM需要更多的计算成本。用ViTL [18]对抗MAE [24]基线训练我们的HPM需要∼1.1×的时间。如何在没有额外的辅助解码器的情况下设计一个损失预测任务有待进一步研究。

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

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

相关文章

WiFi(Wireless Fidelity)基础(九)

目录 一、基本介绍(Introduction) 二、进化发展(Evolution) 三、PHY帧((PHY Frame ) 四、MAC帧(MAC Frame ) 五、协议(Protocol) 六、安全&#x…

【GAMES101】作业2学习总结

本系列博客为记录笔者在学习GAMES101课程时遇到的问题与思考。 GAMES101:课程官网GAMES101:B站视频GAMES101:相关文件下载(百度网盘) 一、基础题 本次作业的目的是为了让我们熟悉三角形栅格化的相关操作,通过Assignment2.pdf可以…

白嫖chatgpt的Edge插件,很难不爱啊

目录 🍁1.常见的Edge浏览器界面 🍁二.安装WebTab插件 🍁三.WebTab插件的各种功能 🍁1.支持免费的chatgpt,不限次数​编辑 🍁2.有几个休闲的小游戏可以玩耍,点击即玩。 🍁3.支…

618前夕,淘宝天猫大变革,探索电商天花板之上的价值

2023年淘宝天猫618商家大会,恰逢淘宝20周年,也是阿里“16N”组织架构改革,淘宝天猫“独立”经营后,管理和运营团队的首次亮相。除了淘宝天猫618的具体策略,最受关注的,还有淘宝天猫的大变革——涉及淘宝天猫…

AD9680+JESD204B接口+FPGA FMC高速率数据采集板卡

板卡概述: 【FMC_XM155】 FMC_XM155 是一款基于 VITA57.1 标准的,实现 2 路 14-bit、500MSPS/1GSPS/1.25GSPS 直流耦合 ADC 同步采集 FMC 子卡模 块。 该模块遵循 VITA57.1 规范,可直接与 FPGA 载卡配合使用,板 卡 ADC 器件采用…

CN学术期刊《西部素质教育》简介及投稿邮箱

《西部素质教育》(半月刊)创刊于2015年,是由青海人民出版社有限责任公司主管/主办的教育类学术期刊,本刊恪守“追踪教育研究前沿,关注教育实践热点,探索创新教育理念,传播教育教学信息&#xff…

Linux相关问题

中英文切换 super空格切换中英文;super指键盘上的Win键; 开机自启动服务设置 可视化方式:输入setup命令进入自启动服务配置;通过上下键选中服务,通过空格选择是否自启动该服务; 开启不同的终端 CTRLALT…

audioop.rms函数解读和代码例子

该audioop模块包含对声音片段的一些有用操作。它对由8,16或32位宽的有符号整数样本组成的声音片段进行操作,并以Python字符串存储。这与al和sunaudiodev模块使用的格式相同。所有标量项都是整数,除非另有规定。 audioop.rms 即 sqrt(sum(S_i^2)/n) 这个公…

10个你从未想过的 ChatGPT 有趣用途

这篇文章向我们展示了ChatGPT的有趣用途,如创作独特的故事、写作协助、模拟对话和游戏等。这些应用展示了ChatGPT的强大功能和灵活性。通过这些有趣的例子,我们可以看到ChatGPT作为一种人工智能技术在生活中的实际应用和潜力。无论是娱乐还是实用&#x…

我和C++的故事---第一次见面.

📝个人主页:认真写博客的夏目浅石. 🏠学习社区:夏目友人帐. 文章目录 前言一、第一个C程序二、C 关键字(C98)三、命名空间1、命名空间的定义2、命名空间的使用3、命名空间的三种展开方式 四、C输入&&输出&&换行1、…

三极管的几点应用

三极管有三个工作状态:截止、放大、饱和,放大状态很有学问也很复杂,多用于集成芯片,比如运放,现在不讨论。其实,对信号的放大,我们通常用运放处理,三极管更多的是当做一个开关管来使…

蚁群算法ACS处理旅行商问题TSP【Java实现】

1. 介绍 蚁群算法是一种群体智能算法,模拟了蚂蚁寻找食物时的行为,通过蚂蚁之间的信息交流和合作,最终实现全局最优解的寻找【是否找得到和迭代次数有关】。 蚁群算法的基本思想是将搜索空间看作一个由节点组成的图,每个节点代表…

【软件开发】Memcached(理论篇)

Memcached(理论篇) 1.Memcached 简介 Memcached 是一个开源的,支持高性能,高并发的分布式内存缓存系统,由 C 语言编写,总共 2000 多行代码。从软件名称上看,前 3 个字符 Mem 就是内存的意思&am…

港科夜闻|香港科大与香港科大(广州)管理层联席会议顺利召开

关注并星标 每周阅读港科夜闻 建立新视野 开启新思维 1、香港科大与香港科大(广州)管理层联席会议顺利召开。这是自内地和香港全面恢复通关以来,两校的高级管理团队首次举行线下的联席会议,面对面交流、讨论有关两校协同发展的重要议题。两校持续深入推进…

「——全部文章专栏汇总——」

欢迎来到我的博客 天喜Studio 在这里&#xff0c;我会分享我在 c语言、操作系统、计算机网络等方面的学习和经验&#xff0c;希望能对读者有所帮助。以下是我写的所有专栏 如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 如有疑问欢迎大家指正讨论…

SQL注入(一)联合查询 报错注入

目录 1.sql注入漏洞是什么 2.联合查询&#xff1a; 2.1注入思想 2.2 了解information_schema 数据库及表 3.可替代information_schema的表 3.1 sys库中重要的表 4. 无列名注入 利用 join-using 注列名。 4. 报错注入 4.1 常用函数&#xff1a;updatexml、extractvalue…

C/C++每日一练(20230517) 排序问题、查找小值、寻找峰值

目录 1. 排序问题 &#x1f31f; 2. 查找小值 &#x1f31f; 3. 寻找峰值 &#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1. 排序问题 输入10个数&#…

【Linux学习笔记】设备驱动模型详解——总线、设备、驱动和类

学习内容 设备驱动模型视频讲解 简介 设备驱动是计算机系统中的重要组成部分&#xff0c;它们允许操作系统与硬件交互。设备驱动模型是一种通用的抽象框架&#xff0c;用于描述操作系统如何管理硬件设备。这里我们将介绍设备驱动模型中的四个关键概念&#xff1a;总线、设备…

条款1:理解模板类型推导

现代C中被广泛应用的auto是建立在模板类型推导的基础上的。而当模板类型推导规则应用于auto环境时&#xff0c;有时不如应用于模板中那么直观。由于这个原因&#xff0c;真正理解auto基于的模板类型推导的方方面面非常重要。 在c中声明一个模板函数的伪代码基本如下&#xff1…

六、IDEAJ同一个服务启动多台服务器的方法

目录 1、打开启动类配置窗口--->选择Edit Configurations进入配置窗口 2、从左侧Springboot应用选择需要启动的多台服务器&#xff08;服务只要启动一次就会在此窗口有显示&#xff09;--->勾选Allow parallel run菜单&#xff08;默认不勾选&#xff0c;则只能启动一台…