超越ImageNet预训练,Meta AI提SplitMask,小数据集自监督预训练

机器之心报道
编辑:陈萍
大规模数据集对自监督预训练是必要的吗?MetaAI认为 , 小数据集也能自监督预训练 , 效果还不错 。
目前 , 计算机视觉神经网络被大量参数化:它们通常有数千万或数亿个参数 , 这是它们成功利用大型图像集合(如ImageNet)的关键 。 然而 , 这些高容量模型往往会在小型(包含数十万张图像)甚至中型数据集上过度拟合 。 因此 , 有研究者指出在2014年:学习CNN的过程相当于估计模型数百万个参数 , 这需要大量的带标注的数据 。
当今应对数据匮乏问题的主流学习范式是 , 即先在大型数据集(如Imagenet)上对模型进行预训练 , 之后基于特定的任务以较少的数据集微调模型 。 这一训练过程通常优于从头开始训练(例如 , 从头随机初始化参数) 。
这种学习范式在许多任务中取得了SOTA性能 , 例如检测、分割、动作识别等 。 尽管这种方法取得了成功 , 但我们很难将这种大规模标签数据集提供的好处与预训练范式的局限性区分开来 。 除此以外 , 在一个数据集上预训练模型并在另一个数据集上对其进行微调会引入差异 。
来自MetaAI等机构的研究者 , 考虑了一个仅利用目标任务数据的自监督预训练场景 。 所用数据集包括如StanfordCars、Sketch或COCO , 它们的数量级小于Imagenet 。
该研究表明 , 本文介绍的去噪自编码器(如BEiT或其变体) , 对预训练数据的类型和大小更具有鲁棒性 。 与来自ImageNet预训练相比 , 该研究获得了具有竞争力的性能 。 在COCO上 , 当仅使用COCO图像进行预训练时 , 在检测和实例分割任务上 , 性能超过了监督ImageNet预训练 。
超越ImageNet预训练,Meta AI提SplitMask,小数据集自监督预训练
文章图片
超越ImageNet预训练,Meta AI提SplitMask,小数据集自监督预训练】论文地址:https://arxiv.org/pdf/2112.10740.pdf
论文介绍
本文研究了图像的数量及其性质如何影响自监督模型的质量 。 在这个初步分析中 , 该研究将BEiT和SplitMask(在第4节中的变体)分别作为去噪自编码器和联合嵌入方法DINO(Facebook发布的非监督学习)的代表 。
SplitMask是一种基于视觉transformer的去噪自动编码器变体 , 方法概述如图4所示:
超越ImageNet预训练,Meta AI提SplitMask,小数据集自监督预训练
文章图片
SplitMask架构
SplitMask
SplitMask基于三个步骤完成:分解(split)、修复(inpaint)和匹配 。 与标准视觉transformer一样 , 图像首先被分解为16×16的patch , 之后patch又被分成两个不相交的子集A和B 。 接下来 , 研究者使用子集A的patch表示和浅层解码器 , 来修复子集B的patch , 反之亦然 。 最后 , 通过对每个分支对应的解码器输出的patch表示进行平均池化 , 得到全局图像描述符 。 之后研究者尝试将从子集A获得的图像全局描述符与从子集B获得的图像全局描述符相匹配 。
编码器-解码器架构
SplitMask实现pipeline依赖于编码器-解码器架构 。 模型的编码器是一个标准的视觉transformer , 具有绝对位置嵌入 。 与BEiT方法相反 , 该编码器不处理掩码token(maskedtokens)表示 , 而只处理观察到的token 。 因此 , 图像被划分为线性嵌入patch , 并将位置嵌入添加到这些表示中 。 这些表示分为两个子集A和B , 由标准transformer层独立处理 。
全局对比损失
除了在patch级别计算MIM损失之外 , 该研究还在图像级别使用对比损失 。 为此 , 该研究对解码器的所有输出表示应用平均池化操作 。 每个图像获得两个表示x_a和x_b , 对应于观察到的patch子集A和B 。 InfoNCE损失[59]应用于这些表示: