MAE:Masked Autoencoders Are Scalable Vision Learners思路提炼

论文链接:https://arxiv.org/pdf/2111.06377.pdf

本文参考:https://blog.csdn.net/abbcdc/article/details/123915967

https://blog.csdn.net/NGUever15/article/details/122692362

摘要

MAE是一种可扩展的计算机视觉自监督学习者。MAE方法简单:屏蔽输入图像的随机补丁,并重建缺失的像素。它基于两个核心设计。首先,我们开发了一个非对称编码器-解码器架构,其中编码器只对补丁的可见子集(没有掩码标记)进行操作,以及一个轻量级解码器,从潜在的表示和掩码标记重建原始图像。其次,屏蔽输入图像的高比例可以产生一个自我监督任务

整体框架

将图像分割成多个像素块后,随机对其中的一部分像素块进行遮蔽,然后将没有遮蔽的像素块按顺序排列,送入Transformer Encoder中,获得特征向量;之后将遮蔽的像素块(只包含位置信息)按原来的位置插入特征向量中,再放入Decoder中,由Decoder重构像素信息,生成原始图片。Encoder比Decoder大一些,是因为Encoder是一个标准的Transformer编码器,计算量比较大,而Decoder结构比较简单。当用于不同的下游任务时,Decoder可以替换成任意结构,而Encoder作为特征提取器需要保持不变。重点在于Encoder

MAE使用的是非对称的Encoder-Decoder架构,即编码器只处理未被遮蔽的部分像素块信息,提取这些部分的特征,而解码器解码的是所有像素块的特征信息。

方法

1、Masking

 MAE采用ViT中的方法,将图像划分为规则的非重叠的patch,然后在patch中随机抽样选择一部分保留,其他部分则删除(即进行屏蔽),抽样保证是随机、不更换、均匀的。采样的均匀分布防止了潜在的中心偏差(即在图像中心附近有更多的被屏蔽的补丁),同时,采用高屏蔽比(约屏蔽75%的patch),目的是减少patch之间的信息冗余,这种高度稀疏的输入为重建任务带来了更大挑战,迫使模型进行高效地学习图像的全局信息。

2、MAE Encoder

Encoder采用的是ViT模型中的Transformer Encoder,编码器通过添加位置嵌入的线性投影来嵌入补丁,然后通过一系列Transformer块来处理结果集。同时,需要注意的是,Encoder的输入为未被屏蔽补丁(25%),该操作节省了计算开销,允许训练大的Encoder。

3、MAE Decoder

Decoder需要重构那些被遮蔽的像素,因此MAE Decoder的输入是由两部分组成:未被遮蔽的patch通过编码器生成的特征向量插入原位的被遮蔽的patch。

该Decoder只在预训练阶段使用,用于执行图像重建任务(仅编码器用于产生图像表示进行识别)。 因此,Decoder体系结构可以以独立于编码器设计的方式灵活设计,可以用非常小的Decoder进行实验,减少预训练时间。

4、Reconstruction target

Decoder的最后一层是一个线性层。

Decoder输出的每个元素都是代表一个patch的像素值向量。Decoder的最后一层是一个线性投影,其输出通道数等于一个patch中的像素值数,Decoder的输出被重塑以形成重构图像。即假设patch的大小是16×16,则线性层的输出维度就为256,然后再reshape为16×16,则得到了重构后的像素块。

损失函数是MSE函数,计算重建图像和原始图像在像素空间中的均方误差(MSE),即原始像素和重构后的像素相减再求平方和。只需要在被遮蔽的patch上计算损失,因为未被遮蔽的patch信息已经作为输入进入Encoder和Decoder。

5、Simple implementation

简单说明整个实现流程。

  1. 首先,将输入序列进行线性投影并加上位置编码,为每个patch生成一个token

  1. 然后,进行shuffle操作,随机打乱

  1. 选取前25%的token作为Encoder的输入,删除列表的最后一部分,完成随机采样

  1. 将Encoder的输出和表示被遮蔽的patch的向量拼接,进行unshuffle操作,还原原始像素块的排列顺序,

  1. 最后加入位置编码,送入Decoder中,完成像素重构。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值