見出し画像

今更ながら Vision Transformer 論文を読む【1画像=16x16単語?】

2020年,「An image is Worth 16x16 Words (1枚の画像は 16x16 の単語に相当する)」という衝撃的な論文が arXiv に公開されました.

(リンクは 2021年の学会発表の方に貼っています.論文に加えて動画での説明なども見られます)

これが,その後のコンピュータービジョンを大きく変えることになる Vision Transformer を発表した論文です.
とはいえ,画像が複数(×複数)の単語に相当するとは,ちょっと理解に苦しみます.今回の記事では,論文を深掘ってみようと思います.


1. Vision Transformer ができるまで

時代背景

(脚色していますがだいたい 1. Introduction に対応しています)

この論文が公開されたのは 2020 年の 10 月,謎の新型ウィルスが猛威をふるっていた時でした.AI の分野では,深層学習を用いた画像認識が「使える」ということがかなり広く認識されたころだと思います.自分が研究している地球科学(というコンピューターサイエンスからは遠く離れた)分野でも,深層学習を用いた画像認識の研究が盛り上がり始めたのがこの頃でした.

一方で,画像処理と並んでもう一つの主要なテーマである自然言語処理においても発展が続いていました.Google や DeepL などによる翻訳が自然な文章になったのがこの頃だったと記憶しています.

ここで著者らが着目したのが,画像認識と自然言語処理で全く異なる構造が使われているということでした.扱う対象が画像と言語で全く違うのだから異なる構造を使っても良い,と考えてしまいそうですが,「良い深層学習モデルの構造は画像も言語も精度よく認識できるはずだ」と考えた著者らの目の付け所がシャープでしたね.

画像認識の分野では,畳み込みニューラルネットワーク (Convolutional Neural Network, CNN) と呼ばれる構造が広く使われていました.
CNN の詳しい説明は省きますが,画像にフィルターをかけて局所的な特徴を抽出するネットワークです.

CNN の主役「畳み込み層」の役割を説明する図.入力画像(左)にフィルター(中央)をかけて,特徴マップ(右)を得ます.出典:LeCun et al. (1989) [Link]

一方自然言語処理の世界では,2017 年に "Attention is All You Need" という(これまた衝撃的な)タイトルで発表された Transformer という構造が主流になっていました.

Transformer の登場

当時は機械翻訳が主要な研究テーマの一つでした.ここでは以下の文を考えてみましょう.

  • I have the right to vote. (私は投票の権利がある)

  • Turn right at the next corner. (次の角を右に曲がってください)

Right という単語には複数の意味があるので,文脈を考えて適切な訳語をあてなければいけません.学校で,「英語は単語の意味を暗記するだけではダメ」と習った人もいるかもしれませんが,機械だってそうなのです.

では,right の意味を考えるとき,人間はどこに着目していたでしょうか?
上の文であれば,vote という単語が「権利」とセットで使われやすいですよね.直前の have もヒントになるかもしれません.
一方,下の文であれば,turn や corner が「右」という訳にたどり着くヒントになります.

これを機械でも処理できるようにしたのが Transformer です.
Transformer では,それぞれの単語(より厳密には「トークン」)について,すべての単語との関連度を調べます.そして,「どの単語との関係に注意するべきか」を踏まえて意味を推測します.
自然言語処理の世界では,Transformer が高い精度を発揮するということが示されました.であれば,画像認識においても Transformer の構造を使えば高い精度を示すのではないか,という仮説を著者たちは立てました.

革命前夜

(だいたい 2. Related Work に対応しています)

画像認識に Transformer 的な構造が使えないかという研究は,この論文の以前からも行われていました.カギになったのは Transformer を画像の処理にどのように応用するかでした.自然言語であれば,文章をトークンに分割して処理していました.画像はどのように分割するのが良いのでしょうか?

すぐに思いつくのは,画像をピクセルごとに分割してしまおうという案です.ただ,これでは計算量があまりに膨大になるため,現実的ではありません.そこで先行研究では,画像の局所的な範囲に限定して Attention 機構を適用するという手法が検討されてきました.

また,CNN と Transformer を組み合わせたハイブリッドな手法も検討されていました.例えば,CNN の出力を Attention 機構に入力する手法は,画像分類や物体検出,動画処理など様々な分野に応用され,一定の成果を挙げていました.

これに対し,本論文では画像をいくつかのパッチに分割して Transformer の入力とすることで,CNN のモデルと同程度,あるいは CNN を上回る精度を達成しました.CNN とのハイブリッドな手法も様々な論文で検討されていた中で,Transformer の構造をなるべくそのまま適用することが高精度につながるということを示したのが本研究の大きな成果かと思います.

2. Vision Transformer とは

(主に,3.1 Vision Transformer (ViT) に対応しています)

Vision Transformer の構造を下に示します.

Vision Transformer の構造.論文の Figure 1 より

Vision Transformer ではまず,入力画像をいくつかのパッチに分割します.論文タイトルにある「16 x 16」は,この分割プロセスに由来しています.図では簡単のため 3 x 3 に分割していますが,実際のモデルでは 16 x 16 等のより細かな分割が検討されています.

それぞれのパッチは,線形変換によって1次元のベクトルに変換されます.この線形変換の重みは学習によって更新することが可能です.これに全体画像中での各パッチの位置情報を追加します(上の例では,左上から右下に向かって 1~9 としています).

これに加えて,[class] token というものが導入されています(図中で (0, *) の対で示されているものです).これは自然言語処理の BERT などでも利用されていたもので,Transformer エンコーダーの出力のうち,この [class] token に対応する部分がその画像の特徴ベクトルとなります.

続く Transformer Encoder では,すべてのパッチを入力として,各パッチの特徴ベクトルの表現をブラッシュアップします.図では点線の右側に詳細な処理が書かれています.
Attention 機構を使うことで,画像の離れた位置にある情報を参照することが可能で,これが近傍のピクセルに対して畳み込みをかける CNN との大きな違いです.

最後に,得られた画像の特徴ベクトル(Transofrmer の出力のうち,[class] token に対応する部分)を多層パーセプトロン (MLP) に入力することで,画像分類のタスクをこなせるようにします.

3. Vision Transformer の成果

(主に論文の 4. Experiments からまとめています)

Vision Transformer が達成した成果として,まずは何といっても,最新の CNN モデルに勝る精度を示した点が挙げられます.JFT-300M や ImageNet-21k 等の大規模なデータセットで事前学習をしたモデルは,ResNet や EfficientNet 等の CNN をベースにしたのモデルと比較して高い分類精度を示しました.
ImageNet や CIFAR-10, 100 等のように画像分類モデルの精度を測るのによく使われるデータセットにおいて最高水準の精度を示した(state of the art と呼ばれます)ことで,Transformer を画像の世界にも導入する機運が一気に高まったといえるでしょう.

様々な画像分類データセットにおける,分類精度の比較."Ours" が Vision Transformer を用いたもの.論文の Table 2 より

高精度な点に加えて,事前学習のコストが低減されている点も見逃せません.上の表の下段にある,「TPUv3-core-days」はモデルの事前学習に要した計算コストを示しています."Ours" が付いている左 3 つのモデルはいずれも,右 2 つの CNN モデルと比較して事前学習の負荷が少なかったことが分かります.

また,事前学習に使うデータのサイズを変えて学習の進み具合を比較することで,「Vision Transformer」の事前学習にはなるべく大規模なデータセットを使うべきであるということを示しました.下の図は,きわめて少ないデータでモデルを訓練した際の分類精度の違いを,データセットのサイズごとに比較しています.
グレーで示した CNN モデルは比較的少ないデータサイズで伸びが止まるのに対し,Vision Transformer モデル(特にモデルサイズの大きい ViT-L)は事前学習のデータセットが大規模になるほど精度が向上することを示しています.

いくつかのモデル構造における,データセットのサイズと精度の比較.論文の Figure 4 より.

まとめ

改めて本論文のタイトルである An image is worth 16x16 words の意味を考えてみます.

研究背景として,自然言語処理において高い精度を示していた Transformer をどのように画像に適用するかという模索が続けられていました.これに対し本論文では「画像を複数のパッチに分割することでなるべく Transformer の構造をそのまま用いる」というシンプルな手法が高い精度につながるを示しました.このように扱えば画像も自然言語と同じ方法で処理できるということをキャッチーに示していた素晴らしいタイトルだと思います.
(論文を読む前は意味不明でしたが,,,)

おまけ

その後も研究は続き,2025 年現在では画像とテキストを同時に扱う "Vision and Language" という技術も発展しています.これも,自然言語と画像が同じような構造で処理できるようになったことによる成果の一つかなと思います.

実はこの投稿のヘッダー画像も ChatGPT に以下のプロンプトを入力して生成されたものです.ChatGPT がどこまで Vision Transformer を理解しているのかは知りませんが,画像をパッチに分割する部分が表現されていて,結構理解度の高い画像なのではないかなと思います.

”An image is Worth 16x16 Words” というタイトルから想像されるイラストを生成してください
出力

参考

いいなと思ったら応援しよう!