【論文確認(Vision Transformer)】An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale

f:id:lib-arts:20210126203022p:plain

以前の記事でTransformerを画像認識に取り入れた研究であるVisual Transformersの論文を確認しましたが、今回はCNNを用いずにTransformerだけで取り組んだ研究として、Vision Transformerについて取り扱います。

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

以下、目次になります。

1. Vision Transformerの概要(Abstract、Introductionの確認)
1-1 Abstractの確認
1-2 Introductionの確認
2. 論文の重要なポイントの抜粋
2-1 Related work(Section2)
2-2 Method(Section3)
2-3 Experiments(Section4)
2-4 Conclusions(Section5)
3. まとめ


1. Vision Transformerの概要(Abstract、Introductionの確認)
1-1 Abstractの確認
1-1節ではAbstractの内容を確認しながら概要について把握します。以下一文ずつ和訳とともに解説を行います。

While the Transformer architecture has become the de-facto standard for natural language processing tasks, its applications to computer vision remain limited. In vision, attention is either applied in conjunction with convolutional networks, or used to replace certain components of convolutional networks while keeping their overall structure in place.

和訳:『Transformerの構造がNLPのタスクに対してデファクトスタンダードになる一方で、コンピュータビジョンへの応用に関してはこれまでは限定的なままである。コンピュータビジョンの分野においては畳み込みネットワークと同時に用いられるか一部代替的に用いられるかにとどまってきた。』
解説:『自然言語処理(NLP)分野におけるTransformerの成功について言及すると同時に、画像への適用はそのポテンシャルがまだ生かせていないことについて言及がされています。基本的にはTransformerがCNNと同時に利用され、Transformerを単体で用いたこの研究について強調するための前置きとしてこちらは記載がされています。』

We show that this reliance on CNNs is not necessary and a pure transformer applied directly to sequences of image patches can perform very well on image classification tasks.

和訳:『我々の研究では、「CNNと組み合わせることは必ずしも必要ではなく、Transformer単体で画像のパッチの系列に直接的に用いるだけでも画像分類のタスクがうまくいくこと」を示した。』
解説:『研究のメインテーマとして、Transformer単体での画像認識への取り組みについて言及されています。こちらについてはTransformerが"Attention is All You Need"とされ、RNNなどから切り離して用いられたのと同様な文脈で把握しておくのが良いかと思います。』

When pre-trained on large amounts of data and transferred to multiple mid-sized or small image recognition benchmarks (ImageNet, CIFAR-100, VTAB, etc.), Vision Transformer (ViT) attains excellent results compared to state-of-the-art convolutional networks while requiring substantially fewer computational resources to train.

和訳:『大規模データにおける事前学習と中小規模のデータにおける転移学習を行う際に、Vision Transformer(ViT)はCNNのSotAの研究と同様の成果をより少ない計算リソースで達成した。』
解説:『Vision Transformerの研究の実験結果について言及がされています。結果そのものの評価も重要ですが、Transformerベースのニューラルネットワークの可能性を示したとも認識しておくと良いのではないかと思います。』


1-2 Introductionの確認
1-2節ではIntroductionの確認を行っていきます。

f:id:lib-arts:20210127153510p:plain

第一パラグラフでは、自然言語処理(NLP; Natural Language Processing)分野におけるself-attentionに基づいた構造であるTransformers(Vaswani et al., 2017)について紹介がされています。一般的な文脈としてのTransformerの記載なので、この論文では流して良い記述だと思います。

f:id:lib-arts:20210127154340p:plain
第二パラグラフでは、コンピュータビジョン分野におけるこれまでの研究が紹介されており、LeCunのCNNからAlexNet(Krizhevsky et al., 2012)、ResNet(He et al., 2016)などのエポックメイキングなCNNに関連する研究や、self-attentionを導入したCNN-likeなネットワーク構造の研究などが紹介されています。self-attentionを用いた研究は計算効率の面で最適化できていないため、大規模な画像識別ではResNetライクなネットワークがいまだにSotAを維持していると言及されています。

f:id:lib-arts:20210127154701p:plain

第三パラグラフでは、この研究ではNLP文脈におけるTransformerのスケールアップを参考にしつつ、Transformerを直接画像に適用することを試みたと記載されています。これを実現するにあたって、画像をパッチ(patches)に分割し、Transformerの入力系列を作成したとされています。この時の画像のパッチ(Image patches)は言語処理におけるtoken(単語)と同じ取り扱いをしたとされています。この辺はWord2vecなどで出てくるtokenと同じ意味として理解しておけば十分です。

f:id:lib-arts:20210127155123p:plain

f:id:lib-arts:20210127155138p:plain

f:id:lib-arts:20210127155616p:plain

第四パラグラフや第五パラグラフでは、パフォーマンスについて言及されています。詳しくは表を元に確認する方がわかりやすいのでここでは省略します。


2. 論文の重要なポイントの抜粋
2-1 Related work(Section2)

f:id:lib-arts:20210127160031p:plain

(中略)

f:id:lib-arts:20210127160109p:plain

(以下省略)
TransformerやBERT、GPT、Visual Transformer、iGPTなどが言及されています。該当研究には色付けを行いましたので、気になる方は都度参照いただけたらと思います。


2-2 Method(Section3)

f:id:lib-arts:20210127162022p:plain

Section3-1の"Vision Transformer(ViT)"では、数式を元にViTの処理の概要について解説されています。まずEq.2〜Eq.4はTransformerの処理と基本的に同様で、MSAはMulti-Head Attention、MLPはMulti-Layer Perceptron、LNはLayer Normalizationをそれぞれ表しています。Eq.1はViTで導入された処理ですが、P^2 \cdot C次元で表されるそれぞれのパッチをD次元に変形するような埋め込み行列のEを設定したと理解しておくと良いです。また、Nはパッチの枚数を表しているため、N=HW/P^2のように、入力画像の縦横の積をパッチの縦横の積で割ることでNを計算することができることも抑えておくと良いです。Cについてはチャネル数を表しているので、RGBなら3、白黒画像なら1となることも抑えておきましょう。

f:id:lib-arts:20210127163258p:plain

処理の流れはFigure.1で図式化されています。数式と左図を見比べながら理解すると良いかと思います。

f:id:lib-arts:20210127180552p:plain

Section3-2の"Fine-Tuning and Higher Resolution"では、FineTuningなどについて考察が行われています。


2-3 Experiments(Section4)

f:id:lib-arts:20210127181107p:plain

f:id:lib-arts:20210127181124p:plain

まず、ViTのネットワークの構造ですが、基本的にはBERTの設定を踏襲しBaseとLargeを作成したとされています。Section3-1のEq.1のEのサイズを変えることでHidden sizeのDを変更できることを抑えておけば、BERTと同様な設定をそのまま使えることは理解しておくと良いかと思います(ViT-Base、ViT-Large)。さらに、より大きなネットワークとしてHuge(ViT-Huge)も用意したとされています。ここで、後述するTable.2などで用いられている表記のViT-L/16の見方として、ViT-Largeにおいてパッチのサイズが16×16というのをViT-L/16で表しているということは抑えておきましょう。

f:id:lib-arts:20210127182013p:plain

f:id:lib-arts:20210127182026p:plain

f:id:lib-arts:20210127182113p:plain

次に、Table.2の結果を確認します。データセットとしてI21K(ImageNet-21k)やJFTを用いて事前学習(pre-training)を行なった後に、各種タスクで転移学習(transfer the models trained)を行なったとされています。結果としては、JFTを用いて学習させたViT-Hugeのパッチサイズ14×14を用いることで、BiT-L(ResNet152×4)を上回ることができたと記載されています。

Section4では他にも様々な記載がされていますが、一通りの流れの確認が主目的であるため今回はここまでにできればと思います。


2-4 Conclusions(Section5)
これまでの内容のまとめのため省略します。


3. まとめ
今回はVision Transformer(An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale.)の論文の確認を行いました。BERTと同じ発想を用いて画像認識ができるように、P \times Pのパッチを用いてそれぞれに埋め込み行列(Embedding matrix; E)を作用させることで系列を作成した、というのが基本的な処理の概要であると理解できれば十分かと思います。