译:《带掩码的自编码器是可扩展视觉学习器》
论文地址:Masked Autoencoders Are Scalable Vision Learners
这里的"Auto"表示的是不是自动的意思,而是自的意思,在机器学习中有一类模型叫做自模型,如自回归模型,这一大类模型特点就是:标号和样本(y和x)是来自同一个东西的,如在语言模型中,用前面一些词去预测下面一个词,在另一个样本中,这个预测的词可能也会成为这个样本本身的一部分。
Motivation
深度学习在过去一些年有飞快的进展,但对计算机视觉而言,还是需要百万级甚至更多的带标注的图片。在NLP领域,自监督学习已经做的比较好了,如GPT、BERT等,这些模型使得在NLP领域可以使用没有标注的数据训练得到超过千亿参数的NLP模型。
在计算机视觉也有类似掩码自编码器的方法,如denoising autoencoders就是通过在图片上加入噪音,然后通过去噪来训练模型对图片理解,最近也有很多工作将BERT拓展到CV领域,但相对NLP领域仍是不够的,作者提出问题:是什么导致这种带掩码的自编码器在视觉和语言上不一样呢?
- 卷积的原理使得无法将掩码整合进去
- 信息密度不同,语言句子去除一些词就会让句子缺少信息,而对于图片而言,去除一些像素甚至一些patch并不会使得信息有大地缺失
- 自编码器中的解码器,在CV领域要还原到相对低层次的表示(输入对应的是原始像素),而在NLP领域要还原的是词则是相对来说在语义层面比较高的层次。
基于这些,作者提出了带掩码的自编码器是可扩展视觉学习器(MAE)
方法简介
和所有的自编码器一样,作者的研究有一个编码器将观察信号映射到浅表示,一个解码器从浅表示重构回原始信号。不像典型的自编码器,作者采用了非对称设计,这样可以使得编码器只在部分的没有掩码的信号上进行操作,还有一个轻量解码器来从隐表示和掩码token重构完整信号。
Masking
和ViT一样,将图片分成规则的未重叠的patch,然后从patches中采样并将剩余部分掩盖,采样策略是以简单的均匀分布进行采样,采取的是较高的mask比例的随机采样,这样可以创建一个不能被轻易通过从可见的邻居patch外推的方式解决的任务,并且均匀分布也能预防潜在的中心偏置。
最后,较高的稀疏输入为设计高效的编码器创建了机会。
MAE 编码器
MAE的编码器部分就是ViT,但只应用到了可见的未mask的patch,将每个patch取出做线性投影,这种方式使得MAE仅用一部分计算和内存就能训练非常大的编码器
MAE 解码器
MAE解码器的输入是token集合,由编码后的可见的patch的浅表示与掩码token组成,对所有块通过共享的、可学到的向量来表示。
MAE解码器只在预训练过程中使用,因此解码架构可以灵活地设计,作者采用的是一个比较简单的解码器。
重构目标
MAE通过为每个掩码patch预测像素值来对输入进行重构,解码器输出是一个表示patch像素值的向量,解码器的最后一层是一个线性映射,损失函数是MSE(mean squared error)
作者也研究以每个遮蔽块的归一化像素值为重建目标的变体
简单实现
首先,为输入patch生成token;然后随机打乱token列表并移除列表的最后指定掩码比例的部分;在编码之后,在编码的patch列表后添加掩码token列表(和原来mask部分长度一样)并取消打乱(就是将解码的部分放回对应的原来的位置)这个完整列表来与其目标对齐;将解码器应用到这个完整列表(添加了位置嵌入的)
这种简单的实现引入的开销可以忽略不计,因为混洗和还原操作都很快。