当前位置: 首页 > news >正文

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

相关文章:

MFF论文笔记

论文名称:Improving Pixel-based MIM by Reducing Wasted Modeling Capability_发表时间:ICCV2023 作者及组织:上海人工智能实验室,西门菲沙大学,香港中文大学 问题与贡献 MIM(Model Maksed Model)方法可以分为两部分…...

Leetcode 02.07 链表相交(链表)

Leetcode 02.07 链表相交(链表) 解法1 尾部对齐解法2:太厉害了,数学归纳推导的方法 很巧妙,这就是将链表的尾端对齐后再一起遍历,这样能满足题目的要求。因为相交之后两个链表到结束的所有节点都一样了&…...

Bootstrap的媒体对象组件(图文展示组件),挺有用的一个组件。

Bootstrap的.media类是用于创建媒体对象的,媒体对象通常用于展示图像(图片)和文本内容的组合,这种布局在展示新闻文章、博客帖子等方面非常常见。.media类使得创建这样的媒体对象非常简单,通常包含一个图像和相关的文本…...

Day2力扣打卡

打卡记录 无限数组的最短子数组&#xff08;滑动窗口&#xff09; 链接 思路&#xff1a;先求单个数组的总和&#xff0c;再对两个重复数组所组成的新数组上使用 不定长的滑动窗口 来求得满足目标的最小长度。 class Solution { public:int minSizeSubarray(vector<int>…...

项目经理每天,每周,每月的工作清单

很多不懂项目管理的伙伴问&#xff0c;项目经理每天每周每个月的工作是什么呢&#xff1f; 仿佛他们什么都管&#xff0c;但是又没有具体的产出&#xff0c;但是每天看他们比谁都忙&#xff0c;其实很简单&#xff0c;项目中的每个环节负责具体的事情&#xff0c;但是每个环节…...

Java —— 运算符

目录 1. 什么是运算符 2. 算术运算符 2.1 基本四则运算符: 加减乘除模( - * / %) 2.2 增量运算符 - * %与 自增/自减运算符 -- 3. 关系运算符 4. 逻辑运算符 4.1 逻辑与 && 4.2 逻辑或|| 4.3 逻辑非 ! 4.4 短路求值 5. 位运算符 5.1 按位与 & 5.2 按位或 5.3 按位…...

【C++ 中的友元函数:解密其神秘面纱】

友元函数&#xff0c;作为C中一个重要但常常被误解的概念&#xff0c;经常让初学者感到困惑。本文将带您逐步了解友元函数的含义、用途以及如何正确使用它们。 什么是友元函数&#xff1f; 在C中&#xff0c;友元函数是一种特殊的函数&#xff0c;它允许某个类或类的成员函数…...

YOLOv8涨点技巧:手把手教程,注意力机制如何在不同数据集上实现涨点的工作,内涵多种网络改进方法

&#x1f4a1;&#x1f4a1;&#x1f4a1;本文独家改进&#xff1a;手把手教程&#xff0c;解决注意力机制引入到YOLOv8在自己数据集不涨点的问题点&#xff0c;本文提供五种改进方法来解决此问题&#xff1b; ContextAggregation | 亲测在血细胞检测项目中涨点&#xff0c;…...

牛客:FZ12 牛牛的顺时针遍历

FZ12 牛牛的顺时针遍历 文章目录 FZ12 牛牛的顺时针遍历题目描述题解思路题解代码 题目描述 题解思路 通过一个变量来记录当前方向&#xff0c;遍历矩阵&#xff0c;每次遍历一条边&#xff0c;将该边的信息加入到结果中 题解代码 func spiralOrder(matrix [][]int) []int {…...

函数防抖(javaScript)

防抖说明 &#xff08;1&#xff09;防抖的目的&#xff1a; 当多次执行某一个动作的时候&#xff0c;限制函数调用的次数&#xff0c;节约资源。 &#xff08;2&#xff09;防抖的概念&#xff1a; 函数防抖&#xff08;debounce&#xff09;&#xff1a;就是指触发事件后&…...

日常学习记录随笔-redis实战

redis的持久化&#xff08;rdb,aof,混合持久化&#xff09; redis的主从架构以及redis的哨兵架构 redis的clusterredis 是要做持久化的&#xff0c;一般用redis会把数据放到缓存中为了提升系统的性能 如果redis没有持久化&#xff0c;重启的化数据就会丢失&#xff0c;所有的请…...

MySQL事务MVCC详解

一、概述 MVCC (MultiVersion Concurrency Control) 叫做多版本并发控制机制。主要是通过数据多版本来实现读-写分离&#xff0c;做到即使有读写冲突时&#xff0c;也能做到不加锁&#xff0c;非阻塞并发读&#xff0c;从而提高数据库并发性能。 MVCC只在已提交读&#xff08…...

SQL RDBMS 概念

SQL RDBMS 概念 RDBMS是关系数据库管理系统(Relational Database Management System)的缩写。 RDBMS是SQL的基础&#xff0c;也是所有现代数据库系统(如MS SQL Server、IBMDB2、Oracle、MySQL和MicrosoftAccess)的基础。 关系数据库管理系统(Relational Database Management Sy…...

onlyoffice的介绍搭建、集成过程。Windows、Linux

文章目录 什么是onlyoffice功能系统要求安装必备组件 windows搭建资源下载安装数据库onlyoffice安装测试 Linux搭建dockerdocker-compose 项目中用到的技术&#xff0c;做个笔记哈~ 什么是onlyoffice 在本地服务器上安装ONLYOFFICE Docs Community Edition Community Edition…...

37. 解数独

编写一个程序&#xff0c;通过填充空格来解决数独问题。 数独的解法需 遵循如下规则&#xff1a; 数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。&#xff08;请参考示例图&#xff09; 数独部分空…...

git cherry-pick 合并某次提交

一、无冲突的情况 1、合并其它分支某次提交 切换到主分支&#xff0c;想把其他分支的某次commit修改 合并到主分支上&#xff0c; 可以用 git cherry-pick 命令 比如&#xff0c;其它分支&#xff0c;某次提交的commit Hash 是30e48158badc39801f1ce3cb375a07b872d6f220 &a…...

【面试HOT100】子串普通数组矩阵

系列综述&#xff1a; &#x1f49e;目的&#xff1a;本系列是个人整理为了秋招面试的&#xff0c;整理期间苛求每个知识点&#xff0c;平衡理解简易度与深入程度。 &#x1f970;来源&#xff1a;材料主要源于LeetCodeHot100进行的&#xff0c;每个知识点的修正和深入主要参考…...

XPSpeak软件教程-科学指南针

在做X 射线光电子能谱(XPS)测试时&#xff0c;科学指南针检测平台工作人员在与很多同学沟通中了解到&#xff0c;好多同学仅仅是通过文献或者师兄师姐的推荐对XPS测试有了解&#xff0c;但是对于其软件操作还属于小白阶段&#xff0c;针对此&#xff0c;科学指南针检测平台团队…...

NLP算法面经 | 腾讯 VS 美团

作者 | 曾同学 编辑 | NewBeeNLP 面试锦囊之面经分享系列&#xff0c;持续更新中 后台回复『面试』加入讨论组交流噢 lz从3月初脚因打球扭伤了开始&#xff0c;投递简历&#xff0c;接二连三的面试鞭尸又面试&#xff0c;昨天才终于上岸了&#xff0c;分享经验~ 腾讯PCG看点&…...

【广州华锐互动】塔吊多人安拆VR互动培训系统

塔吊多人安拆VR互动培训系统由广州华锐互动制作&#xff0c;是一种基于VR技术的模拟实训系统&#xff0c;专门用于培训塔吊驾驶员和操作员。 在现实生活中&#xff0c;塔吊操作具有一定的危险性&#xff0c;尤其是在培训过程中容易发生意外。而使用VR互动实训系统&#xff0c;学…...

Vim 调用外部命令学习笔记

Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

第19节 Node.js Express 框架

Express 是一个为Node.js设计的web开发框架&#xff0c;它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用&#xff0c;和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘

美国西海岸的夏天&#xff0c;再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至&#xff0c;这不仅是开发者的盛宴&#xff0c;更是全球数亿苹果用户翘首以盼的科技春晚。今年&#xff0c;苹果依旧为我们带来了全家桶式的系统更新&#xff0c;包括 iOS 26、iPadOS 26…...

VB.net复制Ntag213卡写入UID

本示例使用的发卡器&#xff1a;https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...

如何为服务器生成TLS证书

TLS&#xff08;Transport Layer Security&#xff09;证书是确保网络通信安全的重要手段&#xff0c;它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书&#xff0c;可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http…...

3403. 从盒子中找出字典序最大的字符串 I

3403. 从盒子中找出字典序最大的字符串 I 题目链接&#xff1a;3403. 从盒子中找出字典序最大的字符串 I 代码如下&#xff1a; class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南

&#x1f680; C extern 关键字深度解析&#xff1a;跨文件编程的终极指南 &#x1f4c5; 更新时间&#xff1a;2025年6月5日 &#x1f3f7;️ 标签&#xff1a;C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言&#x1f525;一、extern 是什么&#xff1f;&…...

【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分

一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计&#xff0c;提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合&#xff1a;各模块职责清晰&#xff0c;便于独立开发…...

Java编程之桥接模式

定义 桥接模式&#xff08;Bridge Pattern&#xff09;属于结构型设计模式&#xff0c;它的核心意图是将抽象部分与实现部分分离&#xff0c;使它们可以独立地变化。这种模式通过组合关系来替代继承关系&#xff0c;从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...