Advertisement

读论文——ViT(Transformer跨界CV)

阅读量:

第一遍

标题

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

作者

Alexey Dosovitskiy 谷歌研究院 大脑团队

摘要

复制代码
1. 目前位置,注意力机制在计算机视觉中使用得不够充分
2. 在图片分类任务上,用于图片块序列的纯transformer框架可以表现更好
3. 通过在大的数据集上进行预训练,可以迁移学习到多个中小型图像识别基准

结论

复制代码
1. 不再是仅仅使用自注意力模块对视觉任务进行处理,而是在将图片变成patch序列后,直接使用transformer框架,在大的数据集上可以超过CNNs的表现。简单、可拓展、相对便宜。
2. 展望:1. 将ViT用于目标检测和语义分割 2. 拓展自监督预训练方法 -

介绍

复制代码
1. 

CV中之前的工作,局部使用注意力,在特征图中使用自注意力;全局使用注意力,local-attention(按照CNNs的想法,对图片局部使用attention),axis-attention(在宽和高两个维度上使用注意力)。

复制代码
2. 

本文将16×16个像素作为一个patch,将一个patch看作是一个词,进行类似BERT的处理方式

复制代码
3. 

由于ViT缺乏归纳偏置(先验知识),在较小数据集(ImageNet)上,ViT表现不如ResNet。1)translation equivariance(平移变化不变性,一层理解,由于卷积核在图片上滑动的特征提取器,那么无论特征出现在图像哪里,都可以提取出来;二层理解,由于特征图中的特征核图像中特征是相对应的,因此在上面继续进行卷积和池化操作,并不会破坏图像提取出来的信息,即卷积和池化操作是可以部分顺序的。) 2)locality。卷积核一次提取图像某个局部的信息,背后的含义是图像中相邻像素表达的是一个特征。

复制代码
4. 

ViT在大的数据集上(JFT 300M)表现超过了所有其他模型

第二遍

重要图表

图1
在这里插入图片描述

表1
在这里插入图片描述

表2
在这里插入图片描述

图2
在这里插入图片描述

图3
在这里插入图片描述

图4
在这里插入图片描述

图5
在这里插入图片描述

图6
在这里插入图片描述

图7
在这里插入图片描述

第三遍

相关工作

方法

3.1 ViT

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JlYgfilV-1638429128961)(C:\Users\nabai\Documents\markdown图片\image-20211201215154137.png)]

将图片变成patch embedding,图片 x \in \mathbb R^{H \times W \times C}转换为图像块x_p \in \mathbb R^{N \times (p^2 \cdot C)}

一般对于图像分类中224 × 224 × 3的图片,变成图像块就是196 × 768

为了保持和BERT更大的相似性,patch embedding中也加入了[class]token,z_0^0 = x_{class},经过L个transformer后,输出为z_L^0

整个流程公式表示为:
\begin{array}{rll} \mathbf{z}_{0} & =\left[\mathbf{x}_{\text {class }} ; \mathbf{x}_{p}^{1} \mathbf{E} ; \mathbf{x}_{p}^{2} \mathbf{E} ; \cdots ; \mathbf{x}_{p}^{N} \mathbf{E}\right]+\mathbf{E}_{\text {pos }}, & \mathbf{E} \in \mathbb{R}^{\left(P^{2} \cdot C\right) \times D}, \mathbf{E}_{\text {pos }} \in \mathbb{R}^{(N+1) \times D} \\ \mathbf{z}_{\ell}^{\prime} & =\operatorname{MSA}\left(\operatorname{LN}\left(\mathbf{z}_{\ell-1}\right)\right)+\mathbf{z}_{\ell-1}, & \ell=1 \ldots L \\ \mathbf{z}_{\ell} & =\operatorname{MLP}\left(\operatorname{LN}\left(\mathbf{z}^{\prime} \ell\right)\right)+\mathbf{z}_{\ell}^{\prime}, & \ell=1 \ldots L \\ \mathbf{y} & =\operatorname{LN}\left(\mathbf{z}_{L}^{0}\right) & \end{array}

MSA表示多头自注意力层

混合框架

先通过ResNet等卷积神经网络得到14×14特征图,然后再利用transformer结构。这种结构在数据量较小时,相较于ResNet和纯transformer都要好,相当于结合了这两者的优点,一个具有归纳偏置,一种具有全局注意力。

3.2 微调和更大的分辨率

当预训练模型在一个具有更高分辨率的图像上微调,如果保持图像块大小不变,那么图像块序列长度必然会增加,虽然transformer可以允许序列变长,但是之前预训练的位置编码可能就失去了意义 。因此,这里采用了二维插值 ,根据预先训练好的position embedding嵌入到原始图像中。

实验

4.1 模型训练

在这里插入图片描述

训练了三种不同规模的ViT

4.2 模型比较

在这里插入图片描述

模型全面刷榜,而且训练时间相对也减少了

4.3 预训练数据要求

在这里插入图片描述

可以发现,随着数据的增加,卷积网络性能慢慢落后于ViT

4.5 ViT原理探究

在这里插入图片描述

如图可以看出,在图片分类任务中,自注意力机制缺失让模型注意到图片中需要识别的物体。
在这里插入图片描述

如左图可知,transformer结构也可以学习图片中,颜色或者纹理等信息。

中间图不同图像块的位置编码的余弦相似度,可以发现对应位置的行和列能够具有更高的关注度。

右图表示在特征图中,相互关联像素点之间的距离,可以发现在靠近图像的一些层,关注距离是有大有小的,随着网络层数加深,注意力机制开始关注距离较远的特征(由此可以假设,模型的深度建模能力增强了,能够表达更深的语义信息)。

4.6 自监督

BERT得益于MLM、NSP等无监督训练方法,具有很强的学习能力,因此作者希望找到一种针对图像的高效地无监督学习。

小结

  1. 本文是2020-2021期间的transformer跨界CV的重要论文,主要思想就是将图片变成图片块,然后变成类似token embedding形式,可以直接输入到类似BERT架构中,然后在大规模数据集上继续预训练可以得到很不错的效果。
  2. 表明着一方面transformer还没有达到性能的极限,另一方面也为CV和NLP大一统埋下了伏笔。
  3. 顺带一提,论文中还尝试多种不同的位置编码,但是对最终性能没有很大影响,因此论文中依然保留了一维的位置编码,侧面也表达了自注意力机制对位置的不敏感,可以对图片进行全局建模。

全部评论 (0)

还没有任何评论哟~