ConvMAE: Masked Convolution Meets Masked Autoencoders

Self-Supervised Learning,又称为自监督学习,机器学习分为有监督学习,无监督学习和半监督学习。而 Self-Supervised Learning 是无监督学习里面的一种,主要是希望能够学习到一种通用的特征表达用于下游任务 (Downstream Tasks) 。其主要的方式就是通过自己监督自己。作为代表作的 kaiming 的 MoCo 引发一波热议, Yann Lecun也在 AAAI 上讲 Self-Supervised Learning 是未来的大势所趋。

ConvMAE: Masked Convolution Meets Masked Autoencoders主要干了一个什么事呢?主要提出多尺度的混合 Convolution-Transformer 模型 可以助力 Masked Auto-Encoding (MAE) 的训练范式,帮助其学习到更好的表征。疑问更好的特征表示到底是啥?如果给的都是noise图像,还能学到?是个怼人的点,哈哈哈。
1.Self-supervised Learning
在预训练阶段我们使用无标签的数据集 (unlabeled data),因为有标签的数据集很贵,打标签得要多少人工劳力去标注,那成本是相当高的,太贵。相反,无标签的数据集网上随便到处爬,它便宜。在训练模型参数的时候,我们不追求把这个参数用带标签数据从初始化的一张白纸给一步训练到位,原因就是数据集太贵。于是 Self-Supervised Learning 就想先把参数从一张白纸训练到初步成型,再从初步成型训练到完全成型。注意这是2个阶段。这个训练到初步成型的东西,我们把它叫做 Visual Representation。预训练模型的时候,就是模型参数从一张白纸到初步成型的这个过程,还是用无标签数据集。等我把模型参数训练个八九不离十,这时候再根据你下游任务 (Downstream Tasks) 的不同去用带标签的数据集把参数训练到完全成型,那这时用的数据集量就不用太多了,因为参数经过了第1阶段就已经训练得差不多了。
第一个阶段不涉及任何下游任务,就是拿着一堆无标签的数据去预训练,没有特定的任务,这个话用官方语言表达叫做:in a task-agnostic way。第二个阶段涉及下游任务,就是拿着一堆带标签的数据去在下游任务上 Fine-tune,这个话用官方语言表达叫做:in a task-specific way。
以上这些话就是 Self-Supervised Learning 的核心思想,如下图1所示。
在这里插入图片描述

Self-Supervised Learning 方法可分为3类:Data Centric, Prediction (也叫 Generative) 和 Contrastive。

在这里插入图片描述

其中的主流就是基于 Generative 的方法和基于 Contrative 的方法。如下图 3 所示这里简单介绍下。基于 Generative 的方法主要关注的重建误差,比如对于 NLP 任务而言,一个句子中间盖住一个 token,让模型去预测,令得到的预测结果与真实的 token 之间的误差作为损失。基于 Contrastive 的方法不要求模型能够重建原始输入,而是希望模型能够在特征空间上对不同的输入进行分辨。
在这里插入图片描述
1.2 ConvMAE的动机
ConvMAE 这个方法所基于的论点是:目前已经有许多工作 (如 MoCo[1],MAE[2],BEiT[3],DINO[4]) 验证了 MAE Self-Supervised Learning 的训练范式能够帮助释放 Vision Transformer 模型的潜力,并且在下有任务上取得非常好的性能。

MAE 作为这个范式的代表作,开发了一个非对称编码器 - 解码器架构,其中编码器只对可见的 patch 子集进行操作 (即没有被 mask 掉的 token),另一个非对称的解码器可以从潜在表征和被 masked 掉的 token重建原始图像。Decoder 的架构可以是十分轻量化的模型,且具体的架构对模型性能影响很大。研究人员进一步发现,Mask 掉大部分输入图像 (例如 75%) 会产生重要且有意义的自监督任务。同时 MAE 这种训练的范式不但能够在不需要超大规模数据集 (JFT-300M,ImageNet-22K) 的情况下,学习到判别性能很强 (Discriminative) 的表征,而且可以轻松的扩展 (Scalable) 到更大的模型上,并且通过实验发现随着模型增大,效果越来越好。

为了加速 ViT 训练并得到更好的性能,大量工作验证了局部的归纳偏置 (local inductive bias) (如 SMCA-DETR [5],SAM-DETR[6],DAB-DETR[7],Uniformer[8],CoAtNet[9],ConViT[10],Early Convolution[11]) 和可以进一步帮助提升 ViT 模型的性能。同时,这种性能的提升也可以通过多尺度的金字塔式架构 (multi-scale hierarchical representation) (如 Swin Transformer[12],PVT[13]) 来实现。二者结合的有效性已经在大量的识别,检测,分割的监督学习任务中得到的验证。

所以一个自然而然的问题是:这种多尺度的金字塔式架构 + 局部的归纳偏置的模型,能不能经过 MAE 的训练方式之后,进一步挖掘和提升 MAE 的性能?
本文就是探索这个问题。ConvMAE 简而言之就是:多尺度的金字塔式架构 + 局部的归纳偏置的模型,使用 MAE 的 Self-supervised Learning 的训练方式。

与 MAE-Base 相比,ConvMAE-Base 将 ImageNet-1k 的微调精度提高到 85.0% (+1.4%),将 Mask-RCNN COCO 检测任务的 AP box 提高到 53.2% (+2.9%),将 UperNet 的 ADE20k 分割任务的 mIoU 提高到 51.7% (+3.6%)。

1.3 ConvMAE Encoder 架构
MAE 的做法如下图3所示。MAE 是一种以自监督的方式,以 ViT 为模型架构进行预训练的框架。MAE 的方法很简单:Mask 掉输入图像的随机的 patches 并重建它们。它基于两个核心理念:研究人员开发了一个非对称编码器 - 解码器架构,其中一个编码器只对可见的 patch 子集进行操作 (即没有被 mask 掉的 token),另一个简单解码器可以从可学习的潜在表征和被 masked 掉的 token重建原始图像。Decoder 的架构可以是十分轻量化的模型,且具体的架构对模型性能影响很大。研究人员进一步发现,Mask 掉大部分输入图像 (例如 75%) 会产生重要且有意义的自监督任务。结合这两种设计就能高效地训练大型模型:提升训练速度至 3 倍或更多,并提高准确性。
在这里插入图片描述
ConvMAE 相比于 MAE 框架做了一些微小却非常有效的改进,如前文所述它的特点是:多尺度的金字塔式架构 + 局部的归纳偏置的模型。

如下图4所示是 ConvMAE 框架,它也有一个 Encoder 和 Decoder。Encoder 是 convolution-transformer 混合架构,Decoder 是纯 transformer 架构。

先看左上角灰色的 Encoder 部分。它包括了3个 stage,设 h和 w 是输入图片的尺寸,每个 stage 输出的特征分别是在这里插入图片描述
。前两个 stage 是卷积模块,使用 Masked Convolutional Block 对特征进行操作,其结构如下图右下角所示 (其中的 Depthwise Convolution 使用5×5大小卷积核)。在每个阶段之间,进行一次 stride 为2的卷积以进行下采样操作。最后一个 stage 都是 Transformer 模块,拉大感受野,并融合所有 patch 的特征。另外作者发现绝对位置编码性能是最优的。
在这里插入图片描述
1.4 ConvMAE mask 策略
MAE 对输入图片的 patch 采用随机 mask 策略,然而,同样的策略不能直接应用于 ConvMAE 的编码器。因为 ConvMAE 的特征是不同 stage 是逐渐下采样的,如果在 的特征这里进行了随机的 mask,就会导致 stage3 阶段的每个 tokens 都有一部分的可见信息。因此 ConvMAE 作者的做法是 mask 掉 stage3 的输出 (比如 75%) 之后,把这些 mask 分别上采样2倍和4倍得到前两个阶段的 mask。这些被 mask 掉的 token 在编码阶段被丢弃,并且希望经过 Decoder 之后能够重建出来。通过这种方式,ConvMAE 只需要保留至少 25% 的 token 用于训练。

但是前两个阶段使用 5×5 的 Depthwise Convolution 的感受野可能大于一个 masked patch 的大小,因此作者为了确保预训练的质量,在前两个阶段采用了 masked convolution[14][15],确保被 mask 掉的部分不会参与到编码的过程。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

### 回答1: 蒙版卷积,也称作空洞卷积或者可变形卷积,是卷积神经网络中的一种卷积操作,可以通过控制卷积核和输入特征图之间的空洞和偏移来实现更精细的特征提取和感受野控制。蒙版卷积在图像识别、语音识别等领域有着广泛的应用。 ### 回答2: 掩蔽卷积(Masked Convolution)是一种卷积神经网络中的技术,在传统的卷积神经网络中,卷积核会应用于整个输入图像或特征图,但是在掩蔽卷积中,卷积只会应用在特定的位置,而对其他位置进行忽略,这些被忽略的位置可以使用掩蔽进行掩盖。 掩蔽卷积经常被用在自然语言处理领域中,用于处理语言中的序列数据。在传统的卷积神经网络中,卷积核的大小是固定的,但在自然语言处理中,每个句子的长度不一定相同,因此需要对不同长度的句子进行处理。因此,掩蔽卷积在处理不同句子长度时非常有效。 掩蔽卷积也可以用来生成序列数据,例如生成文本数据。在这种情况下,输入序列中的每个位置都有一个掩蔽值,告诉模型哪些位置可以输入模型,哪些位置是需要被预测的。在预测时,只需要将之前的输出作为下一个位置的输入,并更新掩蔽值,以避免模型将未来的信息泄露到当前位置。 总之,掩蔽卷积是一种强大的卷积技术,能够处理不同长度的序列数据,并避免信息泄露的问题,是自然语言处理和生成式模型中常用的技术之一。 ### 回答3: 掩码卷积(masked convolution)是卷积神经网络(CNN)中的一个重要的变种。在传统的卷积中,卷积核中的每个权重都会在卷积过程中被乘以相应的像素值。然而,在掩码卷积中,卷积核中的某些权重可以被设置为零,以便不影响卷积的结果。这些设置为零的权重是根据一些先验知识或者任务特定的信息来确定的。 掩码卷积可以应用于许多任务,例如图像分割、语音处理和文本生成等。在图像分割中,我们可以使用掩码卷积来指示哪些像素应该被考虑在卷积中,而哪些像素应该被忽略。在语音处理中,掩码卷积可以用来提取音频中的特征。在文本生成中,掩码卷积可以用来动态调整生成的文本的输出。 在一些常见的应用场景中,掩码卷积被用来捕捉不同长度的输入序列。例如,当输入序列的长度不同时,卷积核的大小也需要不同,这会产生很多参数和计算复杂度。但是,使用掩码卷积可以在卷积过程中忽略输入序列的某些部分,从而实现平滑的卷积过程。 掩码卷积是一种简单但非常有效的卷积形式,很容易集成到现有的 CNN 中。它提供了一种灵活和可定制的方法来处理不同类型的输入序列,从而改善了卷积神经网络的性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值