2040张图片训练出的ViT,准确率96.7%,连迁移性能都令人惊讶
晓查发自凹非寺
量子位|公众号QbitAI
ViT在计算机视觉领域取得了巨大的成功 , 甚至大有取代CNN之势 。
但是相比CNN , 训练ViT需要更多的数据 , 通常要在大型数据集JFT-300M或至少在ImageNet上进行预训练 , 很少有人研究少量数据训练ViT 。
最近 , 南京大学吴建鑫团队提出了一种新方法 , 只需2040张图片即可训练ViT 。
他们在2040张花(flowers)的图像上从头开始训练 , 达到了96.7%的准确率 , 表明用小数据训练ViT也是可行的 。
另外在ViT主干下的7个小型数据集上从头开始训练时 , 也获得了SOTA的结果 。

文章图片
而且更重要的是 , 他们证明了 , 即使在小型数据集上进行预训练 , ViT也具有良好的迁移能力 , 甚至可以促进对大规模数据集的训练 。
论文内容
在这篇论文中 , 作者提出了用于自我监督ViT训练的IDMM(InstanceDiscriminationwithMulti-cropandCutMix) 。
我们先来看一下ViT图像分类网络的基本架构:
将图像样本x?(i=1,2,…,N;N为图片数量)送入ViT中 , 得到一组输出表征z? 。 w?为第j个分类的权重 。

文章图片
然后 , 使用全连接层W进行分类 , 当类的数量等于训练图像的总数N时 , 即参数化实例判别 。
【2040张图片训练出的ViT,准确率96.7%,连迁移性能都令人惊讶】第j类的输出为:

文章图片
我们把O送入Softmax层 , 就得到一个概率分布P??? 。 对于实例判别 , 损失函数为:

文章图片
对于深度聚类 , 其损失函数为:

文章图片
可以看出 , 只要适当设置权重(让w?=~w?) , 就可以让实例判别等价于深度聚类 。
从下图中可以看出 , 与其他方法相比 , 实例判别可以学习到更多的分布式表征 , 并能更好地捕捉到类内的相似性 。

文章图片
作者之所以选择参数化的实例判别 , 还有一个重要的原因:简单性和稳定性 。
不稳定性是影响自监督ViT训练的一个主要问题 。 实例判别(交叉熵)的形式更稳定 , 更容易优化 。
接下来开始梯度分析 , 损失函数对权重求导:

文章图片
其中δ是指示函数 , 当k=i时值为1 , 否则为0 。
需要注意的是 , 对于实例判别 , 类的数量N通常很大 , 而且存在对实例样本访问极稀少的问题 。
对于稀少的实例k≠i , 可以预计P????≈0 , 因此?L/?w?≈0 , 这意味着w?的更新频率极低 。
在小数据集问题上 , 作者使用CutMix和标签平滑 , 来缓解此问题 。
CutMix:

文章图片
标签平滑:

文章图片
最后梯度变为:

文章图片
本文第一作者是南京大学在读博士曹云浩 , 通讯作者是南京大学人工智能学院吴建鑫教授 。
总之 , 作者使用了以下策略来加强小数据集上的实例判别 。
小分辨率:预训练中的小分辨率对小数据集很有用 。 多次裁剪:实例判别概括了对比损失 , 保证了在使用多种实例时获取特征的对齐和统一性 。 CutMix和标签平滑:有助于缓解使用实例判别时的过拟合和不经常访问的问题 。至于为什么需要直接在目标数据集上从头开始训练 , 作者给出了3点原因:
- 索尼|索尼电视就是最好的吗?
- |串口通信问题排查指南
- 微信|终于!微信可以分组了!
- 5g网络|外媒:华为已成定局
- 腾讯|QQ出现大规模盗号!腾讯回应了
- 价格战后的快递业:更卷,更强
- 拼多多争抢618
- |一招教你入门数据可视化!
- 智慧园区4.0解决方案
- soul|00后正在抛弃Soul们
