今天参加了Journal Club,第一次参加这样的journal分享讨论,收获满满。
这一期分享的paper是:An image is worth 16x16 words:Transformers for image recognition at scale
一、概述
CV------>CNN------>CNN as Backbone Attention as asuxiliary
NLP----->RNN----->Conv Seq2Seq------>Attention(Transformer)
这篇文章:
1、对于cnn的依赖是不必要的
2、pure transformer直接应用于图像patches序列可以很好地实现图像分类任务。
做法:
将image 分成一个个patch,然后把这些patches的线性嵌入序列输入到Transformer,这些patches在nlp任务中相当于tokens或者是words。
二、模型原理(Vision Transformer----ViT)
Transformer的输入是一维序列,而图片数据都是二维的。因此使用Patch Embedding的方法将图片以合适的方式输入到模型中。
首先,将原始图片划分为多个patch子图,每个子图相当于一个token。接着,对每个patch进行embedding,通过一个线性变换层将二维的patch嵌入表示为长度为D的一维向量,并添加位置嵌入信息(0,1,2,…),即每个patch在原始图像中的位置信息。(目的是:引入位置信息有利于模型正确评估注意力权重)。图像中0的位置是起一个占位符的作用,类似Bert中的CLS(不太了解Bert…不太懂这个操作)
三、实验
1、Typical model setting
ViT-Base 、ViT-Large、ViT-Huge 是借鉴了Bert那篇论文。Ours-JFT表示本文模型在JFT-300M数据集上进行了与训练。14和16表示pitch size。可以看出规模较小的ViT-L在各个数据集上都超过了ResNet,并且其所需的算力也要少十多倍。
2、Experiment setting
数据集:
ImageNet 1.3M images 1K classes
ImageNet-21k 14M images 21K classes
JFT 300M images 18K classes
ImageNet Real cleaned-up labels
CIFAR-10/100
Oxford Ptes/Flowers
VTAB 19-task Natural-tasks like the above,Pets,CIFAR,etc.
Specialized-medical and satellite imagery
Structured-tasks that require geometric understanding like localization
Baseline Model:
ResNet + GroupNorm(replace BN) + Standardized convolutions
A large EfficientNet trained using semi-supervised learning on ImageNet and JFT-300M with the labels removed.
3、Training set size & Performance
左图可以看出,预训练数据集size越大,最终的性能越好,“Huge ”Model(ViT-H/14)要高于较小的(ViT-L);
右图可以看出ViT本身的性能上限要优于ResNet,随着数据规模的增大,ViT模型要远远高于ResNet。可以看出注意力机制可以几乎代替CNN了。
4、Visualization
左图是每个patch的低维表示,中间的图是位置嵌入的相似性,可以看到同一行或者列的patch具有相似的embeddings
右图是根据注意力权重计算图像空间中整合信息的平均距离。可以看到Head在低层的注意距离很小,随着网络层数的增加,attention距离也在增加。
可视化的结果可以看到模型关注的是与分类语义相关的图像区域
四、注意力机制在CV中的应用(引言):
*这部分可能对今后的学习有帮助
1、注意力要么与卷积网络结合使用,要么用于替换卷积网络的某些组件,同时保持他们的整体结构不变。
注意力架构的相关工作:
缺点:复杂,计算效率低
2、CNN与self-attention相结合的:
五、总结