初识 CV Transformer 之《ViT》论文精读

举报
lutianfei 发表于 2021/06/25 15:50:47 2021/06/25
【摘要】 题目:An Image is Worth 16x16 Words:Transformers for Image Recognition at Scale作者: Alexey Dosovitskiy, Lucas Beyer, Alexander Kolesnikov,Dirk Weissenborn, Xiaohua Zhai …单位: Google Brain发表会议及时间: ICLR20...

题目:An Image is Worth 16x16 Words:Transformers for Image Recognition at Scale
作者: Alexey Dosovitskiy, Lucas Beyer, Alexander Kolesnikov,
Dirk Weissenborn, Xiaohua Zhai …
单位: Google Brain
发表会议及时间: ICLR2021

论文泛读

研究背景

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

Transformer基本结构
image.png

Transformer的优势

  1. 并行计算

image.png

  1. 全局视野
  2. 灵活的堆叠能力

ViT和ResNet Baseline 取得了不相上下的结果
image.png

ImageNet等: 数据集名称
JFT: 谷歌闭源数据集, 规模是ImageNet的30倍左右
ViT-H/14: ViT-Huge模型, 输入序列14x14
BiT : 一个大ResNet进行监督+迁移学习的模型
Noisy Student: 一个半监督学习的EfficientNet-L2
ViT-H/14: ViT-Huge模型, 输入序列14x14

研究意义

• 展示了在计算机视觉中使用纯Transformer结构的可能
• 拉开了这一轮Transformer研究热潮的序幕

摘要核心

  1. Transformer在NLP中已经成为经典
  2. 在CV中,Attention机制只是作为一个补充在使用
  3. 我们使用纯Transformer结构就可以在图像分类任务上取得不错的结果
  4. 在足够大的数据集上训练后,ViT可以拿到和CNN的SOTA不相上下的结果

论文精读

ViT结构
image.png

• The Architecture
• Follow the original Transformer
• 实际上只使用了Transformer的Encoder
• Transformer的scale能力强
• 其 实现简单

Attention 一切的开始

背景介绍——以机器翻译为例

image.png

image.png

Attention 背后的直觉:
并不用完全编码
一个翻译至于有限的几个词有关

image.png

Attention示意图
image.png

Attention计算——本质相似性计算
image.png

Attention优点:

  1. 并行计算

image.png

  1. 全局视野
    image.png

MultiHead-Attention

Self Attention

Self Attention计算:实际上是在进行相似度计算,即计算每个q和每个k的相似度
公式: A t t e n t i o n ( Q , K , V ) = s o f t m a x ( Q K T / d k ) V Attention(Q,K,V)=softmax(QK^T/\sqrt d_k)V

image.png

image.png

Q,K,V都是什么?
Query: 查询, 询问
Key: 键值, 关键词
Value: 价值, 数值

image.png

image.png

为什么点积可以表示相似性?

q 1 k 1 = q 1 × k 1 × c o s q_1\cdot k_1 = \| q_1\| \times \| k_1\| \times cos

q 1 k 2 = q 1 × k 2 × c o s q_1\cdot k_2 = \| q_1\| \times \| k_2\| \times cos

image.png

New value的意义是什么?
单词意义->句中意思的转化

image.png

计算可以矩阵化并行
image.png

image.png

MultiHead Attention
有多个Wq,Wk,Wv上述操作重复多次结果concat一起
image.png

Why MultiHead Attention?
答:给注意力提供多种可能性。

image.png

Transformer Encoder

image.png

输入端适配

直接把图片切分,然后编号输入网络即可。

image.png

位置编码

图像切分重排后失去了位置信息
并且Transformer的内部运算是空间信息无关的,所以需要把位置信息编码重新传进网络
ViT使用了一个可学习的vector来编码,编码vector和patch vector直接相加组成输入

image.png

为什么直接相加,而不是concat?
因为相加是concat的一种特例。

数据流

实验设置及结果分析

大规模使用Pre-Train
先在大数据集上预训练, 然后到小数据集上Fine Tune
迁移过去后, 需要把原本的MLP Head换掉, 换成对应类别数的FC层(和过去一样)
处理不同尺寸输入的时候需要对Positional Encoding的结果进行插值。

实验结果

image.png

ImageNet等: 数据集名称
JFT: 谷歌闭源数据集, 规模是ImageNet的30倍左右
ViT-H/14: ViT-Huge模型, 输入序列14x14
BiT : 一个大ResNet进行监督+迁移学习的模型
Noisy Student: 一个半监督学习的EfficientNet-L2
ViT-H/14: ViT-Huge模型, 输入序列14x14

实验分析

ViT的性能需要大量的数据
不然ViT Large的性能无法充分发挥

image.png

结果分析

Attention距离和网络层数的关系
Attention的距离可以等价为Conv中的感受野大小
可以看到越深的层数, Attention跨越的距离越远
但是在最底层, 也有的head可以覆盖到很远的距离
这说明他们确实在负责Global信息整合

image.png

Attention 可视化

image.png

论文总结

关键点

  • 模型结构——Transformer Encoder
  • 输入端适配——切分图片再重排
  • 位置编码——可学习的vector来表示

创新点

  • 纯Transformer做分类任务
  • 简单的输入端适配即可使用
  • 做了大量的实验揭示了纯
  • Transformer做CV的可能性。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。