MFF论文笔记

论文名称:Improving Pixel-based MIM by Reducing Wasted Modeling Capability_发表时间:ICCV2023
作者及组织:上海人工智能实验室,西门菲沙大学,香港中文大学

问题与贡献

MIM(Model Maksed Model)方法可以分为两部分基于像素的图片掩码学习(pixel-based)和基于高位表征的图片掩码学习(tokenizer-based)。相对于后者,基于像素的图像掩码学习方法具有结构简单、计算开销小等优点。本文中,作者通过一系列实验验证了pixel-based MIM方法存在的局限性,并提出使用浅层的low-level features来辅助pixel重建任务。通过将该方法应用到MAE中,可以增强pixel-based MIM方法的模型建模能力,提高模型的收敛速度,并且在多种下游任务中取得了效果提升。
本文的主要贡献如下:

  • 首先,将multi-level 特征融合策略应用到ViTs中,相对于之前的pixel-based MIM方法效果更好;
  • 然后,通过实验从潜在特征和优化上分析了为什么multi-level 特征融合能提升模型精度;
  • 最后,进行了大量丰富的消融实验,验证模型部件的有效性;

前置概念和理论

Pixel-based MIM存在的问题

对于tokenizer-based MIM方法,例如BEiT中,输入图像的40%被masked,模型通过重建DALL-E的输出特征来学习masked patchs的语义信息。而pixel-based MIM方法中,为了简化预训练和减少计算压力,MAE等方法只将有效的patchs输入到encoder中,让decoder来重建masked patchs的像素值。但是由于pixel-based MIM方法的目标是重建原始像素值,使其倾向于获取high-frequency细节(低级texture)信息,这样算法会浪费大量重要的建模能力,削弱获取low-frequency语义(高级semantic)信息能力。
为了减少建模能力的浪费,学习到高质量的特征表达,用于下游任务。基于此,作者利用MAE进行了两个重要的实验来揭示设计问题。

  1. **融合浅层(Fuse Shallow Layers):**相比于仅仅使用输出层来做像素重建,应用加权平均策略来融合输出层和之前所有的层。每一层的权重是经过归一化的,在预训练阶段是动态更新的,该值的绝对值表示每一层对于重建任务的重要性;其中每一层权重的变化如下下图所示,可以发现模型在训练过程中越来越依赖于浅层的特征。

MAE融合浅层编码层。在训练过程中,MAE会越来越依赖于浅层进行重建任务,表明pixel-based MIM方法对于低级细节特征的偏置

  1. **频率分析(Frequency Analysisi):**为了进一步理解MAE学习到的representation特性,分析了每一层特征的frequency response。作者将encoder的features从空间域转换到频域,观察其对数幅度如下图所示。正常来说,幅度越高证明该层生成的特征包含更high-frequency信息。可以发现,越浅层相对于高层包含更high-frequency分量;

MAE频率分析。对数振幅越大,表示高频信息越多。浅层比深层包含更多的高频信息(低级细节信息)
基于上面实验分析,作者认为像素重建任务会使得模型更倾向于学习低级细节信息

feature pyramid

谈及到多级特征融合,自然而然会想到Feature Pyramid Network(FPN),该技术被广泛应用于目标检测和语义分割中来提升模型对目标不同尺度的学习。将FPN应用到很多已有的算法中都可以提升模型的性能。但是FPN中的多级l特征融合模块接受不同尺度的特征,限制其在ViTs中的应用,因为ViTs中不同层的特征尺度相同。
在这里插入图片描述

模型、理论和方法

为了解决Pixel-based MIM存在的问题,本文提出融合浅层生成低级细节特征到输出层中来实现像素重建任务。通过将浅层的低级特征合并到输出层,减轻模型过度关注低级细节的负担,使其能够更好地捕捉高级语义信息。

Multi-level Feature Fusion

本文提出地MFF方法是一种即插即用地方案,可以整合到现有的Pixel-based MIM方法中,并且不会引起过多地计算开销。MFF的整个框架如下图所示。
image.png

  • 输入和编码

输入图像为 I ∈ R H × W × 3 I \in R^{H \times W \times 3} IRH×W×3,将其送入到encoder中,得到latent representations。
X = E ( I ) X=E(I) X=E(I)
latent representations,表示为 X = x 0 , x 1 , . . . x N − 1 X={x_0, x_1, ... x_{N-1}} X=x0,x1,...xN1,ViT每个transformer layer的输出特征,其中 N N N表示encoder的深度。

  • 选择融合层

单纯融合所有层将引入冗余使得模型更难优化,但是如何找到有效的层将引入搜索空间。为了简化layer选择步骤,作者按照如下的引导:

  1. 对所有的transformer layer输出进行频域分析,可以看到浅层包含低级细节特征,深层包含高级语义特征。结果显示使用浅层的特征能比深层的效果更好,直观分析和定量数字都表明浅层的特征应该被选择进行融合;

image.png
如上图所示,将deep layer的特征和输出层进行融合得到增益几乎可以忽略不记,融合浅层特征效果有较大的提升,使得模型更加注重于语义信息。因此将shallow layer加入进行特征融合。

  1. 对需要进行融合的层数进行分析。如下图所示,引入更多层的输出特征可以不断体征模型性能,因为它们各自都包含不同特征,可以帮助模型完成重建任务。当融合所有层时,可以看到在下游任务中性能的下降。这可能是由于这些层特征存在冗余,使得模型难以优化。

image.png
最终,选择额外 M = 5 M=5 M=5的特征层与最终输出层融合。

  • 投影层

将选择层的indices标记为 W W W,对于每一个额外的层在进行融合之前会输入到一个projection layer P i P_i Pi,公式如下:
X ˇ = { P i ( x i ) } i ∈ W + { x N − 1 } \check{X}={\{P_i(x_i)\}_{i\in{W}}} + \{x_{N-1}\} Xˇ={Pi(xi)}iW+{xN1}
通过projection层可以对齐不同level的特征。

  • 融合层

最后,引入融合层来融合不同层级的特征:
O = F ( X ˇ ) O=F(\check{X}) O=F(Xˇ)
O O O将输入到decoder中用于像素重建。

投影和融合层地选择

对于projection layer,有两种选择:linear projection 和 non-linear projection。具体使用的是Linear-GELU-Linear结构,实验表明在MFF框架中一个简单的linear层是有效且高效的。
fusion layer目的是为了从浅层特征中获取low-level信息,本文评估两种常用的融合方法:weighted average pooling和self-attention-based 融合。
weighted average pooling融合的公式如下,其中 w w w为对应层的权重比例,在训练过程中,所有的权重都会动态更新,加起来总和为1.
O = ∑ i ∈ W w i P i ( x i ) + w N − 1 x N − 1 O=\sum_{i\in{W}}w_iP_i(x_i) + w_{N-1}x_{N-1} O=iWwiPi(xi)+wN1xN1
self-attention融合使用transformer layer,公式如下。
O ^ = M u l t i H e a d A t t e n t i o n ( [ P i ( x i ) i ∈ W ] , x N − 1 ) \hat{O}=MultiHeadAttention([P_i(x_i)_{i\in{W}}], x_{N-1}) O^=MultiHeadAttention([Pi(xi)iW],xN1)
经过multi-head attention层之后,会从 O ^ \hat{O} O^提取出 x N − 1 x_{N-1} xN1对应的tokens用于像素重建。实验结果显示weighted average pooling策略和self-attention的结果相当,但是更加简单和计算高效。
image.png

实验与结论

实验分析

Frequency分析

为了揭开多层特征融合有效的秘密,作者使用多层特征统合来增强MAE,得到 M F F M A E MFF_{MAE} MFFMAE。融合方法的目的是为了避免模型过度关注低级细节信息。为了研究融合前后的频率响应的变化,作者将编码器最后一层的特征转换到频域,并计算各频段的幅度。如下图所示,多层特征融合减少了高频响应并放大了属于低频范围的响应,这一结果支持了多层融合的有效性。
image.png

优化手段分析

作者还分析了Hessian的最大特征值谱,发现多层特征融合可以降低Hessian最大特征值的大小。如下图所示, M F F M A E MFF_{MAE} MFFMAE的Hessian 最大特征值要小于 M A E MAE MAE。Hessian 最大特征值表示重建loss函数的局部曲率,这个结果认为多层特征融合使潜在损失更加平坦。越大的特征值会阻碍神经网络训练。因此,多层特征融合可以帮助网络学习更好的特征表示通过抑制较大的特征值。
image.png

不同预训练方法的特征偏差

为了证明偏向于低级细节特征是否是pixel-based MIM的唯一固有缺陷,作者通过将多级特征融合引入到EVA和监督ViT。EVA是CLIP出品的专注于回归high-level特征的代表作品之一,supervised ViT要求模型将输入图像映射到语义标签。EVA和supervised ViT的目标是学习包含丰富语义信息的高级特征。
image.png
如上图所示,不同于MAE,EVA和supervised ViT的最后一层特征权重远大于浅层。结果显示pixel-based MIM方法出现低级特征偏差的主要原因是原始像素重建任务。

实验结果

为了确保其设计方法和组件的有效性,作者在ImageNet上进行了一些图像分类实验,在COCO上进行目标检测实验,在ADE20K上进行语义分割任务。此外,还在参数量少的ViT-S进行少样本的微调实验。

对比实验

将MFF应用到MAE和PixMIM算法中,可以看到在不同的下游任务上效果都有提升。如下图所示,进行300个epoch训练之后,MFF相对于MAE在微调,线性探测和语义分割方面上分别提升了0.5%,1.8%和3.6%。
同时,通过分析表格可以发现微调(fine-tune)可能不是一个敏感的指标,原因可能在于预训练和微调的训练数据的分布相同,训练集的大小和模型容量足以抵消不同方法之间的性能差距。为了解决这个问题,作者只使用1%和10%的训练集对预训练模型进行微调。当进行少样本微调时,MFF与基本方法之间的性能差距增大,进一步验证了MFF的有效性。
image.png
为了减轻模型复杂度带来的影响,使用ViT-S预训练MAE进行对比实验。由于ViT-S相对于ViT-B的复杂度更低,ViT-S需要更有效的预训练方法来学习语义特征。如下图所示,MFF 相对于基础模型提升明显,进一步验证了MFF的有效性。
image.png
在 COCO 上作者采用 Mask R-CNN 方法同时生成边界框和实例,并以 ViT 作为主干。使用AP作为该任务的评价指标,实验对比如下图所示,MFF依然取得了不少的进步。
image.png

鲁棒性评估

通过在非同源数据集:ImageNet-Corruption,ImageNet-Adversarial,ImageNet-Rendition和ImageNet-Sketch。如下图所示,MFF极大的提升了MAE和PixMIM在所有数据集上的效果。
image.png

思考

在本文中,作者系统地探索了多层特征融合在MIM方案中的应用。通过一系列初步实验,揭示了浅层低级特征在像素重建任务中的重要性,并在 MAE 和 PixMIM 两种pixel-based MIM 方法中应用了MFF多层特征融合策略,实现了显著的性能提升。消融实验中进一步探索了层数选择和投影融合策略,并发现了MFF可以抑制高频信息并弱化损失。该工作为pixel-based MIM 方法提供了新的视角,推动了这种简单高效的自监督学习范式的发展。

参考链接

https://juejin.cn/post/7266299564344934419
https://zhuanlan.zhihu.com/p/652167613

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言-贪吃蛇 1.输入控制ncurse

一、为什么要用nurse C语言中的gets()、scanf()、getchar()等函数是在用户输入后需要按下Enter键才能执行代码,而贪吃蛇要求按下按键后立即对蛇的方向进行操作,所以根据贪吃蛇功能的需求引入ncurse,让用户输入后就能让蛇进行对应的行动。 二、…

Spring Boot中的异步编程:解决的问题与应用场景

Spring Boot中的异步编程:解决的问题与应用场景 在现代Web应用程序中,高并发和性能是至关重要的。为了处理大量的请求和任务,异步编程成为了不可或缺的一部分。Spring Boot提供了强大的异步编程支持,可以显著提高应用程序的吞吐量…

Spring MVC 和Spring JDBC

目录 Spring MVC MVC模式 核心组件 工作流程 Spring JDBC Spring JDBC功能和优势 Spring JDBC的关键组件 Spring MVC Spring MVC(Model-View-Controller)是Spring框架的一个模块,用于构建Web应用程序。它的主要目标是将Web应用程序的不…

比较和同步数据库架构和数据:MssqlMerge Pro Crack

比较和同步数据库架构和数据 适用于Oracle、MySQL 和 MariaDB、SQL Server、PostgreSQL、SQLite、MS Access和跨 DBMS 场景 业界领先的文本比较工具中常用的两面板 UI 快速过滤器显示所有/新/更改/新更改 合并两个方向的更改 轻量级:跨 DBMS 工具小于 20 MB&#xf…

【大数据Hive】hive select 语法使用详解

目录 一、前言 二、Hive select 完整语法树 三、Hive select 操作演示 3.1 数据准备 3.1.1 创建一张表 3.1.2 将数据load加载到t_usa_covid19表 3.1.3 再创建一张分区表 3.1.4 使用动态分区插入数据 3.2 select 常用语法 3.2.1 查询所有字段或者指定字段 3.2.2 查询…

计算机视觉:池化层的作用是什么?

本文重点 在深度学习中,卷积神经网络(CNN)是一种非常强大的模型,广泛应用于图像识别、目标检测、自然语言处理等领域。而池化层作为CNN中的一个关键步骤,扮演着优化神经网络、提升深度学习性能的重要角色。本文将深入探讨池化层的作用及其重要性,帮助读者更好地理解和应…

如何使用JMeter测试导入接口/导出接口

今天一上班,被开发问了一个问题:JMeter调试接口,文件导入接口怎么老是不通?还有导出文件接口,不知道文件导到哪里去了? 我一听,这不是JMeter做接口测试经常遇到的嘛,但是一时半会又…

nodejs+vue考研信息查询系统-计算机毕业设计

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性:…

MSVC编译dcmtk库

官网 https://www.dcmtk.org/en/dcmtk/ 下载源码和支持包 支持包在support文件夹下,选择适合你的MSVC版本 到官网下载cmake,官网cmake.org 解压源码 支持库 打开cmake-gui,填写源码目录(dcmtk解压的源码目录)和编译目录(自定义的目录) 点下面的configure,弹出选…

腾讯云我的世界mc服务器配置怎么选择?

使用腾讯云服务器开Minecraft我的世界服务器配置怎么选择?10人以内玩2核4G就够用了,开我的世界服务器选择轻量应用服务器就够了,腾讯云轻量CPU采用至强白金处理器,大型整合包一般1.12版本的,轻量2核4G配置都差不多的&a…

Lua调用C#类

先创建一个Main脚本作为主入口,挂载到摄像机上 public class Main : MonoBehaviour {// Start is called before the first frame updatevoid Start(){LuaMgr.GetInstance().Init();LuaMgr.GetInstance().DoLuaFile("Main");}// Update is called once p…

JAVA中的垃圾回收

JVM规范说了并不需要必须回收方法区,不具有普遍性,永久代使用的是JVM之外的内存 引用计数:效率要比可达性分析要强,随时发现,随时回收,实现简单,但是可能存在内存泄漏 局部变量表,静态引用变量&…

Apache Dubbo 首个 Node.js 3.0-alpha 版本正式发布

作者:蔡建怿 关于Apache Dubbo3 Apache Dubbo 是一款易用、高性能的 WEB 和 RPC 框架,同时为构建企业级微服务提供服务发现、流量治理、可观测、认证鉴权等能力、工具与最佳实践。经过近几年发展,Dubbo3 已在阿里巴巴集团各条业务线实现全面…

登录中获取验证码的节流

一. 验证码框 <el-input placeholder"请输入验证码" prefix-icon"el-icon-lock" v-model"ruleForm.code"><el-button slot"suffix" :disabled"disabled" type"text" size"mini" click"ch…

JavaFX: 使用本地openjfx包

JavaFX: 使用本地openjfx包 1、注释配置2、下载openjfx包3、导入openjfx的jar包 1、注释配置 build.gradle配置注释&#xff1a; 2、下载openjfx包 下载javaFx地址&#xff1a;https://gluonhq.com/products/javafx/ 3、导入openjfx的jar包

求三维坐标绕坐标轴旋转后的坐标值

目的 旋转矩阵 应用 沿单个坐标轴旋转 沿多个坐标系旋转 目的 由于其他文章原理介绍比较详细&#xff0c;但应用方面较少。本文直接介绍旋转矩阵的应用&#xff0c;条件为坐标系不变&#xff0c;求旋转后的三维坐标。本文方法较傻瓜式&#xff0c;需要自己进行测试以确认是…

Spring Boot 开发环境热部署

Spring Boot 项目无法像前端项目那样&#xff0c;修改源代码后刷新网页就能即时看到效果&#xff0c;需要先暂停运行&#xff0c;再重新启动&#xff0c;最后刷新网页。 为了避免这一麻烦的操作&#xff0c;我们可以设置热部署&#xff0c;启动服务后不论怎么修改源码&#xf…

Compose 组件 - 分页器 HorizontalPager、VerticalPager

一、概念 类似于 ViewPager&#xff0c;1.4 版本之前需要借助 accompanis 库&#xff0c;底层基于 LazyColumn、LazyRow 实现&#xff0c;在使用上也基本相同。默认情况下 HorizontalPager 占据屏幕的整个宽度&#xff0c;VerticalPager 会占据整个高度。 fun HorizontalPager(…

基于 ACK Fluid 的混合云优化数据访问(五):自动化跨区域中心数据分发

作者&#xff1a;车漾 前文回顾&#xff1a; 本系列将介绍如何基于 ACK Fluid 支持和优化混合云的数据访问场景&#xff0c;相关文章请参考&#xff1a; -基于 ACK Fluid 的混合云优化数据访问&#xff08;一&#xff09;&#xff1a;场景与架构 -基于 ACK Fluid 的混合云优…

HTML5播放 M3U8的hls流地址

在HTML5页面上播放M3U8的hls流地址 <!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <title>视频播放</title> <script src"https://cdn.jsdelivr.net/npm/hls.jslatest"></script> &…