掩码式对比学习

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

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