SplitMask:大规模数据集是自我监督预训练的必要条件吗?

946e103c422f979f8de411563aeb9330.png

来源:DeepHub IMBA
本文约900字,建议阅读5分钟
自监督预训练需要大规模数据集吗?

自监督预训练需要大规模数据集吗?这是2021年发布的一篇论文,它在自监督预训练场景中使用小数据集,如Stanford Cars, Sketch或COCO,它们比ImageNet小几个数量级。并提出了一种类似于BEiT的去噪自编码器的变体SplitMask,它对预训练数据的类型和大小具有更强的鲁棒性。

5e8e808c0b835f3fe84504d77dd1a065.png


SplitMask

0be7b4918397013d6e0e8aa2ae16ef7c.png

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):

f00e5aea11e39b509e4c329edb9ed5fd.png

添加这种对比损失的动机是鼓励模型产生全局一致的特征,这些特征在不同选择的观察子集之间是一致的,而不依赖于任何手工设计的转换。

结果

1、消融研究

102fd82c815eecf53039628840446694.png

仅使用5%的ImageNet样本就能达到峰值性能,添加更多的样本并不能提供额外的提升。使用10% ImageNet子集。训练近3k个epoch的长时间,与完整ImageNet的300个epoch的总更新次数相匹配。

1e1113f772cad4d7a57ba1facdd2b344.png

使用autoencoder loss、BEiT和SplitMask(如MIM)进行预训练对数据集大小的减小具有鲁棒性。而DINO则与监督预训练一样,当使用较小的数据集进行训练时,模型的性能会下降。

cd48d6a1b56db70ea9e7fc4941175da5.png

通过更简单的选择替换DALL-E标记器不会导致准确性的任何显着降低。

2、COCO

6d5861417c0024fe63c31d340750b6c0.png

使用COCO图像对DINO进行类似的预训练则得到了相对较弱的性能,仅优于随机初始化。与BEiT基线相比,SplitMask带来了一致的改进,例如使用viti -small时的+0.6 box AP和使用viti -base的+0.3 mask AP。

3、ADE20K

d10b7aac3f811b46bedd24e3a212c156.png

即使使用相对较小的20k图像样本进行预训练,去噪自编码器也可以在这种具有挑战性的任务上提供非常有竞争力的性能。

4、小数据集

2157584c44edf2375f7c7a4d0462ba1b.png

SplitMask可以进一步提高多个数据集的性能:例如,在iNaturalist 2018数据集上,可以看到基于vit的模型的精度提高了3.0。

5、ImageNet

233c253908516f7b035f0b74fc467d33.png

SplitMask提供了强大的性能,在所有骨干网上都优于BEiT和MoCo v3。

论文地址:

Are Large-scale Datasets Necessary for Self-Supervised Pre-training?

https://arxiv.org/abs/2112.10740

编辑:文婧

dc48e64631159af72c7bc52a18525e30.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值