一文解读Masked Autoencoder(MAE)

article/2025/11/10 19:16:04

前言

  论文链接:https://arxiv.org/pdf/2111.06377.pdf
  跟李沐学AI:https://www.bilibili.com/video/BV1sq4y1q77t?spm_id_from=333.999.0.0
  如果说Vision Transformer是Transformer在CV领域的拓展,那么Masked Autoencoder就是BERT在CV领域的拓展。MAE使用类似于BERT的掩码机制,从图片中随机抹去一些像素,并让模型通过已知像素去构建未知像素,从而迫使模型学习图像中的特征。实验证明:MAE具有很好的像素重构能力。接下来,就开始论文的讲解吧!(注:对Vision Transformer感兴趣的小伙伴可以移步到上一篇博客:https://blog.csdn.net/abbcdc/article/details/123639566?spm=1001.2014.3001.5501)

Masked Autoencoder

Architecture

  由于模型的思想基于Vision Transformer,所以这里先回顾一下:Vision Transformer(ViT)打破了CNN在计算机视觉领域的统治地位,仅使用一个标准的Transformer Encoder,并在大规模数据集预训练的情况下,就能达到和CNN一样甚至更好的效果。具体来说:ViT模型将一张图像分割成一个个小块,每个小块作为一个单位(类似于NLP中句子的一个个单词)然后将这些小块按位置排列成一个序列,送入Transformer Encoder中获取图像信息。假设原始图像像素为224×224,块的大小为16×16,序列的长度就为2242/162=196,相比于将像素作为单位时的序列长度2242=50176减少了几百倍,而这时的序列长度就在Transformer的承载范围之内了。
  在ViT论文中的最后一段,作者说明他们尝试了使用自监督方式预训练模型,即样本和标签均来自同一物体,但效果不尽人意,因此他们认为仍然应该使用有监督+大规模数据集的预训练方式使模型效果更佳。而Masked Autoencoder提出了新的策略,证明了当使用自监督+不那么大规模的数据集对ViT模型进行预训练,可以达到较优的效果。MAE的思想如下:
在这里插入图片描述
将图像分割成一个个小块后,随机对其中的一些小块进行遮蔽,然后将没有遮蔽的像素块按顺序排列,送入Transformer Encoder中,获得特征向量;之后将遮蔽的像素块(只包含位置信息)按原来的位置插入特征向量中,再放入Decoder中,由Decoder重构像素信息,生成原始图片。注意到,图中的Encoder比Decoder大一些,是因为Encoder是一个标准的Transformer编码器,计算量比较大,而Decoder结构就比较简单了。当用于不同的下游任务时,Decoder可以替换成任意结构,而Encoder作为特征提取器需要保持不变。
  总结:Masked Autoencoder使用了掩码机制,利用编码器将像素信息映射为语义空间中的特征向量,而使用解码器重构原始空间中的像素。MAE使用的是非对称的Encoder-Decoder架构,即编码器只能看到未被遮蔽的部分像素块信息,以节省计算开销,而解码器解码的是所有像素块的特征信息。

Approach

  上面是对模型整体架构的介绍,接下来详细讲解各个部分。

  1. Masking
      MAE使用了ViT的方法,将图片分割成一个个小块,然后在这些小块中随机、均匀地选取一部分保留,剩下的全部遮蔽。作者强调了要遮蔽大量的像素块(约75%),从而减少像素块之间的冗余信息,使整个任务更具有挑战性,迫使模型去学习图像的全局特征而非局部特征,从而获得更优的图像重构能力。
  2. MAE Encoder
      Encoder即一个标准的ViT模型中的Transformer Encoder,架构如下:
    在这里插入图片描述
    不同的是,这里的输入不是全部像素块而只包含未被遮蔽的25%的像素块,节省了计算开销。
  3. MAE Decoder
      由于解码器需要重构那些被遮蔽的像素,因此输入包含两部分的信息:未被遮蔽的像素块通过编码器生成的特征向量和被遮蔽的像素块信息。被遮蔽的像素块信息全部通过一个相同的可被学习的特征向量表示。 在这里,Decoder实质上还是一个包含Transformer block的架构,因此输入向量包含了位置编码(同Encoder,Transformer无法学习位置信息,因此需要加入位置信息表明某个像素块在原始图像中的位置)。该解码器只在预训练阶段使用,在迁移到下游任务时,解码器可以根据用户的实际需求替换成任意架构。
  4. Reconstruction target
      解码器的最后一层是一个线性层。假设patch的大小是16×16,则线性层的输出维度就为256,然后再reshape为16×16,则得到了重构后的像素块。损失函数是MSE函数,即原始像素和重构后的像素相减再求平方和。只需要在被遮蔽的像素块上计算损失,因为未被遮蔽的像素块信息已经作为输入被编码器和解码器知晓。
  5. Simple implementation
      作者简单说明了整个实现流程。将输入序列进行Linear Projection并加上位置编码形成一个个token后,进行shuffle操作,然后选取前25%的token作为Encoder的输入,便完成了随机采样过程。将Encoder的输出和表示被遮蔽的像素块的向量拼接,进行unshuffle操作,即还原原始像素块的排列顺序,然后再加入位置编码,送入Decoder中,完成像素重构。

ImageNet Experiments

Main Properties

  作者对比了使用自监督预训练的MAE和使用有监督预训练的ViT的性能(MAE和ViT的关系:MAE实际上是加上了类似于BERT的掩码机制用于自监督预训练的ViT)。对于MAE,作者将模型在ImageNet-1k数据集上进行自监督预训练,然后使用有监督训练对模型进行fine-tune,对于ViT,作者使用的是ViT-L/16在ImageNet-1k数据集上进行有监督训练。对比结果如下:
在这里插入图片描述
在ViT-L/16上使用有监督训练,准确率是76.5%,加上了正则化约束后,准确率提升到了82.5%。而对MAE使用自监督预训练,仅使用50个epoch进行fine-tune,效果就提升到了84.9%并保持稳定,说明了MAE的有效性。
在这里插入图片描述
  接下来看一下论文中的主要实验结果,即上面6个表格。第一个表格表示MAE的性能和decoder的Transformer block的数量的关系,ft即end-to-end fine-tuning,表示fine-tune时改变MAE每个层的参数,而lin即linear probing,即在fine-tune时将编码器的参数冻结,直接使用编码器提取的特征,只改变解码器(线性层)的参数。结果表明,当block数量为8时,ft和lin上的效果均达到最佳。第二个表格表示MAE性能和decoder的宽度即每个token的长度的关系,结果表明,当每个token的长度为512时,ft和lin上的效果最优。第三个表格表示编码器的输入只包含未被遮蔽的像素块和包含所有像素块两种情况下MAE的性能,结果表明当输入只包含未被遮蔽的像素块时,模型精度更高且计算量大大减少,节省了计算开销。第四个表格表示预训练阶段解码器执行不同任务对MAE的性能的影响,第一行表示重构像素并且不对像素块做归一化处理,第二行表示重构像素并对像素块做归一化处理,第三行表示进行PCA降维,第四行表示对每一个像素块进行一次映射到token的操作,结果表示重构像素并进行归一化这种方式的效果最佳。第五个表格表示不同的数据增强技术对MAE性能的影响,结果表明对图像进行随机大小的裁剪这种方式带来的性能最佳。在这里插入图片描述
最后一个表格表示输入图像的mask的方式对MAE性能的影响,共有random、block、grid三种方式,它们的效果可以参考上图;ratio表示遮蔽率;结果表明,当使用random的遮蔽方式且遮蔽75%的像素块时,ft和lin上的效果最佳。
  下图表示mask的遮蔽率对MAE性能的影响,结果比较直观,这里就不展开说了(fine-tuning即end-to-end的fine-tune,linear probing即只改变线性层参数的fine-tune)。在这里插入图片描述

  下图表示不同预训练轮数对fine-tune效果的影响,结果表明,随着预训练的epoch数量的增加,通过两种fine-tune方式得到的模型精度都在不断上升,并没有出现一个饱和的现象。
在这里插入图片描述

Comparisons with Previous Results

  下表就是和之前的一些方法的对比,可以看出MAE的性能是最佳的。(训练设置:预训练数据是ImageNet-1K训练集(除了BeiT中的tokenizer使用了250M的DALLE数据进行预训练)。所有的自监督方法都是通过端到端的微调进行评估的。ViT型号为B/16、L/16、H/14。所有模型的输入图像大小都是224×224,ViT-H还额外使用了大小为448×448的输入图像。在这里,MAE重建归一化像素,并使用1600个epoch进行预训练。)
在这里插入图片描述  下图展示了ViT模型在ImageNet-1k和JFT300M数据集上进行有监督预训练,MAE在ImageNet-1k数据集上进行自监督预训练,均使用ImageNet-1k数据集进行fine-tune后模型的性能对比。可以看出,当ViT使用了JFT300M数据集(大小是ImageNet-1k的300倍)进行预训练后,效果稍优于MAE,但两者的训练成本相差巨大,由此说明MAE还是具有一定优势的,同样地,在ViT上如果也使用ImageNet-1k数据集进行预训练,效果就明显差于MAE了。
在这里插入图片描述

Partial Fine-tuning

  下图表示了当在ImageNet-1k数据集上进行fine-tune时,调整的Transformer block的个数和模型微调后在该任务上的精度的关系。调整0个block时即表示linear probing,调整24个block时即表示end-to-end fine-tuning。可以看出,当使用linear probing时,MAE的效果是要差于MoCo V3的(MoCo是一种使用对比学习进行自监督预训练的方法,详情可以阅读论文:https://arxiv.org/pdf/1911.05722.pdf),但是当调整了1个或多个block时,MAE的性能就优于MoCo,并且不断上升后到达一个平台。这说明了底层的block学习到的是低级特征,和特定任务关联性不大,但高层的block与特定任务息息相关,因此对这些高层block的微调对模型在特定任务上的性能影响是很大的(可以看到前期曲线上升幅度很大,就是微调了高层block的结果)。
在这里插入图片描述

Transfer Learning Experiments

  作者最后进行了模型在迁移学习任务上的性能对比的实验,由于这部分的意义只是为了展示结果,和模型原理关系不大,这里就不一一展开了,把实验结果图放在下面,大家看看就好。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Conclusion

在这里插入图片描述

后言

  如果觉得博主写得还不错,请点赞加收藏呀!也欢迎在评论区里提问交流!


http://chatgpt.dhexx.cn/article/RYuPZ1M2.shtml

相关文章

matlab mse mae,回归评价指标MSE、RMSE、MAE、R-Squared

前言 分类问题的评价指标是准确率,那么回归算法的评价指标就是MSE,RMSE,MAE、R-Squared。下面一一介绍 均方误差(MSE) MSE (Mean Squared Error)叫做均方误差。看公式 image.png 这里的y是测试集上的。 用 真实值-预测值 然后平方之后求和平均。 猛着看一下这个公式是不是觉…

何凯明最新一作MAE(mask掉图片的部分信息也能重建识别)

导读 凯明出品,必属精品。没有花里胡哨的修饰,MAE就是那么简单的强大,即结构简单但可扩展性能强大。MAE通过设计一个非对称的编码解码器,在预训练阶段,通过高比例的掩码原图,将可见部分输入到编码器中&…

李沐精读论文:MAE 《Masked Autoencoders Are Scalable Vision Learners》

论文:Masked Autoencoders Are Scalable Vision Learners 别再无聊地吹捧了,一起来动手实现 MAE(Masked Autoencoders Are Scalable Vision Learners) 玩玩吧! - 知乎 参考博文:MAE 论文逐段精读【论文精读】 - 哔哩哔哩 神洛华…

从Transformer到ViT再到MAE

从Transformer到VIT再到MAE 引言Transfomer提出的背景模型架构具体细节Add&NormAttention:Multi-Head Attention自注意力机制(self attention)Positional Encoding ViT提出的背景:模型架构:具体细节:维…

MAE简记

MAE简记 文章目录 MAE简记Mask 方法EncoderDecoderTarget & LOSS Mask 方法 将图片分割成不重复的正方形patch,遮挡其中一部分patch(75%) Encoder 采用ViT,但是只对可见的没有被masked的patch使用 Decoder 以encoder的输出masked的patch作为输入…

何凯明最新一作MAE解读系列1

导读 凯明出品,必属精品。没有花里胡哨的修饰,MAE就是那么简单的强大,即结构简单但可扩展性能强大。MAE通过设计一个非对称的编码解码器,在预训练阶段,通过高比例的掩码原图,将可见部分输入到编码器中&…

基于CIFAR数据集 进行 MAE实现及预训练可视化 (CIFAR for MAE,代码权重日志全部开源,自取)

基于CIFAR数据集 进行 MAE实现及预训练可视化 (CIFAR for MAE,代码权重日志全部开源,自取) 文章目录 基于CIFAR数据集 进行 MAE实现及预训练可视化 (CIFAR for MAE,代码权重日志全部开源,自取&a…

PyTorch笔记 - MAE(Masked Autoencoders) PyTorch源码

欢迎关注我的CSDN:https://blog.csdn.net/caroline_wendy 本文地址:https://blog.csdn.net/caroline_wendy/article/details/128382935 Paper:MAE - Masked Autoencoders Are Scalable Vision Learners 掩码的自编码器是可扩展的视觉学习器 …

何凯明新作MAE 学习笔记

【MAE与之前AI和CV领域最新工作的关系】 学习MAE视频【李沐】 He, K., Chen, X., Xie, S., Li, Y., Dollr, P., & Girshick, R. (2021). Masked autoencoders are scalable vision learners. arXiv preprint arXiv:2111.06377. 【Transformer】 Transforme纯注意力&…

MAE 代码实战详解

MAE 代码实战详解 if__name__"__main__"model.forwardmodel.forward.encordermodel.forward.decordermodel.forward.loss大小排序索引-有点神奇torch.gather if__name__“main” MAE 模型选择 def mae_vit_base_patch16_dec512d8b(**kwargs):model MaskedAutoenco…

MAE(Masked Autoencoders) 详解

MAE详解 0. 引言1. 网络结构1.1 Mask 策略1.2 Encoder1.3 Decoder 2. 关键问题解答2.1 进行分类任务怎么来做?2.2 非对称的编码器和解码器机制的介绍2.3 损失函数是怎么计算的?2.4 bert把mask放在编码端,为什么MAE加在解码端? 3. …

MAE-DET学习笔记

MAE-DET学习笔记 MAE-DET: Revisiting Maximum Entropy Principle in Zero-Shot NAS for Efficient Object Detection Abstract 在对象检测中,检测主干消耗了整个推理成本的一半以上。最近的研究试图通过借助神经架构搜索(NAS)优化主干架构…

MAE论文解读

文章目录 创新点算法原理MaskingMAE encoderMAE decoder重构目标 实验Baseline: ViT-Large.消融实验Mask token自监督方法比较迁移至目标检测任务及语义分割任务 结论 论文: 《Masked Autoencoders Are Scalable Vision Learners》 代码: https://github.com/facebookresearc…

MSE与MAE

均方误差 均方误差(MSE)是最常用的回归损失函数,计算方法是求预测值与真实值之间距离的平方和,公式如图。 下图是MSE函数的图像,其中目标值是100,预测值的范围从-10000到10000,Y轴代表的MSE取值范围是从0到正无穷&…

论文阅读|MAE

Masked Autoencoders Are Scalable Vision Learners 参考资料 Self-Supervised Learning 超详细解读 (六):MAE:通向 CV 大模型 - 知乎 (zhihu.com) Self-Supervised Learning 超详细解读 (目录) - 知乎 (zhihu.com)、 1. 有监督(Supervise…

MAE论文笔记

MAE论文笔记 Masked Autoencoders Are Scalable Vision Learners MAE模型和其他的结构的关系,可以认为是在ViT的基础上实现类似于BERT的通过完型填空获取图片的理解 标题和作者 Masked Autoencoders Are Scalable Vision Learners 其中的Autoencoders 中的auto是…

MAE

背景 作者开门见山说明了深度学习结构拥有越来越大的学习容量和性能的发展趋势,在一百万的图像数据上都很容易过拟合,所以常常需要获取几百万的标签数据用于训练,而这些数据公众通常是难以获取的。MAE的灵感来源是DAE(denosing autoencoder)…

RMSE(均方根误差)、MSE(均方误差)、MAE(平均绝对误差)、SD(标准差)

RMSE(Root Mean Square Error)均方根误差 衡量观测值与真实值之间的偏差。 常用来作为机器学习模型预测结果衡量的标准。 MSE(Mean Square Error)均方误差 MSE是真实值与预测值的差值的平方然后求和平均。 通过平方的形式便于…

【深度学习】详解 MAE

目录 摘要 一、引言 二、相关工作 三、方法 四、ImageNet 实验 4.1 主要属性 4.2 与先前结果的对比 4.3 部分微调 五、迁移学习实验 六、讨论与结论 七、核心代码 Title:Masked Autoencoders Are Scalable Vision LearnersPaper:https://arx…

MAE模型介绍

目录 介绍 模型 ​编辑 实验过程 结论 介绍 Masked Autoencoders Are Scalable Vision Learners Facebook Al的kaiming大神等人于2021年十一月提出了一种带自编码器(MAE),它基于(ViT)架构。他们的方法在imageNet上的表现要好于从零开始训练的VIT。 灵感来源&…