<读论文>(Transformer)An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale

题目:An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale

作者:谷歌大脑团队(Dosovitskiy, A., Lucas Beyer, Alexander Kolesnikov, Dirk Weissenborn, Xiaohua Zhai, Thomas Unterthiner, M. Dehghani, Matthias Minderer, Georg Heigold, S. Gelly, Jakob Uszkoreit and N. Houlsby)

发表会议及时间:ICLR2021

摘要:

Transformer在nlp领域已经有了十分不错的成绩,但是在计算机视觉领域应用还十分受限。在cnn中attention不作为一个主要的模块,即整体仍是cnn结构。但作者展示了在图像分类中单纯使用transformer也能表现得很好。在没有经过强正则化的中等数据集上时,transformer表现得没有很好,但是在足够大的数据集上训练后,VIT可以拿到和cnn中的sota差不多的结果甚至使用了更少的资源。

查询资料可知,Transformer提出后在NLP领域中取得了极好的效果,其全Attention的结构,不仅增强了特征提取能力,还保持了并行计算的特点,可以又快又好的完成NLP领域内几乎所有任务,极大地推动自然语言处理的发展。但其在计算机视觉领域应用很有限,在此之前只有目标检测(Object detection)中的DETR大规模使用了Transformer,纯Transformer结构的网络则是没有的。

拿Transformer来CV领域应用的动机(优势):

        1、并行计算:RNN前后具有依赖关系,依赖于时许,不具有并行计算的能力;CNN的滑动窗口,前后不依赖因此天然具有并行计算的能力;Transformer也具有并行计算能力,不同的时序对应不同的attention权重

        2、全局视野:CNN没有全局视野,都是局部的感受野,需要通过堆叠(增加深度);Transformer具有全局视野,attention机制

        3、灵活的堆叠能力

论文思路:

任务a中比较好的思路可以应用到任务b去,当然也需要解决应用过程中的一些问题,比如把CV中的多维数据放到transformer中去

attention机制:

一个翻译只与有限的几个词有关,并不用完全编码,本质即加权平均,如何得到权重即相似度计算,具有并行计算和全局视野的优点b7c16788208c4ea880608c10f3a05230.png

Self attention:

从一维角度讲NLP:word->vector

        1、同义相近(cat,cats)

        2、意思差距大距离远

计算:

c19b517ac0b949dc9482c239ad4562ac.png

00952997dab043589a6d2826680d571d.png

通过矩阵乘法计算出QKV(Query,Key,Value)

实际上就是计算相似度,计算每个q和每个k的相似度,逐个计算z1 z2...zn

5f24d6ab7f4c4150a3304085e563429e.png

 计算可以矩阵化即并行,因此不需要两层循环,效率高

f52d2aca633c4d659682ba883a38494c.png

multihead attention:

有多个Wq,Wk,Wv,重复多次self attention计算,结果concat到一起8954906f3f9c40cbbcc2ed25e144d24e.png

transformer encoder:

d205be31b49748a780e9c9114fdd4f31.png

输入端适配:

CV部分,即切图重排,image->sequence

5aec9af1fdf340429e6d562d30f24b96.png0d40dfb3ecc8458fb120da4544af9593.png

Patch 0是一个动态的pooling layer

论文模型:

901ab75a3d524ff0a7d5b845c102f5f1.png

实验结果分析:

8569baac2a9f4501aaaf005df2142c31.pngfa27584e29634d14bbcd641a725b7ab9.png da858db2270945a899a239c60016da31.png

所消耗的资源更少,但是vit的性能需要大数据集

训练方式:

大规模使用Pre-Train,现在大数据集上预训练,然后到小数据集上Fine Tune

Transformer的优缺点分析:

结构优点:

        简洁、大kernel、动态权重

对社区的贡献:

        容易改良、容易拓展

结构代价:

        O(n2)的attention复杂度(时间和空间都这么大,时间长容易炸显存)、对整体结构的造成影响、收敛问题(有大数据集的公司毕竟不多)

对社区的挑战:

        下端怎么用、端上如何部署

关键点:

        vit是一个用transfomer做分类的backbone

        模型结构-- transform么人 encoder

         multihead attention的意义及计算过程

        输入端适配--切图、位置编码

创新点:

        纯transformer做分类任务

        简单的输入端适配即可使用

        做了大量的实验揭示了纯transformer做cv的可能性

参考文章:

Attention机制详解(深入浅出)-CSDN博客

  • 29
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值