Compact-Transformer:缓解数据不足带来的问题

【GiantPandaCV导语】本文致力于解决ViT在小型数据集上性能不够好的问题,这个问题非常实际,现实情况下如果确实没有大量数据集,同时也没有合适的预训练模型需要从头训练的时候,ViT架构性能是不如CNN架构的。这篇文章实际上并没有引入大量的卷积操作,通过修改patch size,以及使用SeqPool的方法就可以取得不错的成绩。

引言

ViT不适用于小数据集,但是由于很多领域中数据量大小是非常有限的,为了打破ViT数据匮乏下性能不好,只能应用于大数据集的问题。本文提出使用正确的尺寸以及tokenization方法,可以让Transformer在小型数据集上达到SOTA。从头开始训练CIFAR10可以达到98%准确率。

本文中首先引入了ViT-Lite,这是一种小型结构更紧密的ViT,在其基础上添加合适大小的Patch sizeing得到Compact Vision Transformer.

这部分与Early Convolution Stem那篇异曲同工。

本文核心贡献如下:

  • 通过引入ViT-Lite能够有效从头开始在小型数据集上实现更高精度,打破Transformer需要大量数据的神话。
  • 引入新型序列池化策略(sequence pooling)的CVT(Compact Vision Transformer),从而让Transformer无需class token
  • 引入CCT(Compact Convolutional Transformer)来提升模型性能,同时可以让图片输入尺寸更加灵活。

方法

提出了三种模型ViT-Lite, CVT, CCT。

ViT-Lite

该模型与原始模型几乎相同,但是使用更小的patch size。小型数据集本身就很小,因此patch size比较重要。

CVT

引入了Sequential Pooling方法,SeqPool消除了额外的Classification Token, 这个变换用T表示: R b × n × d ↦ R b ^ × d \mathbb{R}^{b \times n \times d} \mapsto \mathbb{R}^{\hat{b} \times d} Rb×n×dRb

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

*pprp*

如果有帮助可以打赏一杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值