— order: 8 —1 An Image is Worth 16x16 Words: Transformers for ImageRecognition at Scale)时间:2020.10ViT: Vision TransformerViT 是过去一年 CV 最有影响力的工作1.推翻了 2012 Alexnet 以来 CNN CV 的统治地位2.有足够多的预训练数据,NLP Transformer 直接搬运到 CV效果也很好(模型迁移)3.打破 CV NLP 的壁垒,给 CV多模态 挖坑1.1 标题 & 摘要原本的 CVAttention + CNN, or Attention 替换 CNN components 但依然保持 CNN 整体结构,但现在是完全的 Transformer标题的意思:每一个方格都是1616大小(patch) Transformer 去做大规模的图像识别摘要中说计算资源消耗少是相对的概念,实际上还是很大(凡尔赛)1.2 引言 & 相关工作Transformers 是目前 NLP 必选模型,主流方式是 BERT 提出的在大规模数据集预训练,在特定领域小数据集做微调。即使在5300亿参数的模型中也还没看到饱和现象Transformer 应用在 CV 的难点:计算复杂度是𝑂(𝑛2)224分辨率的图片,有50176个像素点(2d 图片 flatten),序列长度是 BERT的近100于是自然的想法是,先用卷积抽特征,把变小的特征图再送进 Transformer CVPR Wang et al. 2018, Local Network另外一种思路是把卷积层整个替换(换句话说,ViT 并不是首个用 Attention 完全替换 CNN 的):1.stand-alone attention 孤立自注意力:用 local window 控制 transformer 的计算复杂度(类似卷积也有 locality2.axial attention 轴注意力:复杂度来自于𝑛=𝐻𝑊,于是可以用2 1d 自注意力,先把 2d 矩阵拆分为两个 1d 向量,再分别𝐻𝑊做自注意力但是这种特殊 Attention 不够通用,因此还没能规模做大 ViT 这篇论文就是把图像分成1616 patch然后直接送进 Transformer这样就能规模化了。这个思路很简单,之前也有人做过,但区别在于 ViT 团队更有钱,之前那篇工作只在 CIFAR-10 上做了22 patch结果:在同等规模下,ViT ResNet 还是弱不少,因为少了归纳偏置(inductive bias)即人为结构性先验知识(比如卷积的 locality translation equlity);但是在大规模下能比 ResNet 相当或更强相关工作章节里还涉及到其它的一些,这里就不展开了1.3 方法模型总览图把图片切成 patch过一个全连接层,然后加上(相加而非连接)可学习的 position encoding(借鉴 BERT加了个 extra token然后送进 Transformer Encoder用这个 extra token 输出的特征过一个 MLP 来做分类Positional Encoding: 1d, 2d, relative1d, 2d, relative 均可,按理说 2d 更符合图像设定,但消融实验结果差不多1d 位置编码:图上画的是 1234 这种数字,但实际上类似于一个表,每个对应一个𝐷维向量2d 位置编码:横纵坐标各用𝐷2的向量表示,然后 concat 起来相对位置编码:顾名思义用相对位置查表如何分类以前的 CNN 都是得到多个通道的特征图之后,做个 global average pooling 得到一个向量,然后预测特征,这里其实也可以这么做这里采用 BERT 那种额外 <cls> 的方法,其实效果都差不多,不过作者为了更接近原始 Transformer 用了这种方式(不想让人觉得效果好是针对 CV 的某些 trick 带来的)关于 fune-tunetransformer 是可以微调变长数据的,但是 ViT 由于用了学习的位置编码,这导致如果 patch size 不变的话,序列长度变化会使得位置编码不够用了,这时做个简单的上采样/差值可以一定程度解决问题1.4 实验几个模型与命名ModelLayersHidden size𝐷MLP sizeHeadsParamsViT-Base1276830721286MViT-Large241024409616307MViT-Huge321280512016632M最重要的图:在小的数据集上 ViT 不如 ResNet在大数据集上相近 CNN 大模型比,分数都很高,而 Transformer 训练成本相对低一些自监督实验遮住某个 patch 去预测效果还可以,但比有监督预训练还是差了不少。后来 MAE 使用自监督来训练 ViT 效果非常好1.5 结论和其它 self-attention in CV 的工作不同:除了将图片转成1616patches + 位置编码之外,没有额外引入图像特有的 inductive bias好处是不需要对 vision 领域的了解,不需要 domain knowledgeNLP 中大的 Transformer 模型使用自监督预训练,ViT 做了简单的 initial experiments 证明自监督预训练也不错,但和有监督训练 stilllarge gap挖坑新模型 ViTTransformer 成为 CV 领域的一个通用的骨干网络(backbone)新问题 —— Transformer for CV 除了 image classfication 其他的任务,分割、检测新方向 —— 自监督的预训练方式;以及多模态,用一个 Transformer 处理 CV NLP InfoDETR (Carion et al. 2020) 目标检测的力作,改变了目标检测出框的方式。证明 ViT 做其它 CV 任务效果也很好2020 12 (ViT 1.5月之后)1.ViT-FRCNN 检测 detection2.SETR 分割 segmentationCVPR 论文,11.15 完成写作投稿)3.3个月后)Swin Transformer 融合 Transformer 和多尺度设计作者团队自己:ViT-G ViT 变得很大,把 ImageNet 刷到90%+