AI在线 AI在线

模态编码器 | 恺明大神的MAE--掩码自编码器

作者:
2025-04-10 11:52
恺明大神在2021年提出掩码自编码器(MAE),一种简单的自监督学习方法,通过随机掩盖输入图像的部分区域并重建缺失的像素。 主要研究动机如下:数据需求与过拟合问题:深度学习模型,尤其是视觉领域的模型,需要大量数据来避免过拟合。 自然语言处理(NLP)领域通过自监督预训练(如BERT)成功解决了这一问题,但在计算机视觉领域,类似的自监督学习方法发展相对滞后。

模态编码器 | 恺明大神的MAE--掩码自编码器

恺明大神在2021年提出掩码自编码器(MAE),一种简单的自监督学习方法,通过随机掩盖输入图像的部分区域并重建缺失的像素。主要研究动机如下:

  • 数据需求与过拟合问题:深度学习模型,尤其是视觉领域的模型,需要大量数据来避免过拟合。自然语言处理(NLP)领域通过自监督预训练(如BERT)成功解决了这一问题,但在计算机视觉领域,类似的自监督学习方法发展相对滞后。作者希望找到一种类似的有效方法来推动计算机视觉的发展。
  • 信息密度差异:语言信号是高信息密度的,而图像信号则具有较高的空间冗余。这导致直接将NLP领域的自监督学习方法应用于视觉领域时效果不佳。
  • 解码器角色差异:在NLP中,解码器预测的是具有丰富语义信息的词汇,而在视觉领域,解码器重建的是像素级别的图像,语义层次较低。因此需要精心设计解码器以提升模型性能。

下面来简单看下这个算法:

01、方法介绍

图片

Mask 策略

图像分块:首先,将输入图像划分为规则的、不重叠的patches(ViT 中是 16x16 大小)。

随机采样:然后,使用均匀分布(uniform distribution)的采样策略随机采样一部分块,并mask剩余块掩码。被 mask 掉的 patches 占所有 patches 的大部分(实验效果发现最好的比例是 75%),它们不会输入到 Encoder。

这种方式的优点:服从均匀分布采样,能够避免潜在的中心归纳偏好,即避免 patch 的位置大多都分布在靠近图像中心的区域;另外,采用高掩码比例(mask 掉图中大部分 patches)能够防止模型轻易地根据邻近的可见 patches 推断出这些掩码块;最后,这种策略还造就了稀疏的编码器输入,因为 Encoder 只处理可见的 patches,计算量和内存占用都减少,能够以更低的代价训练较大规模的 Encoder

高掩码比率:高掩码比率(即移除的块的比例)可以大幅减少冗余,从而创建一个挑战性的任务,这个任务不能简单地通过从可见的邻近块进行外推来解决。

作者通过实验对比了不同mask 比例和不同 mask 策略进行训练后模型的表现,无论是 fine-tune 还是 linear-probe 下,75% 左右的 mask 比例都表现最好,随机(服从均匀分布)采样策略下模型的表现最好。

Encoder

编码器结构:MAE的编码器基于Vision Transformer(ViT),但仅应用于可见的、未被掩码的小块。编码器将小块通过线性投影和位置嵌入进行嵌入,然后通过一系列Transformer块进行处理。

计算效率:由于编码器仅处理全部块的一小部分(例如25%),这允许使用更少的计算和内存资源来训练非常大的编码器。

划分patch策略:先将图像从 (B,C,H,W) reshape 成 (B,N,PxPxC),其中 N 和 P 分别为 patch 数量 和 patch 大小(图片),也就是将3通道的图像转换成 N 个 维度大小为 PxPxC 的向量;然后,通过线性映射(linear projection,可以是全连接层)将其嵌入(embed)到指定的维度空间大小,记为'dim'(从PxPxC project到dim),转换成为 token(B,N,dim);最后再加上位置嵌入(position embedding),从而为各个 patch 添加位置信息。位置嵌入是所有图像共享的、可学习的,shape 与 每张图的 token 相对应,即:(N,dim)。

Decoder

解码器输入:MAE解码器的输入包括Encoder 编码的 un-masked 的 tokens和掩码标记(mask tokens)。掩码标记masked token 并非由之前 mask 掉的 patch 经过 embedding 转换而来,而是可学习的、所有 masked patches 都共享的1个向量!

位置嵌入:为了给掩码标记提供位置信息,对所有标记添加位置嵌入,每个 masked patch 对应1个,shape 是 (N',dim),其中 N' 是 masked patch 的数量,从而也能区分各个 masked patch 所对应的 token

解码器结构:解码器拥有一系列Transformer块, 仅仅是在预训练任务为了重建图像而存在,下游任务形式多种多样,因此实际应用时可能不再使用。所以,Decoder 的设计和 Encoder 是解耦的,Decoder 可以设计得简单、轻量(比 Encoder 更窄、更浅。窄:对应通道数;浅:对应深度),毕竟主要学习潜在特征表示的是 Encoder

任务目标:重建像素值

像素重建:MAE的目标是通过预测每个掩码块( masked patches)的像素值来重建输入,解码器的输出是代表小块像素值的向量,最后一个线性层的输出通道数等于patch中的像素值数量。

均方误差(MSE):使用均方误差作为重建和原始图像之间的损失函数,仅对 mask 掉的部分计算 loss。这里作者也对全部patches计算loss进行了实验,发现准确率会降低0.5%。

模型是如何去预测 masked patches 的像素值并计算 loss 的呢?具体来说,就是:

在 Decoder 解码后的所有 tokens 中取出 masked tokens(在最开始 mask 掉 patches 的时候可以先记录下这些 masked 部分的索引),将这些 masked tokens 送入全连接层,将输出通道映射到1个 patch 的像素数量(PxPxC),也就是输出的 shape 是:(B,N',PxPxC),其中的每个值就代表预测的像素值。最后,以之前 mask 掉的 patches 的像素值作为 target,与预测结果计算 MSE loss。

另外,作者提到使用归一化的像素值作为 target 效果更好,能够提升学到的表征的质量。这里的归一化做法是:计算每个 patch 像素值的均值与标准差,然后用均值与标准差去归一化对应的 patch 像素

Pipeline

  1. 将图像划分成 patches:(B,C,H,W)->(B,N,PxPxC);
  2. 对各个 patch 进行 embedding(实质是通过全连接层),生成 tokens,并加入位置信息(position embeddings):(B,N,PxPxC)->(B,N,dim);
  3. 根据预设的掩码比例(paper 中提倡的是 75%),使用服从均匀分布的随机采样策略采样一部分 tokens 送给 Encoder,另一部分“扔掉”(mask 掉);
  4. 将 Encoder 编码后的 tokens 与 加入位置信息后的 masked tokens 按照原先在 patch 形态时对应的次序拼在一起,然后喂给 Decoder 玩(如果 Encoder 编码后的 token 的维度与 Decoder 要求的输入维度不一致,则需要先经过 linear projection 将维度映射到符合 Decoder 的要求);
  5. Decoder 解码后取出 masked tokens 对应的部分送入到全连接层,对 masked patches 的像素值进行预测,最后将预测结果与 masked patches 进行比较,计算 MSE loss

02、实验结果

首先看重建效果,还是很惊艳的

图片

图片

Mask比例

mask 比例较高才能形成具有挑战性的预训练任务,模型才更有机会学到更好的潜在特征表示。由实验结果可以看到,无论是在 fine-tune 还是 linear probe 中,mask 比例逐渐升高时,模型性能都会更好。但是,fine-tune 和 linear probe 的结果还是有所区别的:linear probe 几乎是线性增涨的趋势,而 fine-tune 则是 mask 比例在 30%~40% 之间激增,而后就倾向于饱和了。

这里的解释:linear probe 之所以没有那么快饱和,与其本身仅调整模型最后的几层分类头相关。因此,mask 比例越高,在预训练时得到的 Encoder 就越强,但这部分在下游任务中不再被训练,所以其性能就随着 mask 比例的增加呈线性增涨的趋势。相对地,fine-tune 还继续训练 Encoder 的参数去适配下游任务,因此在 mask 比例超过一定程度后,对于下游任务的性能提升就不那么明显了。

图片

Mask采样策略

通过实验比较,最终选择了服从均匀分布的随机采样策略,下面是详细的实验结果。可以观察出,block-wise 策略由于掩盖掉的图像块区域太大了,因此在高于 50% 的 mask 比例下效果就不好。grid 策略在训练时能够对数据拟合得很好,但实际学到的特征表示泛化性其实是比较弱的。由此可以说明,代理任务设计得太困难(对应 block-wise)或太简单(对应 grid)都不行,要适当(对应 random)才好。

图片

图片

Decoder 设计

Decoder 的深度和宽度对于 linear probe 有较为明显的影响,但对于 fine-tune 的影响却不那么突出。

因为当 Decoder 更深/宽时,它本身会拥有更强的重建能力,这样就使得在预训练时 Encoder 能更专注于提取抽象语义层级的特征。linear probe 是完全继承预训练的 Encoder,而 fine-tune 在下游任务中仍能够继续调整 Encoder 的参数适配下游任务,因此预训练对其影响程度就没那么大。究其本质,其实是预训练任务(图像重建)与下游任务(图像识别)之间存在着 gap!

图片

Masked token

实验结果显示,如果编码器使用掩码标记,它的性能会更差。因为在下游任务中并不存在这些 masked tokens,上、下游任务之间存在 gap(参考BERT)。如果 Encoder 也对 masked tokens 进行编码,会进一步将这种 gap 的影响“扩散”到下游任务。

图片

重建目标比较

MAE 的重建目标是 masked patches 的像素值。同时,作者在 paper 中还提到,如果预测的是归一化的像素值,那么效果会更好。另外,作者还和 BEiT 预测 token 的方式以及PCA 的方式(对 patch 空间实施 PCA 并预测最大的因子)进行了比较:

图片

结果显示,预测归一化像素值的方式最强

这里归一化像素值的做法是分别针对每个 patch 使用它们独立统计出来的均值与方差去归一化的,这就会将各个 patch 归一化到不同的表示空间,从而分成不同的“簇”,于是各个 patch 之间的差异性就更强,形成了高频信息,相当于将各个 patch 构造成了边缘与纹理,从整体图像看来,对比度更高。从而使得模型更有针对性地学习各个 patch 的特征模式。同时,数值上由于做了归一化,因此又不会使得模型在这方面有所偏倚。

至于 token 的方式是照搬 NLP 的玩法,是高度离散化和语义化的,一个字的差异也可能导致词语之间的含义发生重大变化,本身就是高频东西。

因此,究其本质:高频性质的目标能够“迫使”特征提取器(Encoder)编码出来的各类特征更有差异性和区分性,它们之间的 margin 更大。

数据增强

不做随机缩放(fixed size)和随机缩放(rand size)的效果差不多,而采用色彩扰动(color jit)比简单的 crop(vs fixed size)效果差 。这里应该是 MAE 对图像进行 mask 的做法本身就已经是一种数据增强手段,因此不需要过度的额外数据增强就能取得较好的效果

图片

局部微调

通过上面的实验结果可以发现,linear probe与 fine-tune 之间总是存在着“不协同”的结果,比如前面说到的 Decoder 的深度和宽度对 linear probe 的影响挺大但对于 fine-tune 来说却并不那么事关紧要。

作者“权衡”了 linear probe 和 fine-tune 之间的做法,设计出partial fine-tuning':仅调整 Encoder 的最后几层但 fix 住其它部分。如图所示,调整 0 个 block 相当于是 linear probe,而调整所有24个 blocks 就是 fine-tuning。

可以看到,对于 MAE,仅调整1个 block 就可以将 acc 从73.5%(linear probe)涨到81%,并且对于 MOCO v3 也一样可以涨点。

另外,MAE 在 partial fine-tuning 的方式下优于 MOCO v3,这也说明 MAE 学到的特征非线性更强,于是当可以调整非线性头部时效果就更好。

这些现象都表明:linear probe 并非是唯一的、正确地评估模型学到的表征质量的方式。并且,作者后续还进行了 detection 与 segmentation 相关的实验,从而在 linear probe 中学到的特征也并非是和迁移学习性能强相关的。

图片

03、总结

第一篇把自编码器在图像上做出效果的文章。MAE为计算机视觉领域带来了高效的自监督学习方法,缩小了计算机视觉与自然语言处理在自监督学习方面的差距。通过对图像进行大量随机掩码,减少图像空间冗余,使模型能够学习到超越低级图像统计的整体理解,学到更高级有效的特征。同时,MAE 的出现也让研究者更加重视解码器在视觉任务中的关键作用,推动了计算机视觉的发展,为后续的研究和应用(如在图像分类、目标检测等任务)提供了新的思路和方法。致敬大神。

相关标签:

相关资讯

模态编码器|CLIP详细解读

下面来详细了解一下多模态大模型模态编码器部分。 今天首先来看下CLIP,OpenAI发表在2021年ICML上的一篇工作。 项目地址::在自然语言处理(NLP)领域,通过大规模的文本数据预训练模型(如GPT-3)已经取得了显著的成果,但在计算机视觉领域,预训练模型仍然依赖于人工标注的图像数据集,严重影响了其在未见类别上的泛化性和可用性(需要用额外的有标注数据)。
4/7/2025 3:30:00 AM
Goldma

模态编码器|EVA探索掩码视觉表征学习的极限

今天来看一篇经典的视觉表征学习的方法EVA,来自智源研究院发表在2023年CVPR的一篇工作。 项目地址::自然语言处理(NLP)领域通过扩展预训练语言模型(PLMs)取得了革命性的成功,作者希望将这种成功从语言领域转移到视觉领域,即扩展一个视觉中心的基础模型,以便于视觉和多模态下游任务。 另外,视觉模型预训练和扩展的方法主要依赖于监督或弱监督训练,需要数百万个(通常是不可公开访问的)标注数据。
4/7/2025 4:30:00 AM
Goldma

模态编码器|CLIP技术改进之EVA-CLIP

上一篇看了EVA,趁热打铁,今天来看EVA-CLIP,同样是智源曹越团队的工作,主要研究主题是结合EVA改进CLIP。 研究动机:训练CLIP模型面临计算成本高和训练不稳定等挑战,尤其是在扩大模型规模时。 因此,这项工作的研究动机是提供一种高效且有效的解决方案,以促进更大规模CLIP模型的训练和发展。
4/7/2025 5:30:00 AM
Goldma