VIT论文解读:Vision Transformer(ViT)_NLP_wendi的博客-CSDN博客

论文链接:Masked Autoencoders Are Scalable Vision Learners

摘要

MAE是CV中易扩展的自监督学习器。方法比较简单:随机遮盖住一部分patches,然后重构这些部分。基于两个设计:1、我们开发了一个非对称的编码-解码结构,编码器只编码那些可见的patch(未被遮盖),用一个解码器从隐表征和被遮住的patch中重构原始图片。2、用一个较高比例的mask rate,如75%,可以创建一个不那么明显且有有意义的自监督任务。合并这两个设计,我们可以训练一个高效的大模型,3倍以上的加速和更高的精度。这个易扩展的方法可以学习更高潜力的模型,且泛化性还不错,仅使用ImageNet-1k的数据集,基于ViT-Huge的模型可以取得最好的精度87.8%。在下游任务上的迁移学习也超过了有监督的预训练模型,且有不错的扩展性。

引言

masked autoencoders,更一般的如去噪autoencoder,在CV中已经有应用,且在联系紧密程度上高于bert,然后,在CV中的发展却落后于bert,NLP和CV之间的masked autoencoding的区别在哪里?

  1. 结构不同。CV中,主要应用CNN结构,CNN在一个固定大小的格子中做运算,没有将masked token或位置embeddings嵌入到网络中,这种结构的差异,在ViT中已经被解决,不再是一个应用瓶颈。
  2. 信息密度不同。语言是人为的数据,包含高密度的语义信息;图片是自然的数据,包含冗余的信息。为了克服这类问题,我们使用了一个简单而有效的策略:随机遮住大部分patches。这种策略可以极大降低冗余,且能创建一个基于低层次图片特征的、需要整体理解的自监督任务。
  3. 解码器不同。在CV中,解码器需要重构像素,对比一般的识别任务,它的输出只是一个低层次的信息,这和NLP中明显的不同,NLP中的解码器需要预测被遮住的单词,它包含丰富的语义信息。在NLP中,解码器不是太重要【一个MLP】,然后我们发现,在CV中,解码器的结构在对隐表示的语义层次上起到重要的作用。

相关工作

MLM:对应的自回归模型有GPT、Bert。

Autoencoding:PCA和k-means均为自编码。DAE(Denoising autoencoders):对输入信号进行腐蚀,然后重构原始信号。

Masked image encoding:iGPT:给定连续的像素序列,预测未知的像素;BEiT:预测被mask的像素tokens。

Self-supervised learning:对比学习,建模相似和不相似的图片,这种强依赖于数据增强处理。

方法

Masking。我们将图片分割成不重复的片。然后随机采样一些片,无放回地采样,服从均匀分布。称之为随机采样。

MAE encoder。按照标准的ViT结构,编码器仅对看得见的patches做一个线性变换,然后加上位置embeddings。然后通过一系列的Transformer block块处理。编码器只对25%的区域做运算,大大节省了计算和内存。

MAE decoder。输入有两部分构成:i)可见patches的编码 ii)遮住的tokens。所有的被遮住的tokens共享一个可学习的向量,表示这个待预测的patches。我们又在输入中添加了位置embeddings,decoder由另外的一组Transformer block块组成。

MAE decoder只在预训练阶段使用,用来图片重构任务。在识别任务中,encoder用来生成图片表征。因此,可以灵活设计decoder结构,它是独立于encoder的。

Reconstruction target。decoder的输出是关于patch像素值的一个向量。decoder的最后一层是一个线性映射,输出通道的个数等于像素的通道数。损失函数是计算重构image和原始image之间的均方误差(MSE)。只在被masked的patches上计算损失,类似于bert。

另外我们还尝试了对patch做的重构做正则化处理。计算每一个patch的均值和标准差,然后用其进行归一化。在我们的实验里,这个可以提升表征性能。

Simple implementation。实现上也很简单,不需要额外的处理。先对所有的patch做一个线性变换,加上位置embedding,然后将这个列表打散,根据mask 比例,移除掉最后的部分。剩下的部分就是需要编码的,这等价于无放回地随机采样。编码后,我们将被masked的token追加到已编码的列表后面,然后对列表进行还原,将其和目标对齐。解码器作用在这个列表上。

ImageNet实验

在ImageNet-1k训练集上预训练,然后采用了两种监督学习的方式,来评估表征性能。i)end-to-end fine-tuning ii)linear probing.

下表是baseline MEA方法的实验结果,可以看到经过MEA预训练后finetune的效果要超过直接从头训练(84.9 vs 82.5):

Main Properties

我们实验下来,发现最好的mask ratio是75%,这和bert非常不同,bert通常的mask ratio是15%。其他的类似的研究的mask ratio在20%-50%之间。

Decoder design.

Mask token.

Reconstruction target.

Data augmentation.

Mask sampling strategy.

Training schedule.

Comparisons with Previous Results

Partial Fine-tuning

Transfer Learning Experiments

结论和讨论

图片和语言是不同属性的信号,这种不同需要区分处理。图片只是被轻量记录的数据,缺乏和语言类似的语义信息。和移除具体目标不同的是,如果只是遮住随机的图像块,那很有可能不构成语义块。我们的MAE重构像素,也不是语义实体。尽管如此,MAE仍然能推断复杂的、全面的重构任务,说明 MAE已经学习到丰富的视觉特征。

Masked Autoencoders Are Scalable Vision Learners(MAE)相关推荐

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

    论文:Masked Autoencoders Are Scalable Vision Learners 别再无聊地吹捧了,一起来动手实现 MAE(Masked Autoencoders Are Sca ...

  2. (七十六):Masked Autoencoders Are Scalable Vision Learners

    (七十六):Masked Autoencoders Are Scalable Vision Learners Abstract 1. Introduction 2. Related Work 3. M ...

  3. MAE 论文《Masked Autoencoders Are Scalable Vision Learners》

    <Masked Autoencoders Are Scalable Vision Learners>带掩码的自编码器是一个可拓展的视觉学习器,听名字就明白一二,应该是在编码器部分加上了 m ...

  4. Masked Autoencoders Are Scalable Vision Learners 论文研读

    NLP CV Transformer ViT BERT MAE 文章目录 1. 标题 2. 摘要 3. 模型架构 4. 结论 1. 标题   Masked Autoencoders Are Scala ...

  5. 【读点论文】Masked Autoencoders Are Scalable Vision Learners 完型填空应用到视觉处理上

    Masked Autoencoders Are Scalable Vision Learners 本文表明,掩蔽自动编码器(MAE)是计算机视觉的可扩展自监督学习器. 本文的MAE方法很简单:通过屏蔽 ...

  6. Masked Autoencoders Are Scalable Vision Learners 论文导读

    Facebook 人工智能研究 (FAIR) 团队发表的论文 Masked Autoencoders Are Scalable Vision Learners 已成为计算机视觉社区的热门话题.这也是K ...

  7. 【论文和代码阅读】Masked Autoencoders Are Scalable Learners (MAE)

    写在最前面 先贴一下MAE的论文链接 https://arxiv.org/pdf/2111.06377.pdfhttps://arxiv.org/pdf/2111.06377.pdf紧随其后的是代码复 ...

  8. Vision Transformer(ViT)PyTorch代码全解析(附图解)

    Vision Transformer(ViT)PyTorch代码全解析 最近CV领域的Vision Transformer将在NLP领域的Transormer结果借鉴过来,屠杀了各大CV榜单.本文将根 ...

  9. 【回归损失函数】L1(MAE)、L2(MSE)、Smooth L1 Loss详解

    1. L1 Loss(Mean Absolute Error,MAE) 平均绝对误差(MAE)是一种用于回归模型的损失函数.MAE 是目标变量和预测变量之间绝对差值之和,因此它衡量的是一组预测值中的平 ...

最新文章

  1. Spark环境搭建(一)-----------HDFS分布式文件系统搭建
  2. Refuses to install for WTP10
  3. (LeetCode 92)Reverse Linked List II
  4. 频谱分析:基于python画出时域频域波形
  5. caffe 框架梳理(待续)
  6. jQuery1.3.2 源码学习 -2 两个重要的正则表达式
  7. matlab两张图片合成一张_两张图片合成一幅画意作品的简单方法
  8. iPhone11 全线降价;哈啰出行否认大量裁员;LineageOS 17.1 发布| 极客头条
  9. javamail 解码 base64 html格式邮件_Spring整合javaMail
  10. python装饰器详解-如何更通俗地讲解Python的装饰器?
  11. python金融风控评分卡模型和数据分析(加强版)
  12. CCNA 网络安全答案汇总
  13. 工作流:如何将Word尾注转换为普通文本格式
  14. 新锐领袖之力——中国时尚达人李磊受邀参加balmain 2022秋冬大秀
  15. VUE Echarts世界地图 中文名称显示国家
  16. ICC2(一)import design —— NDM
  17. RC延时电路简要分析
  18. 人民日报关于996的这段【内容引起极度舒适】!
  19. PNI12927磁场强度传感器--金属检测实现方案
  20. channel error:reply-code=404, reply-text=NOT_FOUND - no exchange ‘console‘ in vhost ‘/‘, class-id=40

热门文章

  1. 专科段《质量管理》课程复习资料(3)——简答、计算题
  2. 进制的转换规则简单口诀
  3. iOS12 验证码无法填充的问题 苹果坑爹匹配算法
  4. 电脑模拟器安卓9激活edxposed框架教程
  5. java基础-ascii编码
  6. python 同花顺thstrader_GitHub - python8642/THSTrader: 量化交易。同花顺免费模拟炒股软件客户端的python API。(Python3)...
  7. DNS系统解析基本流程
  8. rabbitmq重启
  9. 控制器的功能和工作原理
  10. 加快推进我国电子商务应用的思考