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点原因:
- OLED|索尼65A1烧屏了,OLED被吹过头了
- docker|鹅厂不配和华为对比?
- 我们,网络正能量建设者!
- 3glasses|高德打车去偏僻农村吗
- 海南2021年新增充电桩逾2万个
- 安徽肥西:传统民俗迎新年
- 男人的钱,到底花哪里去了
- 大脑|“数字交通”加速跑起来
- 三家大保险公司都破产倒闭,花钱买教训?谁来为我们“保险”?
- 芒果超“霉”