当前位置: 首页 > 科技观察

除了ImageNet预训练,MetaAI提到了SplitMask,小数据集自监督预训练

时间:2023-03-20 23:17:57 科技观察

目前,计算机视觉神经网络是大量参数化的:它们通常有几十个或ImageNet等集成的关键。然而,这些高容量模型往往会过度拟合小型(数十万张图像)甚至中型数据集。因此,有研究者在2014年指出:学习CNN的过程相当于估计模型的数百万个参数,需要大量的标注数据。当今处理数据稀缺问题的主流学习范式是在大型数据集(如Imagenet)上预训练模型,然后使用较小的数据集基于特定任务对模型进行微调。这种训练过程通常比从头开始训练要好(例如,从头开始随机初始化参数)。这种学习范式在许多任务中实现了SOTA性能,例如检测、分割、动作识别等。尽管这种方法取得了成功,但很难将这种大规模标记数据集提供的好处与预训练的局限性区分开来。训练范式。除此之外,在一个数据集上预训练模型并在另一个数据集上对其进行微调会引入方差。来自MetaAI等机构的研究人员考虑了一种仅使用目标任务数据的自我监督预训练场景。使用的数据集包括,例如,StanfordCars、Sketch或COCO,它们比Imagenet小几个数量级。这项研究表明,本文介绍的去噪自动编码器,例如BEiT或其变体,对预训练数据的类型和大小更加稳健。与ImageNet的预训练相比,这项研究获得了有竞争力的表现。在COCO上,当仅使用COCO图像进行预训练时,性能在检测和实例分割任务上都超过了受监督的ImageNet预训练。论文地址:https://arxiv.org/pdf/2112.10740.pdf论文介绍本文研究图像的数量及其属性如何影响自监督模型的质量。在此初步分析中,该研究将BEiT和SplitMask(第4节中的变体)分别视为去噪自动编码器和联合嵌入方法DINO(Facebook发布的无监督学习)的代理。SplitMask是基于视觉变换器的去噪自动编码器的变体。方法概览如图4:SplitMaskArchitectureSplitMaskSplitMask基于三个步骤:分解(split)、修复(inpaint)和匹配。与标准视觉变换器一样,图像首先被分解为16×16的补丁,然后将补丁进一步分为两个不相交的子集A和B。接下来,我们使用子集A的补丁表示和浅层解码器来修复补丁子集B,反之亦然。最后,通过对每个分支对应的解码器输出的补丁表示进行均值池化来获得全局图像描述符。然后,研究人员尝试将从子集A获得的图像全局描述符与从子集B获得的图像全局描述符进行匹配。编码器-解码器架构SplitMask实现管道依赖于编码器-解码器架构。该模型的编码器是具有绝对位置嵌入的标准视觉转换器。与BEiT方法相反,该编码器不处理屏蔽标记(maskedtokens)表示,而只处理观察到的标记。因此,图像被划分为线性嵌入块,并将位置嵌入添加到这些表示中。这些表示被分成两个子集,A和B,它们由标准转换器层独立处理。GlobalContrastiveLoss除了在patchlevel计算MIMloss外,本研究还使用了imagelevel的contrastiveloss。为此,该研究将平均池化操作应用于解码器的所有输出表示。为每个图像获得两个表示x_a和x_b,对应于观察到的补丁子集A和B。InfoNCE损失[59]应用于这些表示:实验首先,实验研究计算机视觉的预训练和微调各种数据集上的模型,详见表3,其中列出了数据集名称、训练和测试数据分布等信息。预测任务首先,研究使用MaskR-CNNpipeline[8]在COCO目标检测和实例分割数据集上评估SplitMask,评估结果如表4所示。从结果可以看出,在相同的BEiT模型上,单独在COCO数据集上预训练的模型比在ImageNet上预训练的模型具有更好的下游任务性能。例如,当使用基于ViT的主干时,在COCO上而不是ImageNet上进行预训练可将boxAP提高+0.4。表6显示了数字分类数据集的经验评估结果:表7显示了与其他最近基于Transformer的自监督学习方法相比,使用ViT-S和ViT-B骨干和300个epoch预训练的SplitMask方法的性能: