在2040张图片上训练出来的ViT,准确率高达96.7%,甚至迁移性能也很惊人。ViT在计算机视觉领域取得了巨大的成功,甚至有取代CNN的潜力。但是相比CNN,训练ViT需要更多的数据,通常是在大数据集JFT-300M或者至少在ImageNet上进行预训练,很少有人在少量数据上研究过ViT。近日,南京大学吴建新团队提出了一种只需要2040张图片就可以训练ViT的新方法。他们在2040幅花卉图像上从头开始训练,达到了96.7%的准确率,表明用小数据训练ViT也是可行的。此外,在ViT骨干网下的7个小型数据集上从头开始训练时,也获得了SOTA结果。更重要的是,他们证明ViT即使在小型数据集上进行预训练时也具有良好的可迁移性,甚至有助于在大规模数据集上进行训练。在本文中,作者提出了用于自监督ViT训练的IDMM(InstanceDiscriminationwithMulti-cropandCutMix)。我们先来看看ViT图像分类网络的基本架构:将图像样本x?(i=1,2,...,N;N为图片数量)送入ViT,得到一组输出表示z?。w?是第j类的权重。然后,当类数等于训练图像总数N时,使用全连接层W进行分类,即参数化实例判别。第j类的输出是:我们将O送入Softmax层,我们得到一个概率分布P???。对于实例判别,损失函数为:对于深度聚类,损失函数为:可见,只要权重设置得当(令w?=~w?),实例判别就可以等价于深度聚类。从下图可以看出,与其他方法相比,实例判别可以学习到更多的分布式表示,更好地捕捉类内相似性。作者选择参数化实例判别还有一个重要原因:简单和稳定。不稳定性是影响自我监督ViT培训的主要问题。实例判别(交叉熵)的形式更稳定,更容易优化。接下来开始梯度分析,根据权重推导出损失函数:其中δ为指示函数,当k=i时取值为1,否则为0。需要注意的是例如判别,类数N通常很大,存在实例样本极少访问的问题。对于极少数情况k≠i,可以预期P????≈0,因此?L/?w?≈0,这意味着w?很少更新。在小数据集问题上,作者使用CutMix和标签平滑来缓解这个问题。CutMix:Labelsmoothing:最终的梯度变成:这样通过直接修改单个label来更频繁地更新权重矩阵,这也是ViT有监督训练中常用的方法。总之,作者使用以下策略来加强对小数据集的实例区分。小分辨率:预训练中的小分辨率对于小数据集很有用。多重裁剪:实例辨别概括了对比损失,保证了使用多个实例时获取的特征的对齐和均匀性。CutMix和LabelSmoothing:帮助缓解使用实例判别式时的过度拟合和不频繁访问问题。至于为什么要在目标数据集上直接从头开始训练,作者给出了三个原因:1.Data目前的ViT模型通常是在大规模数据集上预训练,然后在各种fine-tune下游任务。由于缺乏典型的卷积归纳偏置,这些模型比普通CNN的数据密集度更高。因此,至关重要的是从头开始训练ViT,以便能够使用有限数量的图像执行任务。2.算力大规模的数据集,大量耗时且复杂的骨干网络使得ViT训练的算力成本非常昂贵。这种现象使得ViT成为少数机构研究人员的特权。3.柔性预训练后下游微调的模式有时比较麻烦。例如,我们可能需要为同一个任务训练10个不同的模型并将它们部署在不同的硬件平台上,但是在大规模数据集上预训练10个模型是不现实的。在上图中,很明显,与从头开始训练相比,ImageNet预训练模型需要更多的参数和计算成本。在小型数据集上进行预训练时的可迁移性。每个单元格和列中精度最高的元素分别带有下划线和粗体。最后,在下表中,作者评估了预训练模型在不同数据集上的迁移精度。对角线(灰色)上的单元在同一数据集上进行了预训练和微调。偏离对角线的单元格评估这些小数据集上的传输性能。从这个表中,我们可以看到以下内容:即使在小型数据集上进行预训练,ViT也具有良好的可迁移性。该方法在所有这些数据集上的传输精度也高于SimCLR和SupCon。即使预训练数据集和目标数据集不在同一域中,也能获得令人惊讶的好结果。例如,在Indoor67上预训练的模型在转移到Aircraft时可实现最高的准确度。作者简介本文第一作者为南京大学在读博士生曹云浩,通讯作者为南京大学人工智能学院吴建新教授。吴建新毕业于南京大学计算机专业,获学士和硕士学位,博士。佐治亚理工学院学位。2013年加入南京大学科学技术系,任教授、博士生导师。曾任ICCV2015、CVPR2017领域主席,现任PatternRecognition杂志编委。
