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

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

在这里插入图片描述

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

ViT是成功的把Transformer从NLP应用到CV领域的模型,作者将一张图片分割成分割成多个固定大小的patch(一般大小为16x16或者14x14),将每个patch当做一个NLP句子中的单词,然后进行线性变化得到patch embedding,这类比于NLP的word embedding。ViT模型只采用了Transformer的encoder部分来提取特征,而忽略了decoder的部分,通过分类得到结果。最终通过实验得到结果,其拓展性强(scalable强,并且模型越大,效果越好)。

1.Patch Embedding和Position Embedding

首先,输入的图像大小为HxWxC,其中H,W分别为图像的高和宽,C为图像的通道数,通常为3(RGB),我们将图像分成PxP大小的patchs,然后通过reshape可得到xp大小为N*(P2xC),其中N为patch的个数,N = (H/P)(W/P) = HW/P2,相当于序列长度。此时序列长度为N(相当于句子长度),每个单词的维度大小为D(大小为P2xC),然后通过一个简单的线性变换将每个patchs映射到D大小的维度。这其实相当于实现了一个大小为PXP,步长为P的卷积操作(通道数为D)。

然后,由于attention是对一层直接进行特征提取,所以并没有位置信息。所添加的position embedding是一个可训练的1-D positional embedding,然后与patch embedding进行直接相加。论文在对positional embedding进行可视化之后,发现相近的patchs的postional embedding比较相似,说明可学到相应位置的位置信息。

2.Class Token

Class Token是一个可学习的嵌入向量,进行随机初始化,它与Patch Token一起输入到Transformer中,构成N+1个Token,对于分类任务来说,就可以用Class Token学到的特征进行分类预测。其没有卷积网络中的Pooling层,用其代替。

3.Transformer Encoder

这是ViT网络的核心部分。该部分与原Transformer的Encoder部分相似。

在这里插入图片描述

Self-Attention的计算公式为:

在这里插入图片描述

其中根号dk的作用是避免dk过大,导致点积带来方差的影响。而Multi-Head Attention将输入的序列,乘以一个可训练的矩阵,得到原来序列特征长度的h分之一,共h个,经过注意力机制后,得到h个序列进行concat,得到最终的特征。在transformer中是先执行Multi-Head Attention再执行Add和Norm操作,而ViT中是先进行Norm再进行的注意力机制,最后执行Add操作。MSA的计算量和N2成正相关(patch size越大,分的块大,N越小,计算量越小)。

在执行Multi-Head Attention后,该模型再执行了一个MLP,具体为两层线性层,在第一层线性层后,增加了一个Rule激活操作,第二次不使用激活函数,公式如下。
M L P ( x ) = m a x ( 0 , R e l u ( x w 1 + b 1 ) ) w 2 + b 2 MLP( x ) = max( 0 ,Relu( xw1 + b1) ) w2 + b2 MLP(x)=max(0,Relu(xw1+b1))w2+b2
其中间隐藏层将D所以最终得到的D与原D相同。

最终对class token对应的输出做layer norm,然后就可以进行图像分类。

4.总结

ViT模型的超参数主要包括以下,这些超参数直接影响模型参数以及计算量:

  1. Layers:block的数量;
  2. Hidden size D:隐含层特征,D在各个block是一直不变的;
  3. MLP size:中间增大的倍数,一般设置为4D大小;
  4. Heads:MSA中的heads数量,一般为12或16;
  5. Patch size:模型输入的patch size,ViT中共有两个设置:14x14和16x16,这个只影响计算量;

在最终的实验中发现,ViT在数据量达到100M时,对比CNN才能显示它的优势。在模型与数据量提升时,性能会持续提升,显示了它的可拓展性,从后有了GPT和CLIP。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值