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

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

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

SplitMask

SplitMask是基于三个步骤:split, inpaintmatch

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的总更新次数相匹配。

使用autoencoder**lossBEiTSplitMask**(如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

目录
相关文章
中国联通·阿里云万卡绿色算力项目在西宁点亮
中国联通·阿里云万卡绿色算力项目在西宁点亮
|
人工智能
官宣!西安市数据局与阿里云达成合作
官宣!西安市数据局与阿里云达成合作
432 8
|
人工智能 数据挖掘
扎根江西!江西数字集团与阿里云达成深度合作
扎根江西!江西数字集团与阿里云达成深度合作
403 6
|
Dragonfly Docker 容器
实时数仓Hologres容器镜像问题之优化私有化部署如何解决
容器镜像常遇问题包括:将过多组件打包至单一容器、使用systemd导致状态不一致、私有部署中传输未优化的镜像包及基础镜像频繁下发致网络拥堵。应采用轻量化基础镜像,明确镜像版本,并利用镜像层复用来优化。[了解更多](https://developer.aliyun.com/ask/666077)。 避免容器臃肿的方法是选用精简基础镜像,固定镜像版本,并通过镜像层复用来减少重复内容,实现高效部署。[查看详情](https://developer.aliyun.com/ask/666078)。
351 0
|
JavaScript 前端开发 API
Py之dominate:python的dominate库的简介、安装、使用方法之详细攻略
Py之dominate:python的dominate库的简介、安装、使用方法之详细攻略
Py之dominate:python的dominate库的简介、安装、使用方法之详细攻略
|
缓存 API 调度
Android OkHttp+Retrofit+Rxjava+Hilt实现网络请求框架
🔥 介绍 本文通过OkHttp+Retrofit+Rxjava+Hilt实现一个网络请求框。
940 0
Android OkHttp+Retrofit+Rxjava+Hilt实现网络请求框架
|
数据可视化 算法 Python
python中的copula:Frank、Clayton和Gumbel copula模型估计与可视化
python中的copula:Frank、Clayton和Gumbel copula模型估计与可视化
|
消息中间件 监控 Apache
RocketMQ助力编程猫构建稳定的业务系统
通过使用商业版本的RocketMQ,依赖于有保障的SLA(99.99999999%数据可靠性,99.95%服务可用性),就像是站在巨人的肩膀上构建系统。
4602 107
RocketMQ助力编程猫构建稳定的业务系统
|
前端开发 测试技术 数据安全/隐私保护
Pytest-测试报告pytest-html
Pytest-测试报告pytest-html
567 0
|
运维 大数据 数据库
宁夏,我们来了!
宁夏,我们来了!
1259 0