[论文评析] ICLR,2021,An image is worth 16x16 words-transformers for image recognition at scale

An image is worth 16x16 words-transformers for image recognition at scale


论文题目:An image is worth 16x16 words-transformers for image recognition at scale
单位:Google Research, Brain Team

贡献

1.是将Transformer应用到Image classification任务的第一篇研究工作;
2.当前CV这块,CNN架构是主流, 这篇文章所提出的Vision Transformer (ViT)在Image classification任务上取得了很好效果, 证明了CNN并不是CV任务所必须的

Vision Transformer

在这里插入图片描述
如图展示的是将Transformer应用于image任务上的一个示意图,

由于Transformer最早是在NLP领域中被提出的,其输入为向量序列, 即Sequence of tokens/vectors, 为了把Transformer用到CV中,肯定要先对Image做一些处理,使其与Transformer的输入格式相匹配。怎么做呢?

首先通过网格化把image转化为固定大小的patches (即得到sequence of patches), 然后把每个patch拉成一个向量,再经过Linear projection (实际上就是通过矩阵乘法来改变token的维度), 最终得到Sequence of Vectors/Tokens。

上述过程的形式化定义如下:

假设输入 X ∈ R H x W x C X \in R^{H {\rm x} W {\rm x} C} XRHxWxC,
X ^ = R e s h a p e ( X , P ) \hat{X}=Reshape(X, P) X^=Reshape(X,P), X ^ ∈ R H W P 2 x P x P x C \hat{X} \in R^{\frac{HW}{P^{2}} {\rm x} P {\rm x} P {\rm x} C } X^RP2HWxPxPxC, P P P为每个Patch的大小, 每个Patch 的size为 R P x P x C R^{P {\rm x} P {\rm x} C} RPxPxC.
X ^ f l = F l a t t e n ( X ^ ) \hat{X}_{fl}=Flatten(\hat{X}) X^fl=Flatten(X^), X ^ f l ∈ R H W P 2 x ( P 2 C ) \hat{X}_{fl} \in R^{\frac{HW}{P^{2}} {\rm x} (P^{2}C) } X^flRP2HWx(P2C)
X e m b e d = L P ( X ^ f l , D ) X_{embed}=LP(\hat{X}_{fl}, D) Xembed=LP(X^fl,D), X e m b e d ∈ R H W P 2 x D X_{embed} \in R^{\frac{HW}{P^{2}} {\rm x} D} XembedRP2HWxD

最终得到的 X e m b e d X_{embed} Xembed每一行即为一个token,对应一个Patch, Patches的总数为 H W P 2 \frac{HW}{P^{2}} P2HW.


Transformer在CV中应用 (即Vision Transformer) 具体过程:
假设一个Figure经过网格化以及投影最终的尺寸为: [L, D e m d D_{emd} Demd], 其中L为Patches的数量,实际上就等于 H W P 2 \frac{HW}{P^{2}} P2HW, D_{emd}为每个Patch嵌入的维度,即上面的 D D D.

由于MHA输入输出尺寸相同, 因此,每个Self-Attention输出的尺寸为:[ L L L, D h D_{h} Dh], D e m d = D h ⋅ N h D_{emd} = D_{h} \cdot N_{h} Demd=DhNh, N h N_{h} Nh为heads的数量, 对于每个head, 通过Linear projection把X映射到 D h D_{h} Dh维的空间,得到 Q h , K h , V h Q^{h}, K^{h}, V^{h} Qh,Kh,Vh, 然后基于 Q Q Q K K K来计算patches投影子空间的相似度,然后对依据该相似度对 V V V进行加权得到第 h h h个head的输出, 尺寸为:[ L L L, D h D_{h} Dh], 把 N h N_{h} Nh个这样的输出聚合, 尺寸为:[ L L L, D e m d D_{emd} Demd], 然后在经过Linear projection得到最终输出: [ L L L D e m d D_{emd} Demd],

所谓的网格化Patches仅仅是为了得到sequence of tokens以匹配MHA的输入个数


上述Patch Embedding存在的一个问题是:在将image转化为Patches的过程中,丢失了Patches之间的位置信息, 为了保持输入中缺失的信息,作者提出所谓的Positing Embedding, 即对Patches间的相对位置进行编码,然后将其加到 X e m b e d X_{embed} Xembed中, 最终就得到带有位置信息的Sequence of tokens.


接下来将其Feed进Transformer, Transformer的介绍请参见, 最终Transformer的输出尺寸不变,依然为 R H W P 2 x D R^{\frac{HW}{P^{2}} {\rm x} D} RP2HWxD,

后面可以连接具体的任务网络执行具体的任务。

点评

这篇论文并没有提出新的模型, 新的优化算法, 只是将NLP中的Transformer应用到了CV中一个新的的任务场景:image classification, 实际上是拓展了Transformer的应用范围。

总结

Reference

1.ICLR,2021-An image is worth 16x16 words-transformers for image recognition at scale

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

MasterQKK 被注册

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值