极简笔记 An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale

极简笔记 An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale

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

本文是第一篇将Transformer结构运用在图像分类任务的paper,方法叫做ViT(vision transformer)
极简笔记 An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale_第1张图片
做法也非常的简单,把输入图片切成多个patch,然后将各个patch拉成向量加上position embedding输入到transformer结构中去。具体做法公式如下:
极简笔记 An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale_第2张图片
其中 x i x_i xi是第i个patch的输入,先经过一层投影变换 E E E转化成 D D D维向量。同时输入需要加上一个class token在第一位(可学习的参数向量),以及learnable position embedding(每个位置有一个可学习参数向量,注意不是相对位置),输入序列长度为 N + 1 N+1 N+1 N N N是patch总个数。另,上式中LN是layer norm,MSA是multi-head self-attention,MLP是多层感知机(fc层)

实验部分,个人比较看重的两个实验:
极简笔记 An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale_第3张图片
上图说明CNN+Transformer形式比单纯的CNN或单纯的Transformer要好,以及ViT-L/32比ViT-L/16切分了更多的patch但是性能会下降。以上两个结果一定程度可以说明局部特征提取CNN比Transformer更加高效,过度切分会造成局部特征提取困难从而损害性能。
极简笔记 An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale_第4张图片
Table 8说明position embedding很重要,会比没有强,但是在这里1D,2D,relative pos embedding都没有明显区别。个人观点是以为分类问题是全局性的预测,所以相对位置与绝对位置编码效果差不多,如果是pixel-level的任务可能会有更加明显的区别
极简笔记 An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale_第5张图片
学得的position embedding的向量之间的cosine similarity,可以看到其实学的并不是非常完美。上图中的每一小块代表当前位置的vector和其他位置的vector的相似度,可以看到并不是单峰响应,而是会有网格状的效果,说明与理想的位置编码还有差距。

你可能感兴趣的:(极简笔记)