掩码式对比学习

接着上次对比学习的内容,这次主要说下基于掩码的对比学习。

1 MAE


paper code
文章的核心思想如下所示:

预训练流程:input --> patches --> masked --> unmasked patches in encoder --> unmasked + masked 按位置排列 进 decoder --> decoder 重构 masked patches 的像素

patches + masked:一张红色鸟图片进来,切成 patches,masked 块 (3/4) 是 灰色的。unmasked patches,encoder:没有 masked (1 / 4) 的块 进入 encoder (ViT),得到每一块的特征(蓝色)。encoder 的输出 和 masked tokens 按照在图片中的原始位置排列成一长条向量 (包含位置信息)。长条向量 进入 decoder,解码器尝试重构缺失的像素信息,还原原始图片。这里的encoder 比 decoder 高:计算量主要来自于 encoder,对图片的像素进行编码。优化 encoder by 编码器只用处理 unmasked patches,i.e., 一张图里 1/4 的像素,--> 计算量降低,Transformer 模型计算量特别大,几倍加速也很重要。用 MAE 做一个 CV 的任务,只需要用编码器。一张图片进来,不需要做掩码,直接切成 patches 格子块,然后得到所有 patches 的特征表示,当成是这张图片的特征表达,用来做 CV 的下游任务。 在编码的部分可以使得模型将图像信息编码到语义特征中去。 还有一个注意事项是解码器的时候需要加入位置信息进去. 这里使用的目标函数为MSE损失函数。

该文作者表示说通过随机盖住图片中的一些块,然后再去重构这些被盖住的像素(这个思想也来自于BERT的带掩码的语言模型,但不一样的是这一个词(patches), 它就是一个image的一个块,然后它预测的是你这个块里的所有的像素)。下面两点是文章的贡献:

  • 设计了一种非对称编解码架构,其中解码器仅作用于可见块(无需mask信息),而解码器则通过隐表达与mask信息进行原始图像重建;
  • 我们发现对输入图像进行高比例mask(比如75%)可以产生一项重要且有意义的自监督任务。

上述两种设计促使我们可以更高效的训练大模型:我们加速训练达3x甚至更多,同时提升模型精度。所提方案使得所得高精度模型具有很好的泛化性能:仅需ImageNet-1K,ViT-Huge取得了87.8%的top1精度 。下游任务的迁移取得了优于监督训练的性能,证实了所提方案的可扩展能力。

效果

下图是同一张图片、masked patches 的不同比例 的还原效果


效果

细节

1. 图片和语言的差别

a word in a sentence:一个词是语义单元,包含较多语义信息
a patch in an image:一定的语义信息,但不是一个语义的 segment

一个 patch 并不含有一个特定的物体可能是多个物体的一小块 or 一个物体重叠的一块即使图片和语言的 masked 的单元包含语义信息不同,MAE or Transformer 可以学到一个隐藏的比较好的语义表达

2. 文章影响

如果工作出圈,对社会的影响?只用了图片本身信息学习图片本身有 bias 的话,倾向于某一些图片 or 有一些不好的图片,可能会有负面的社会影响MAE 可以用来生成不存在的内容MAE 是生成模型,生成原始的像素和 GAN 类似,有误导大家的可能如果要使用这个工作,请一定要考虑潜在的影响。

2. BEIT

参考链接

BEiT

3. CAE

参考链接

CAE

你可能感兴趣的:(掩码式对比学习)