ViT:規模拡大可能な画像認識用のTransformers(1/2)

モデル

1.ViT:規模拡大可能な画像認識用のTransformers(1/2)まとめ

・畳み込みニューラルネットワークは画像専用に設計されたため計算量が多くなる可能性がある
・次世代の計算効率の高い視覚モデルが求められておりVision Transformer(ViT)を開発
・ViTは文章用Transformerに近い構造で最先端CNNsモデルの4分の1の計算で高精度を達成

2.Vision Transformerとは?

以下、ai.googleblog.comより「Transformers for Image Recognition at Scale」の意訳です。元記事の投稿は2020年12月3日、Neil HoulsbyさんとDirk Weissenbornさんによる投稿です。

う~む、畳み込みネットワークが歴史の教科書送りになりそうな雰囲気ですね。十分巨大なTransformerは「畳み込み」というある種の構造の決めつけが無い分、効率が向上するのでしょうか。Image GPT発表時はTransformerを使って画像を扱うのは効率が悪すぎるので実験的な試みとの位置づけでしたが本流になりそうな気がします。

2021年9月追記)CoAtNetという畳み込みの一般化能力(学習時とテスト時のギャップの少なさ)とTransformerのモデル容量(大規模データに対応可能な能力)という両モデルの利点を組み合わせたハイブリッドモデルが発表されています。

2021年12月追記)後続研究として「TokenLearner:柔軟にトークン化する事でVision Transformerの効率と精度を向上」が発表されました。

アイキャッチ画像のクレジットはPhoto by Talles Alves on Unsplash

畳み込みニューラルネットワーク(CNNs:Convolutional Neural Networks)は、1980年代からコンピュータービジョンで使用されてきましたが、2012年にAlexNetがその時点で最新の画像認識手法のパフォーマンスを大幅に上回った時まで、最前線で注目を集める存在ではありませんでした。

このブレークスルーを可能にするのに役立ったのは以下の2つの要因です。
(1)ImageNetのような大規模なトレーニングセットが広く利用可能になった事
(2)トレーニング用に大幅に多くの計算能力を提供するGPUが広く利用可能になった事
そのため、2012年以降、CNNsはビジョンタスクで頼れるモデルとなりました。

CNNsを使用する利点は、視覚的特徴を手作業で指定する必要性を回避し、代わりにデータに対して直接タスクを実行するように学習出来る事でした。ただし、CNNsは手作業での特徴表現抽出を回避しますが、アーキテクチャ自体は画像専用に設計されており、計算量が多くなる可能性があります。

次世代の規模拡大可能なビジョンモデルが求められています。特定領域に固有の設計が必要になるでしょうか?もしくは特定領域にとらわれず、計算効率の高いアーキテクチャをうまく活用して最先端の結果を達成できるのでしょうか?

この方向への最初のステップとして、元々テキストベースのタスク用に設計されたTransformerアーキテクチャに可能な限り厳密に近づけた視覚モデルであるVision Transformer(ViT)を紹介します。

ViTは、入力画像を一連の画像のツギハギ画像(patch)として表します。これは、Transformerをテキストに適用するときに使用される一連の単語embeddingsと同様であり、画像のクラスを直接予測します。

ViTは、十分なデータでトレーニングすると優れたパフォーマンスを発揮し、最先端のCNNsベースのモデルを4分の1の計算量で精度も上回ります。この分野での追加の研究を促進するために、コードとモデルの両方をオープンソースとして公開しました。


Vision Transformerは、入力画像を一連のツギハギ画像として扱います。これは、自然言語処理(NLP)用のTransformerによって生成される一連の単語embeddingsに似ています。

Vision Transformer
オリジナルの文章用Transformerは一連の単語を入力として受け取り、分類、翻訳、またはその他のNLPタスクに使用します。ViTの場合、私達は、Transformerの設計変更を可能な限り最小限に留めて、単語ではなく画像を直接操作できるようにしました。そして、モデル自身が画像構造についてどれだけ学習できるかを観察しました。

ViTは、画像を格子状に分割し、ツギハギ画像とします。各ツギハギ画像は、ツギハギ画像内の全ての画素のチャネルを連結することにより、フラットな単一のベクトルになります。

次に、それを入力として望ましい次元数に線形に投影します。Transformerは入力要素の構造に依存しないため、各ツギハギ画像には学習可能な位置embeddingsを追加します。これにより、モデルは画像の構造について学習できます。

そもそも、ViTはツギハギ画像の元画像内での相対位置、または画像が二次元構造を持っていることさえ知りません。トレーニングデータからそのような関連情報を学習し、位置embeddingsに構造情報をエンコードする必要があります。

3.ViT:規模拡大可能な画像認識用のTransformers(1/2)関連リンク

1)ai.googleblog.com
Transformers for Image Recognition at Scale

2)arxiv.org
An Image is Worth 16×16 Words: Transformers for Image Recognition at Scale

3)github.com
google-research / vision_transformer

タイトルとURLをコピーしました