[论文笔记]SimMIM:a Simple Framework for Masked Image Modeling

news2024/12/22 20:26:46

在这里插入图片描述

文章地址:https://arxiv.org/abs/2111.09886
代码地址:https://github.com/microsoft/SimMIM

文章目录

    • 摘要
    • 文章思路
    • 创新点
    • 文章框架
      • Masking strategy
      • Prediction head
      • Prediction target
      • Evaluation protocols
    • 性能实验
      • 实验设置
      • Mask 策略
      • 预测头
      • 目标分辨率
      • 预测目标
    • 比较实验
      • 与基于 ViT 的不同模型比较
      • 与不同大小的 Swin Transformer 比较
      • 可视化结果
        • 学习能力
        • 预测与重建对比
        • mask patch size 大小
    • 结论

摘要

本文介绍了SimMIM,这是一个用于掩模图像建模的简单框架。我们简化了最近提出的相关方法,而不需要特殊的设计,例如通过离散VAE或聚类进行分块掩蔽和标记化。为了研究是什么使掩蔽图像建模任务学习良好的表示,我们系统地研究了我们框架中的主要组件,并发现每个组件的简单设计都揭示了非常强的表示学习性能:1)对具有适度大的掩蔽补丁大小(例如,32)的输入图像进行随机掩蔽,可以生成强大的文本前任务;2) 通过直接回归预测原始像素的RGB值并不比具有复杂设计的补丁分类方法差;3) 预测头可以像线性层一样轻,性能不会比较重的预测头差。使用ViT-B,我们的方法通过在该数据集上进行预训练,在ImageNet-1K上实现了83.8%的top 1微调精度,超过了以前的最佳方法+0.6%。当应用于具有约6.5亿个参数的更大模型SwinV2H时,仅使用ImageNet-1K数据,它在ImageNet-1 K上就实现了87.1%的top 1精度。我们还利用这种方法来解决大规模模型训练所面临的数据匮乏问题,即3B模型(SwinV2-G)被成功训练,以在四个具有代表性的视觉基准上实现最先进的精度,使用的标记数据比以前的实践(JFT-3B)少40倍。

文章思路

类似于 MAE ,SimMIM 也是基于 mask 建模的一种框架,但是该框架更简单。
整体框架来说,SimMIM 主要步骤为 mask 输入图片,将图像输入 encoder ,再经过一个 predictor head 即可得到输出结果,只将 encoder 用于下游任务。

在这里插入图片描述

与 MAE 相对比,二者区别在于:

  1. MAE 的 mask patch size 大小和切割图像的 patch size 大小一致,SimMIM 的 mask patch size 比切割图像的 patch size 大,为其整数倍;即 SimMIM 中可以屏蔽多个图像的小 patch
    例如:下图中蓝色格子表示图像切割的 patch ,橙色阴影表示 mask patch
    在这里插入图片描述

  2. MAE 的 encoder 和 decoder 均采用 transformer 结构,SimMIM 只在 encoder 中使用了 transformer ,预测任务由一个简单的 predictor 承担,相当于 decoder 只使用了一层 MLP

创新点

在本文中,我们提出了一个简单的框架,该框架与视觉信号的性质非常一致,并且能够学习与以前更复杂的方法类似甚至更好的表示:输入图像块的随机掩蔽,使用线性层将掩蔽区域的原始像素值与l1损失。这个简单框架背后的关键设计和见解包括:

  • 随机掩蔽应用于图像 patch ,这对视觉 Transformer 来说既简单又方便。对于掩蔽像素,较大的 patch 大小或较高的 mask ratio 都会导致找到接近的可见像素的机会较小。

  • 使用原始像素回归任务。这个简单的任务并不比通过标记化、聚类或离散化专门定义类的分类方法差。

  • 采用了一种非常轻的预测头(例如,线性层),它实现了与较重的预测头类似或略好的传输性能。超轻的预测头的使用在预训中带来了显著的加速,虽然较重的预测头或较高的分辨率通常会产生更大的预测能力,但这种更大的能力并不一定有利于下游微调任务。

文章框架

SimMIM方法通过掩码图像建模来学习表示,该方法对输入图像信号的一部分进行掩码,并预测在掩码区域的原始信号。该框架由4个主要组件组成:

  • Masking strategy
    给定一张输入图像,选择掩码的区域,对所选区域进行掩码。经过掩码后的图像作为模型输入。
  • Encoder architecture.
    encoder 提取掩码图像上潜在的特征表示。经过学习的 encoder 可用于不同的下游任务。在本文中,主要考虑两种典型的 vision Transformer 架构: vanilla ViT 和 Swin Transformer。
  • Prediction head.
    Prediction head 将特征表示转换为掩码区域中的原始信号。相当于一个简单的 decoder 。
  • Prediction target.
    Prediction target 定义了要预测的原始信号的形式和损失类型。

在这里插入图片描述

Masking strategy

使用可学习的 mask token 向量来替换每个 masked patch , token 向量维度与 patch embedding 之后的其他可见 patch 的维度相同
在这里插入图片描述
作者尝试了不同的掩码方式:

  • Patch对齐的随机掩码策略(右四-右一)。
    对于Swin Transformer,考虑相同的不同分辨率的补丁大小(4×4 ~ 32×32),默认采用32×32的补丁大小。
    对于ViT,采用32×32作为默认掩码补丁大小。

  • 其他掩码策略。
    ①中心区域掩码策略(左二),让其在图像上随机移动;
    ②块级掩码策略(左三),利用分别为16x16和32x32的两种掩码块进行掩码

Prediction head

Prediction head 可以是任意形式和容量,只要其输入符合编码器输出并且其输出实现预测目标即可。
一些早期工作遵循AutoEncoder,采用重型预测头(decoder)。在本文中,我们展示了预测头可以做得非常轻,就像线性层一样轻。我们还尝试了较重的头部,如2层MLP、反向Swin-T和反向Swin-B。

Prediction target

  • 原始像素值回归

像素值在颜色空间中是连续的。一个直接的选项是通过回归来预测 mask 区域的原始像素。一般来说,视觉架构通常生成下采样分辨率的特征图。

(1)为了预测输入图像的全分辨率下的所有像素值,作者将 feature map 中的每个特征向量映射回原始分辨率,并让该向量负责相应的原始像素的预测。
例如,在 Swin Transformer 编码器生成的32×下采样特征图上,我们应用输出维度为 3072 = 32×32×3 的 1 × 1 卷积(线性)层来表示 32×32 像素的 RGB 值
(2)在掩码像素上使用 L1-loss. 在实验中还考虑了 L2 和 smooth-L1 损失效果与之类似,默认采用 L1 损失。
在这里插入图片描述
x, y 分别为输入 RGB 值和预测值;M 为 mask 像素集合;Ω(·) 是元素的个数。

  • 其他预测目标
    ①Color clustering: 在iGPT中,利用大量自然图像,通过 k-means 将 RGB 值分成 512 个簇。然后每个像素被分配到最近的簇中心。这种方法需要一个额外的聚类步骤来生成 9 位调色板。
    ②Vision tokenization:在BEiT中,采用离散 VAE (dVAE) 网络将图像 patch 转换为 dVAE tokens 。token 可用作为分类目标。在这种方法中,需要预训练一个额外的 dVAE 网络。
    ③Channel-wise bin color discretization:将R、G、B通道分别进行分类,每个通道离散为相同的bins。

Evaluation protocols

主要通过对 ImageNet-1K 图像分类进行微调来评估学习到的表征的质量,这在实践中是一个更有用的场景。

在系统级比较中,我们遵循先前的工作,报告了线性探测的先前主导度量的性能。但是,在应用中并不会考虑这个线性探测指标,因为我们的主要目标是学习可以很好地补充下游任务的表示。

性能实验

实验设置

在预训练中,采用带余弦学习率调度器的AdamW优化器,训练100个epoch。训练超参数为:batch size为2048,基础学习率为 8e-4,权衰减为0.05,β1 = 0.9, β2 = 0.999, 预热10个epoch。

采用 Swin-B 作为默认骨干网络。默认的输入图像大小为192×192,并将窗口大小调整为 6 以适应改变的输入图像大小。ImageNet-1K 图像分类数据集用于预训练和微调。
采用数据增强:随机调整大小裁剪,比例范围为[0.67,1],宽高比范围为[3/ 4,4 /3],然后进行随机翻转和颜色归一化步骤。

SimMIM组件的默认选项是:一个随机 mask 策略,patch 大小为32×32,mask ratio 为0.6;目标图像大小为192×192的线性预测头;掩码像素预测的L1损失。

在微调中,使用 AdamW 优化器、100 epoch 训练和带有10 epoch 预热的余弦学习率调度器。微调超参数为:batch size 大小为2048,基础学习率为5e-3,权衰减为0.05,β1 = 0.9, β2 = 0.999,随机深度比为0.1,分层学习率衰减为0.9。采用数据增强:RandAug、Mixup、Cutmix、label smoothing和random erase。

Mask 策略

不同掩码策略在不同掩码率的微调精度不同,取得的结果差距不大,其中random+masked patch size=32x32+mask ratio=0.5可取得最优的效果83.0%

采用较小的 masked patch size(4x4,8x8,16x16),模型效果随着 mask ratio 的增加而提升;当采用较大的 masked patch size(32x32)时,在较宽的 mask ratio 范围(10%-70%)上表现稳定;而对于更大的 masked patch size(64x64),需要采用较小的 mask ratio 才能得到较好的结果。
masked patch size 和 mask ratio 影响的是MIM任务的难度,两者越大,MIM任务越难,要想取得较好的模型训练效果,MIM任务的难度要适当大一些。

在这里插入图片描述

为解释上述现象,作者提出假设:假设一个**大 mask patch size ** 的中心像素距离可见像素足够远。因此,即使使用了较低的 mask ratio ,它也会迫使网络学习相对较长的连接。使用更大的 mask ratio 也会增加预测距离。这也证明了相对较小的patch尺寸有利于微调性能,然而,这些较小 patch 的总体精度不如较大的高,patch过大,观测精度也会下降,这可能是由于预测距离太大。

为验证这一猜想,论文提出了 AvgDist 指标来进一步分析 masked patch size 和 mask ratio 对模型的影响,这里AvgDist指标计算的是所有 masked patch 到最近的 visible patch 的平均欧式距离,它综合了masked patch size和mask ratio对MIM任务的影响。

从下图可以看出,AvgDist随着mask ratio的增加而增加,对于较小的masked patch size,其AvgDist在较大的mask ratio下依然较小,而较大的masked patch size,其AvgDist在较小的mask ratio下就比较大。
从右图可以看出,AvgDist在[10, 20]区间内都可以取得较好的finetune效果,这个可以用来指导选择不同masked patch size和mask ratio组合。

在这里插入图片描述

预测头

作者尝试了不同的 predictor head ,一层线性层,两层线性层,反向 Swin-T 和 反向 Swin-B ,简单的predictor反而具有更好的效果,需要的参数少,训练代价也小

同时单层线性层和多层MLP具有相同效果,说明在微调度量下,单个线性层头显示出具有竞争力甚至是最优的传输性能。这表明,如果我们的目标是学习好的特征进行微调,那么在对比学习方法中重要的预测头设计在掩模图像建模可能是不必要的

分析原因在于:较强的预测能力并不一定意味着较好的下游性能。因为大部分的容量都浪费在了预测头上,而预测头并不会被用于下游的任务。

MAE 也指出 decoder 的设计对 finetune 性能影响较小,但是却会影响 linear probing 效果,如果采用较轻的 decoder,那么 encoder 的后面部分层就要承担一部分像素预测任务,但这个却不是图像分类任务所需要的,所以会带来 linear probing 的下降,所以如果要想得到比较好的linear probing 效果,就需要设计一个适当的 decode r以将预测任务集中在 decoder 上。
在这里插入图片描述

目标分辨率

大范围的分辨率(例如,1212-192192)表现同样出色。性能仅在 6*6 的低分辨率下下降,可能是因为此选项丢弃了太多信息。
在这里插入图片描述

预测目标

对比其它类型的targets,比如像BEiT那样用dVAE将回归变成分类任务,或者像IGPT那样采用color clustering。从下表的对比结果可以看到直接回归像素值并不比这些更复杂的设计差。

  • ℓ1、smooth-ℓ1 和 ℓ2 的三个损失 表现相似;
  • 通过 颜色聚类 或 tokenization 仔细定义的类的性能比本文的稍差;
  • 通过 channel-wise equal-sized 通道级的等大小的 bin(作为替代选项提出)的 简单颜色离散化方法与 ℓ1 损失具有竞争力,但它需要仔细调整 bin 数量(例如,8-bin)

在这里插入图片描述
同时,对于损失计算范围也很重要。预测任务只在 masked 区域计算损失,重建任务是在所有区域计算损失 。下表说明,只在masked 区域计算损失,即完成预测任务的结果较好。这也表明,这两种任务在内部机制上有根本的不同。

在这里插入图片描述

比较实验

与基于 ViT 的不同模型比较

比较SimMIM与使用ViTB进行微调和线性探测的其他方法。SimMIM通过微调达到了83.8%的Top-1准确率,比之前的最佳方法高出了0.6%。SimMIM由于其简单性,保留了最高的训练效率,比DINO、MoCo v3、ViT和BEiT(不包括dVAE训练前的时间)分别高出2.0×、1.8×、~ 4.0×和1.5×。
在这里插入图片描述

与不同大小的 Swin Transformer 比较

SimMIM在不同模型尺寸下的结果,并与有监督的任务进行比较。在SimMIM预训练下,所有的Swin-B、Swin-L、SwinV2-H的准确率都显著高于有监督的对照组。另外,分辨率为512x512 的SwinV2-H模型在ImageNet-1K上的top-1精度达到了87.1%,是仅使用ImageNet-1K数据的方法中精度最高的方法。
在这里插入图片描述

可视化结果

学习能力

下图分别表示:原始图像,随机 mask 及其预测结果,mask 部分主体及其预测结果,mask 所有主体及其预测结果。

结果表明:随机 mask 可以很好恢复 mask 部分,但其他部分会受到 mask 影响,产生阴影;mask 部分主体时,虽然无法完全恢复,但是能学习到主体的存在;mask 全部主体时,无法学习到主体存在,会将该部分背景化。

这也说明 encoder 学习到的是对物体的推理能力,而不是简单的从周围像素进行复制。
在这里插入图片描述

预测与重建对比

下图分别表示:原始图像,随机 mask ,预测结果(mask 区域计算 loss)和重构结果(所有区域计算 loss )。

图中看到的结果是重构结果更接近于原始图像,与消融实验中表格统计的Acc表现不一致,分析原可能是模型容量被浪费在恢复未掩码区域上,这可能对微调下游任务用处不大。
在这里插入图片描述

mask patch size 大小

下图展示了固定 mask ratio 为 0.6 时具有不同 mask patch size 大小的图像的恢复。可以看出,当 mask patch size 较小时,可以更好地恢复细节,该现象与消融实验中统计的 Acc 也相反
说明,mask patch size 较小时,学习的表示迁移得更差。分析原因可能是使用较小的 mask patch size ,预测任务可以通过附近的像素或纹理轻松完成,并不利于 encoder 学习能力的训练,从而影响下游任务。
在这里插入图片描述

结论

本文提出了一个简单而有效的自监督学习框架 SimMIM,以利用 掩码图像建模 进行表示学习。该框架尽可能简单:

  • 具有中等大小的掩码 patch 大小的随机掩码策略;
  • 通过直接回归任务预测RGB值的原始像素;
  • 预测头可以像线性层一样轻。

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

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

相关文章

科大讯飞股价迅飞 大模型逊色

5月8日,科大讯飞的股价开盘后放量涨停,报63.86元。5月6日,这家公司赶在A股周末休市前一天发布了自家的自然语言大模型“讯飞星火认知大模型”(以下简称“星火”)。 自OpenAI发布GPT-4后,国内的百度、华为、…

Linux Crontab 使用详解

什么是 crontab? crontab 是一个定时执行任务的工具,在 Linux 系统中广泛使用。它可以让用户在指定的时间自动执行某个指令或脚本,例如自动备份数据、清除日志、定时运行程序等。 crontab 的工作原理 crontab 依赖于系统 crond 守护进程&a…

视频监控系统选择硬盘,绿盘、蓝盘、紫盘、黑盘、红盘到底选择哪个?

前言 随着科技的不断进步和安全意识的提高,视频监控系统越来越普及,同时对于视频存储设备的要求也越来越高。硬盘作为视频存储设备的核心部件之一,选择一款适合的硬盘是保证视频存储和播放效果的关键。但是,市面上各种类型的硬盘…

C++ 类的继承与派生

目录 1、继承的概念 2、继承(Inherit) 3、继承方式 4、父子同名成员并存 5、虚函数(virtual) 6、纯虚函数 1、继承的概念 以李白为例 类1是类2的基类(父类),类2是类3的基类(父类…

Java实现数组求和

1 问题 在日常生活中,我们有时需要求解一些数据的和,那么我们能否通过java写出一个程序计算出一串数组之和呢? 2 方法 采用while循环的方法,将每位数上每个数字单独提取出来进行相加 public class Sum { public static void ma…

有或没有共享组件团队

在许多组织里,有专门的团队来负责共享组件(平台和中台都属于共享组件)。同时会有多个业务/产品团队,他们都向共享组件团队提要求。下图显示了一种典型的情况。 与共享组件团队关联的最大痛苦是等待,由此导致更长的端到…

基于ChatGPT的视频智能摘要实战

随着在 YouTube 上提交的大量新视频,很容易感到挑战并努力跟上我想看的一切。 我可以与我每天将视频添加到“稍后观看”列表中的经历联系起来,只是为了让列表变得越来越长,实际上并没有稍后再看。 现在,像 ChatGPT 或 LLaMA 这样的…

常见信号质量问题、危害及其解决方法-信号完整性-过冲、噪声、回勾、边沿缓慢

概述 在电路设计中,“信号”始终是工程师无法绕开的一个知识点。不管是在设计之初,还是在测试环节中,信号质量问题都值得关注。在本文中,主要介绍信号相关的四类问题:信号过冲、毛刺(噪声)、回…

springboot第18集:SpringMVC我的春天

mybatis-spring http://mybatis.org/spring/zh/index.html mybatis-ehcache http://mybatis.org/ehcache-cache/ MVC是一种常用的软件设计规范,它将一个应用程序分为三个不同的部分:模型(Model)、视图(View)、控制器(Controller)。这三个部分相互协作&am…

计算机毕业论文内容参考|基于三维建模和卷积神经网络的人脸转正的技术设计

文章目录 导文文章重点摘要前言绪论课题背景国内外现状与趋势课题内容相关技术与方法介绍技术分析技术设计人脸转正方法卷积神经网络的训练和优化数据预处理技术实现总结与展望本文总结导文 基于java开发汽车销售系统资料 文章重点 摘要 在实际应用中,人脸图像往往具有旋转、…

基于线特征的图像配准

一、线特征提取 1.1 模板检测 使用模板在一幅图像上移动,他会对特定方向上的(一个像素宽)线响应强烈。下面是常见检测模板: 1.2 边缘检测 边缘检测的基本思想是使用如下两个准则之一找到图像中快速变换的位置: 1.…

Flutter框架:从入门到实战,构建跨平台移动应用的全流程解析

第一章:Flutter框架介绍 Flutter框架是由Google推出的一款跨平台移动应用开发框架。相比其他跨平台框架,Flutter具有更高的性能和更好的用户体验。本章将介绍Flutter框架的概念、特点以及与其他跨平台框架的比较,以及Flutter开发环境的搭建和…

MathGPT是什么,MathGPT与ChatGPT的区别是什么,MathGPT十大应用场景

MathGPT是一种基于自然语言处理技术的数学语言模型,其目的是通过自动化生成数学公式、证明和解题步骤等来辅助数学学习和研究。 与ChatGPT相比,MathGPT主要关注数学领域而非通用性的自然语言理解,因此其训练语料库和预测任务都与数学有关&…

Ubuntu20.04安装Vtk9.2.6+PCL1.12.1(成功无报错)

成功不报错的原因:VTK和PCL版本需要对应正确.. 错误可参考:Ubuntu20.04 编译 pcl1.8可能出现的问题 安装参考1:ubuntu20.04下安装pcl_ubuntu安装pcl_Yuannau_jk的博客-CSDN博客 安装参考2:Ubuntu20.04 安装pcl详细教程_ubuntu20…

构造函数,析构函数,拷贝构造函数与运算符重载简图总结,赋值运算符重载与前置++后置++的重载参数区分

构造函数简图 析构函数简图 拷贝构造函数简图 运算符重载简图 赋值运算符重载与拷贝构造函数的区别 即为赋值运算符这涉及到两个已经存在的实例化对象之间的复制拷贝。这个与拷贝构造函数是完全不一样的,拷贝构造函数它的本质上就是一个构造函数,主要是用…

C++ 类和对象下

文章目录 重载operator<< 输出自定义类型const对象 无法调用 非const成员函数非const函数的缺陷 初始化列表&#xff1a;对象的成员定义的位置为什么会要用到初始化列表&#xff1f;自定义类型成员如何初始列表初始化灵活的初始化列表声明次序内置类型_size不给缺省值&am…

win10系统电脑硬盘里的文件不显示,到底出了什么问题呢?有什么解决方法呢?

演示机型&#xff1a;技嘉 H310M HD22.0 系统版本&#xff1a;Windows 10 专业版 软件版本&#xff1a;云骑士数据恢复软件3.21.0.92 Win10系统是我们经常使用的操作系统之一&#xff0c;但这也意味着我们可能会遇到一些问题。其中一个比较常见的问题是硬盘中的文件不显示。在这…

国内又款智能AI聊天软件-科大讯飞星火模型

介绍 介绍 中国科大讯飞星火GPT聊天软件是一款基于自然语言处理技术的人工智能聊天机器人。它利用了大量的文本数据&#xff0c;通过深度学习模型进行训练&#xff0c;从而实现与用户的智能对话。讯飞星火GPT聊天软件能够理解用户输入的问题或指令&#xff0c;并根据预设的回答…

MySQL 主从复制涉及到了几个线程?

目录 前言一、主从同步原理二、主从同步分析 前言 说到主从&#xff0c;我相信大家在 MySQL 这一节面试经常被问到MySQL 的主从复制原理&#xff0c;而且大家背得滚瓜烂熟。但是在主从复制的过程中&#xff0c;是如何进程数据同步的&#xff0c;又涉及到了哪些线程呢&#xff…

卖一辆亏5.8万美元!福特的困扰

随着电动化进入关键的「抢量」周期&#xff0c;加上年初掀起的降价潮&#xff0c;对于还无法适应转型节奏的传统汽车制造商来说&#xff0c;现在是一个艰难的时刻。 本月初&#xff0c;福特首席执行官Jim Farley表示&#xff0c;电动汽车市场的降价是"令人担忧的趋势"…