ViT(Vison Transformer)学习

Paper:An image is worth 16×16 words: transformers for image recognition at scale. In ICLR, 2021.

Transformer 在 NLP领域大放异彩,并且随着模型和数据集的不断增长,仍然没有表现出饱和的迹象。这使得使用更大规模的数据对Transformer结构进行训练得到表现更优的模型成为了一种解决问题的方案。受 NLP 中 Transformer 成功的启发,作者尝试将标准 Transformer 直接应用于图像,并进行尽可能少的修改。为此,作者将图像拆分为补丁,并提供这些补丁的线性嵌入序列作为 Transformer 的输入。 在 NLP 应用程序中,图像补丁的处理方式与标记(单词)相同。 并以监督方式训练图像分类模型。

模型概述

image-20210701092752310

主要流程如下:

  • 将图像分割成固定大小的块,作为三维张量
  • 将三维张量向量化为一维序列
  • 对一维序列采用共享参数的Dense层进行嵌入
  • 将线形层输出结果进行位置嵌入编码,输入给多层Transformer叠加的 Transformer Encoder 进行编码
  • 对编码结果进行 Softmax,以输出作为分类矩阵

张量向量化

image-20210701112205853

将分割的图像块张量扁平化为向量

对向量进行嵌入

采用Dense层对向量进行嵌入

image-20210701112247321

同时,所有的 Dense 层共享参数信息

image-20210701112308252

对 embedding 进行位置编码

image-20210701112352794

即对位置信息进行编码并与 embedding 进行加和

使用Transformer Encoder 进行处理

image-20210701112511362

将编码结果输入多层堆叠的 Transformer,并最终使用 [CLS] 的输出作为分类结果

大数据集预训练

image-20210701112531315

模型在大规模数据集上进行预训练,在目标数据集上进行 finetuning ,并最终在目标数据集的测试集上进行测试

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐