自监督预训练须要大规模数据集吗? 这是 2021 年公布的一篇论文,它在自监督预训练场景中应用小数据集,如 Stanford Cars, Sketch 或 COCO,它们比 ImageNet 小几个数量级。并提出了一种相似于 BEiT 的去噪自编码器的变体 SplitMask,它对预训练数据的类型和大小具备更强的鲁棒性。
SplitMask
SplitMask 是基于三个步骤:split, inpaint 和match。
split: 与规范 ViTs 一样,图像首先被合成为 16×16 像素块。而后将图像宰割为两个不相交的子集 A 和 B,别离由共享深度 ViT 编码器进行独立解决。
Inpaint: 接下来,应用子集 A 的 patch 示意和一个浅解码器 (例如 2 层),通过解决掩码图像建模(MIM) 工作(BEiT),子集 B 的 patch 被“填充”。
最初,对每个分支对应的解码器输入的 patch 示意进行均匀池化,失去全局图像描述符。
Match: 应用两个示意 xa 和 xb,别离对应于观测 patch 的子集 A 和 B 来预计 InfoNCE loss (CPCv1):
增加这种比照损失的动机是激励模型产生全局统一的特色,这些特色在不同抉择的察看子集之间是统一的,而不依赖于任何手工设计的转换。
后果
1、融化钻研
仅应用 5% 的 ImageNet 样本就能达到峰值性能,增加更多的样本并不能提供额定的晋升。应用 10% ImageNet 子集。训练近 3k 个 epoch 的长时间,与残缺 ImageNet 的 300 个 epoch 的总更新次数相匹配。
应用 autoencoderloss、BEiT 和SplitMask(如 MIM)进行预训练对数据集大小的减小具备鲁棒性。而 DINO 则与监督预训练一样,当应用较小的数据集进行训练时,模型的性能会降落。
通过更简略的抉择替换 DALL- E 标记器不会导致准确性的任何显着升高。
2、COCO
应用 COCO 图像对 DINO 进行相似的预训练则失去了绝对较弱的性能,仅优于随机初始化。与 BEiT 基线相比,SplitMask 带来了统一的改良,例如应用 viti -small 时的 +0.6 box AP 和应用 viti -base 的 +0.3 mask AP。
3、ADE20K
即便应用绝对较小的 20k 图像样本进行预训练,去噪自编码器也能够在这种具备挑战性的工作上提供十分有竞争力的性能。
4、小数据集
SplitMask 能够进一步提高多个数据集的性能: 例如,在 iNaturalist 2018 数据集上,能够看到基于 vit 的模型的精度进步了 3.0。
5、ImageNet
SplitMask 提供了弱小的性能,在所有骨干网上都优于 BEiT 和 MoCo v3。
论文地址:Are Large-scale Datasets Necessary for Self-Supervised Pre-training?
https://avoid.overfit.cn/post/21d79b50015d406694bcf063b12c02e3
作者:Sik-Ho Tsang