2022-01-04

论文阅读:《AN IMAGE IS WORTH 16X16 WORDS:TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE》

论文地址:https://arxiv.org/abs/2010.11929  

代码地址:https://github.com/google-research/vision_transformer

                  https://github.com/lucidrains/vit-pytorch

论文翻译:https://blog.csdn.net/weixin_40671425/article/details/121457772

面向任务:有监督目标检测

Motivation:使用self-attention机制完全替代CNN进行目标检测任务。

Contribution:1.本文的作者尽可能地将NLP领域的transformer不作修改地搬到CV领域来。2.为了实现将self-attention机制完全替代cnn进行目标检测任务这一目标,本文作者设计了一种将三维的图像转化为序列化的数据的方式。3.没有使用faster-rcnn或者其他类似的backbone网络进行预处理。4.使用方便,可以达到开箱即用。5.本文通过大量的大规模实验证明了Visual Transformer模型的能力优于SOTA CNN模型。6.本文利用不同尺度的数据集和模型,设计了benchmark,与ResNet和混合模型进行比较评价。

Method:模型的架构分为3步,Patching Embedding, Position & Learnable Embedding 还有 Transformer Encoder。

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

ViT结构

我们知道CNN具有平移不变形,但是transformer基于self-attentation可以获得long-range信息(更大的感受野),但是CNN需要更多深层的Conv-layers来不断增大感受野。相当于卷积模型来比,transformer在减少计算资源的同时获得了非常出色的结果。当对中等规模数据集(例如ImageNet)进行训练的时候,此模型所产生的适合的精度要比同等规模的ResNet低几个百分点。数据量越大,模型越友好。很多图像特征提取器将CNN与专门注意力机制结合在一起,但是未能在硬件加速器扩展。transformer缺乏CNN固有的一些感应偏差,例如平移不变性和局部性,因此在训练不足的数量时候,很难有好的效果。

我们证明了,对CNN的依赖不是必要的,在图象识别任务中,在图像块(image patches)的序列上应用纯粹的Transformer模型也可以表现得很好。当使用大量数据进行预训练,再迁移到多个中小型图象识别基准库后,ViT得到了优异的结果,相比于最先进(SOTA)的卷积网络,而训练所需要的计算资源更少。

归纳偏置(Inductive bias):vit比cnn有更少的特定于图像的归纳偏置。在cnn中,局部性、二维邻域结构和平移不变性贯穿整个模型的每一层。在ViT中,只有MLP层是局部和平移等变的,而Self-attention是全局的。二维邻域结构使用地非常少:在模型开始时,将图像切割成小块,并在微调时对不同分辨率的图像进行位置嵌入调整。除此之外,初始化时的位置嵌入不包含块的二维位置信息,所有块之间的空间关系都需要从头学习。

混合结构(Hybrid Architecture):输入序列可以由CNN的feature map组成,从而替代原始图像块。在这个混合模型中,将patch embedding 应用于从CNN feature map中提取的patches。作为一种特殊情况,patches的尺寸可以是1x1,即简单地将feature map平坦化,并映射到Transformer的尺寸即可得到输入序列。如上所述添加分类输入嵌入和位置嵌入。

Transformer结构

步骤一(input)

输入图像大小尺寸为(H\times W\times C),首先我们将图片进行切分,按照patch_size进行切分,这样我们就得到了(P,P)大小的一个个图块, 这里的图块数量为N=HW/P^2。联想到transformer,这里的N就可以理解是序列长度,其中序列中每个element的维度dim称之为patch embedding。在我们进行图片分类的时候我们一般在序列前加入一个element,我们称此element为element_{class} ,这样我们得到序列长度为N+1,在训练的时候我们可以通过此element进行图片分类。最后再加上位置矩阵(注意这里是add不是concate)构成我们的输入矩阵z0

步骤二(forward)

transformer编码器主要由两个components构成分别是MSA(multi-head self-attention)和MLP(multi layer perceptron)组成。

前向传播的计算公式

第一个公式:这里的x_{class} 表示的类别element,x_{p}^n 表示的是输入的每个patch,E代表的对应的权重,N表示的patch的数量,E_{pos} 代表的是position的信息。第二个公式:这里的LN表示的是Layer Normalization

MSA的公式

这里的qkv矩阵之前已经说过了,如通过输入z与U_{qkv} 权重得到而来,我们在通过公式A=softmax(qk^T/\sqrt{D_{h} }  )得到我们的Attention权重。最终利用v矩阵与attention权重相乘得到SA(z)=Av。我们得到如下公式:

MLP其实就是多层感知机,这里很容易理解,其包含具有GELU非线性的两全连接层。根据公式(2)(3)可以看到ViT模型结构也采用了残差机制。

特征提取:

a.对输入Patches进行LN标准化处理,用于加快网络收敛;

b.MSA(多头注意力机制),类似CNN中使用多个滤波器,有助于网络捕捉更丰富特征;

c.MLP(多层感知器),全连接+GELU激活函数+Dropout;

d.残差连接,防止梯度消失;

一些训练细节:

训练的时候先在大的数据集上进行预训练,然后用下游任务的小数据集fine-tune。fine-tune的时候用高分辨率的图像往往性能更好。当图像分辨率增大后,是维持每个patch的大小不变,生成更多的patch,还是增大patch的size,维持patch的数量不变呢?作者选择了前者。对于transformer来说,它可以处理任意长度的序列(只要显存够),所以这反面是不会有影响的,但是position embedding会受到影响(可能失效),为了匹配维度,作者根据patch的位置对position embedding进行了2D插值,这是ViT中唯一的归纳偏置(inductive bias)。

跟SOTA对比:

在各个数据集上的性能对比胳膊

在JFT上预训练的ViT-L/16性能比BiT-L(也是在JFT上进行预训练)更好,且所需的计算资源更少。模型更大一点的ViT-H/14性能进一步提升,尤其是在更具挑战性的任务上,如ImageNet、CIFAR-100和VTAB,且所需的计算资源依旧远小于之前SOTA。在I21K上预训练得到的ViT-L/16性能也不错,需要的计算资源更少,在8TPU上训练30天即可。

 数据集的大小对性能的影响:

左图中,在小数据集(ImageNet)上,尽管使用了很强的正则化操作(weight decay,dropout,label smooth),大模型(ViT-L)性能还是不如小模型(ViT-B),应该是过拟合了,也不如BiT(ResNet)。在大数据集(JFT-300M)上,大模型性能更好。

右图中,在9M,30M,90M,300M的JFT数据集上做实验,且不进行正则化,但是采用early-stopping方法,以探索模型本身的属性。对比ViT-B/32和ResNetx1(二者参数量差不多),在小数据集上,ViT-B/32性能不如ResNet,但在90M+的数据集上,ViT-B/32性能更好,对比ViT-L/16和ResNet也是一样。作者得出的结论是,在小数据集上,卷积的归纳偏置是是非常有用的,但在大数据集上,直接学relevant pattern就够了。

计算资源与性能的折中:

Hybrid表示先用ResNet提取patch的特征,而不是直接把patch送入网络。跟ResNet相比,ViT性价比更高,相同性能,ViT所需要的计算资源更少。跟Hybrid模型相比,在计算资源有限的情况下,Hybrid模型性能更优,但随着计算资源的最佳,性能的gap逐渐缩小为0。这让人有些意外,因为直觉上,ResNet提取的特征对ViT应该是有帮助的。

应用ViT进行图像分类的处理过程


代码结构:

ViT的实现以及初始化

每个transformer包含Attention模块和FeedForward(FFN)模块


重点相关论文

1.Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N Gomez, Łukasz Kaiser, and Illia Polosukhin. Attention is all you need. In NIPS, 2017.

Transformer 的提出,祖师爷

2.Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. BERT: Pre-training of deep bidirectional transformers for language understanding. In NAACL, 2019.

BERT 模型,这篇论文中大量的设计来自BERT,如xclass标志位,自监督预训练等

3.Jean-Baptiste Cordonnier, Andreas Loukas, and Martin Jaggi. On the relationship between selfattention and convolutional layers. In ICLR, 2020.

像素级,小块级别的attention,和vit很一致

4.Mark Chen, Alec Radford, Rewon Child, Jeff Wu, and Heewoo Jun. Generative pretraining from pixels. In ICML, 2020a.

像素级别,使用Transformer的图像生成模型

参考资料:https://bbs.huaweicloud.com/blogs/detail/280939

                  //www.greatytc.com/p/20660b896f07

                  https://zhuanlan.zhihu.com/p/343812157

                  https://blog.csdn.net/zhuixun_/article/details/115920130

                  https://blog.csdn.net/cdknight_happy/article/details/121031678

                  https://zhuanlan.zhihu.com/p/398983122

                  https://blog.csdn.net/cg129054036/article/details/121644780

                  https://zhuanlan.zhihu.com/p/359071701

                  https://zhuanlan.zhihu.com/p/422144659

                  ViT三部曲

                  https://blog.csdn.net/qq_44055705/article/details/113825863

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,265评论 6 490
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,078评论 2 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,852评论 0 347
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,408评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,445评论 5 384
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,772评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,921评论 3 406
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,688评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,130评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,467评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,617评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,276评论 4 329
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,882评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,740评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,967评论 1 265
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,315评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,486评论 2 348

推荐阅读更多精彩内容