Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

陈萍编辑

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

大规模数据集对自监督预训练是必要的吗?Meta AI 认为,小数据集也能自监督预训练,效果还不错。

目前,计算机视觉神经网络被大量参数化:它们通常有数千万或数亿个参数,这是它们成功利用大型图像集合 (如 ImageNet) 的关键。然而,这些高容量模型往往会在小型(包含数十万张图像)甚至中型数据集上过度拟合。因此,有研究者指出在 2014 年:学习 CNN 的过程相当于估计模型数百万个参数,这需要大量的带标注的数据。 

 当今应对数据匮乏问题的主流学习范式是,即先在大型数据集(如 Imagenet )上对模型进行预训练,之后基于特定的任务以较少的数据集微调模型。这一训练过程通常优于从头开始训练(例如,从头随机初始化参数)。

这种学习范式在许多任务中取得了 SOTA 性能,例如检测、分割、动作识别等。尽管这种方法取得了成功,但我们很难将这种大规模标签数据集提供的好处与预训练范式的局限性区分开来。除此以外,在一个数据集上预训练模型并在另一个数据集上对其进行微调会引入差异。

来自 Meta AI 等机构的研究者,考虑了一个仅利用目标任务数据的自监督预训练场景。所用数据集包括如 Stanford Cars、Sketch 或 COCO,它们的数量级小于 Imagenet。

该研究表明,本文介绍的去噪自编码器(如 BEiT 或其变体),对预训练数据的类型和大小更具有鲁棒性。与来自 ImageNet 预训练相比,该研究获得了具有竞争力的性能。在 COCO 上,当仅使用 COCO 图像进行预训练时,在检测和实例分割任务上,性能超过了监督 ImageNet 预训练。


论文地址:https://arxiv.org/pdf/2112.10740.pdf

论文介绍

本文研究了图像的数量及其性质如何影响自监督模型的质量。在这个初步分析中,该研究将 BEiT 和 SplitMask(在第 4 节中的变体)分别作为去噪自编码器和联合嵌入方法 DINO(Facebook 发布的非监督学习) 的代表。

 SplitMask 是一种基于视觉 transformer 的去噪自动编码器变体,方法概述如图 4 所示:

SplitMask 架构

SplitMask 

SplitMask 基于三个步骤完成:分解(split)、修复(inpaint)和匹配。与标准视觉 transformer 一样,图像首先被分解为 16×16 的 patch,之后 patch 又被分成两个不相交的子集 A 和 B。接下来,研究者使用子集 A 的 patch 表示和浅层解码器,来修复子集 B 的 patch,反之亦然。最后,通过对每个分支对应的解码器输出的 patch 表示进行平均池化,得到全局图像描述符。之后研究者尝试将从子集 A 获得的图像全局描述符与从子集 B 获得的图像全局描述符相匹配。 

编码器 - 解码器架构

SplitMask 实现 pipeline 依赖于编码器 - 解码器架构。模型的编码器是一个标准的视觉 transformer,具有绝对位置嵌入。与 BEiT 方法相反,该编码器不处理掩码 token(masked tokens)表示,而只处理观察到的 token 。因此,图像被划分为线性嵌入 patch,并将位置嵌入添加到这些表示中。这些表示分为两个子集 A 和 B,由标准 transformer 层独立处理。

全局对比损失

除了在 patch 级别计算 MIM 损失之外,该研究还在图像级别使用对比损失。为此,该研究对解码器的所有输出表示应用平均池化操作。每个图像获得两个表示 x_a 和 x_b,对应于观察到的 patch 子集 A 和 B。InfoNCE 损失 [59] 应用于这些表示:


实验

首先,实验研究了计算机视觉模型在各种数据集上的预训练和微调,详见表 3,表中列出了数据集名称、训练和测试数据分布等信息。



预测任务

首先,该研究使用 Mask R-CNN pipeline [8] 在 COCO 目标检测实例分割数据集上对 SplitMask 进行评估,表 4 为评估结果。

由结果可得,在相同的 BEiT 模型上,单独在 COCO 数据集上预训练的模型与在 ImageNet 上预训练模型相比,前者下游任务性能更好。例如,当使用基于 ViT 的主干时,在 COCO 上而不是 ImageNet 上进行预训练会可使 box AP 提升 +0.4。


表 6 为数字分类数据集实证评估结果:


表 7 展示了 SplitMask 方法使用 ViT-S 和 ViT-B 主干以及 300 个 epoch 的预训练与其他最近的基于 Transformer 的自监督学习方法相比的性能:

理论自监督学习MeTA
相关数据
自动编码器技术

自动编码器是用于无监督学习高效编码的人工神经网络。 自动编码器的目的是学习一组数据的表示(编码),通常用于降维。 最近,自动编码器已经越来越广泛地用于生成模型的训练。

非监督学习技术

非监督式学习是一种机器学习的方式,并不需要人力来输入标签。它是监督式学习和强化学习等策略之外的一种选择。在监督式学习中,典型的任务是分类和回归分析,且需要使用到人工预先准备好的范例(base)。一个常见的非监督式学习是数据聚类。在人工神经网络中,自组织映射(SOM)和适应性共振理论(ART)则是最常用的非监督式学习。

池化技术

池化(Pooling)是卷积神经网络中的一个重要的概念,它实际上是一种形式的降采样。有多种不同形式的非线性池化函数,而其中“最大池化(Max pooling)”是最为常见的。它是将输入的图像划分为若干个矩形区域,对每个子区域输出最大值。直觉上,这种机制能够有效的原因在于,在发现一个特征之后,它的精确位置远不及它和其他特征的相对位置的关系重要。池化层会不断地减小数据的空间大小,因此参数的数量和计算量也会下降,这在一定程度上也控制了过拟合。通常来说,CNN的卷积层之间都会周期性地插入池化层。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

分类数据技术

一种特征,拥有一组离散的可能值。以某个名为 house style 的分类特征为例,该特征拥有一组离散的可能值(共三个),即 Tudor, ranch, colonial。通过将 house style 表示成分类数据,相应模型可以学习 Tudor、ranch 和 colonial 分别对房价的影响。 有时,离散集中的值是互斥的,只能将其中一个值应用于指定样本。例如,car maker 分类特征可能只允许一个样本有一个值 (Toyota)。在其他情况下,则可以应用多个值。一辆车可能会被喷涂多种不同的颜色,因此,car color 分类特征可能会允许单个样本具有多个值(例如 red 和 white)。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

实例分割技术

实例分割是检测和描绘出现在图像中的每个不同目标物体的任务。

目标检测技术

一般目标检测(generic object detection)的目标是根据大量预定义的类别在自然图像中确定目标实例的位置,这是计算机视觉领域最基本和最有挑战性的问题之一。近些年兴起的深度学习技术是一种可从数据中直接学习特征表示的强大方法,并已经为一般目标检测领域带来了显著的突破性进展。

自监督学习技术

一个例子中的内容特别多,而用一个例子做一个任务,就等于把其他的内容浪费了,因此我们需要从一个样本中找出多个任务。比如说遮挡图片的一个特定部分,用没遮挡部分来猜遮挡的部分是一个任务。那么通过遮挡不同的部分,就可以用一个样本完成不同任务。Yann Lecun描述的这个方法被业界称作「自监督学习」

推荐文章
暂无评论
暂无评论~