見出し画像

Vision Transformer(VIT)論文を読む

 よく来たな。今日はVision Transformerの論文を読んでいく。徐々にstable diffusionに近づいて来たぞ。楽しみだ。
 今回もunetの時と同じくまとめながら書く。翻訳はDeepL(ただし一部変だと思う所はgoogle翻訳でも行っている)。解説はClaude3。

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

『AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE』
 トランスフォーマーもそうだが、タイトルめっちゃいいな。画像は16×16の言葉に等しい。

 これだけでも興味が惹かれる。早速やって行こう。

ABSTRACT

画像処理では畳み込みをやっていたが、それを使わなくても性能あがったぞという話。

我々は、このようなCNNへの依存は必要なく、画像パッチのシーケンスに直接適用される純粋な変換器が、画像分類タスクにおいて非常に優れた性能を発揮できることを示す。

AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE

従来のCNNに頼らずとも、シンプルにTransformerを画像に適用することで、大規模学習と転移学習を活用して効率的に高精度のモデルが構築できることを示したのが本論文の主なポイントです。

Claude3

INTRODUCTION

自己アテンションベースのアーキテクチャ、特にTransformers(Vaswani et al.、2017)は、自然言語処理(NLP)で選択されるモデルとなっている。支配的なアプローチは、大規模なテキストコーパスで事前学習し、その後、より小規模なタスク固有のデータセットで微調整することである(Devlin et al.) Transformersの計算効率とスケーラビリティのおかげで、100Bを超えるパラメータを持つ前例のないサイズのモデルを訓練することが可能になった(Brown et al.) モデルやデータセットが増大する一方で、性能が飽和する兆候はまだ見られない。しかし、コンピュータビジョンでは、畳み込みアーキテクチャが依然として支配的である(LeCunら、1989; Krizhevskyら、2012; Heら、2016)。NLPの成功に触発され、CNNのようなアーキテクチャと自己注意を組み合わせた複数の研究が試みられており(Wangら、2018; Carionら、2020)、畳み込みを完全に置き換えたものもある(Ramachandranら、2019; Wangら、2020a)。後者のモデルは、理論的には効率的であるが、特殊な注意パターンを使用するため、最新のハードウェアアクセラレータではまだ効果的にスケールされていない。そのため、大規模画像認識では、古典的なResNetライクアーキテクチャが依然として最先端である(Mahajan et al., 2018; Xie et al., 2020; Kolesnikov et al.) NLPにおけるTransformerのスケーリングの成功に触発され、我々は標準的なTransformerを、可能な限り少ない修正で、画像に直接適用する実験を行う。

<中略>

Transformerは、変換の等価性や局所性など、CNN に固有の帰納的バイアスの一部が欠けているため、不十分な量のデータでトレーニングするとうまく一般化できません。 しかし、より大規模なデータセット(1,400万~3,000万画像)でモデルを学習させると、様相は一変する。我々は、大規模訓練が帰納的バイアスに勝ることを発見した。我々のVision Transformer(ViT)は、十分なスケールで事前訓練され、より少ないデータポイントのタスクに転送された場合、優れた結果を達成する。

AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE(DeepL翻訳)


↓ 「Transformerは、変換の等価性や局所性など、CNN に固有の帰納的バイアスの一部が欠けているため、不十分な量のデータでトレーニングするとうまく一般化できません。」の所の解説

CNNには以下のような画像に特化した帰納バイアス(推論を助ける先験的な仮定)が組み込まれています。

1. 並進等価性(translation equivariance): 画像内のオブジェクトが平行移動しても、特徴表現が同じだけシフトする性質。つまり物体の位置が変わっても同じように認識できる。
2. 局所性(locality): 近傍の画素同士が密接に関連している という仮定。畳み込み層では局所的な受容野を用いる。


一方、Transformerはこうした画像特有のバイアスが組み込まれておらず、自己注意機構は全入力間の関係を直接モデル化します。

したがって、Transformerは帰納バイアスが少ない分、CNNと比べてデータ効率が悪く、小規模データでは過学習しやすいと考えられます。十分に大規模なデータで学習することで初めて汎化性能が発揮されるというのが、この部分の主張だと思われます。

つまり、帰納バイアスとデータ量・汎化性能のトレードオフがあり、Transformerは少ないバイアスを大規模学習でカバーして性能を出しているという点を指摘しています。

claude3


RELATED WORK


自己注意を画像にナイーブに適用すると、各画素が他のすべての画素に注意を払う必要がある。画素数の2次コストで、これは現実的な入力サイズにスケールしない。
したがって、画像処理の文脈でTransformersを適用するために、過去にいくつかの近似が試みられてきた。
Parmarら(2018)は、大域的ではなく、各クエリ画素の局所近傍においてのみ自己注意を適用した。 このような局所的な多頭ドット積自己注意ブロックは、畳み込みを完全に置き換えることができる(Hu et al.)
別の研究では、Sparse Transformers (Child et al., 2019)は、画像に適用できるように、大域的な自己注意のスケーラブルな近似を採用している。

中略

私たちのモデルに最も関連しているのは、Cordonnier らのモデルです。 (2020)、入力画像からサイズ 2 × 2 のパッチを抽出し、その上に完全な自己注意を適用します。このモデルはViTと非常によく似ているが、我々の研究はさらに進んで、大規模な事前学習によってvanilla transformersが最先端のCNNと遜色ない(あるいはそれよりも優れている)ことを実証している。

AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE(DeepL翻訳)

Cordonnier et al. (2020) のモデルの特徴:
1. 入力画像から2×2のパッチを抽出する。
2. 抽出したパッチに対して、全結合の自己注意機構を適用する。


ViTとの類似点:両者とも、画像をパッチに分割し、パッチに自己注意を適用するという点で類似しています。


ViTとの相違点:
1. ViTは大規模な事前学習によって、標準的な(vanilla)Transformerが最先端のCNNと同等かそれ以上の性能を発揮できることを示しているのに対し、Cordonnier et al. (2020) はこの点について言及していない。
2. Cordonnier et al. (2020) は2×2という小さなパッチサイズを使用しているため、小さな解像度の画像にしか適用できない。一方、ViTは中程度の解像度の画像も扱うことができる。


つまり、ViTはCordonnier et al. (2020) のアイデアを発展させ、より大きなパッチサイズを使用することで中解像度の画像に適用可能にし、さらに大規模な事前学習の効果を実証したと言えます。これにより、Transformerベースのモデルが画像認識タスクにおいてCNNと競合できることを示したのが、ViTの主要な貢献です。

Claude3

↓ iGPTとの比較について解説

ViTと関連する別の最近のモデルとして、image GPT (iGPT) (Chen et al., 2020a) を取り上げ、その特徴と性能について説明しています。

iGPTの特徴:
1. 画像の解像度と色空間を削減した後、画像のピクセルにTransformerを適用する。
2. 生成モデルとして教師なし学習で学習される。


iGPTの分類性能:学習された表現は、ファインチューニングまたは線形探索によって分類性能を評価される。
ImageNetにおいて最大72%の精度を達成。


ViTとの比較:ViTは教師あり学習で学習されるのに対し、iGPTは教師なし学習で学習される。
ViTは画像をパッチに分割して処理するのに対し、iGPTは画像の解像度と色空間を削減してピクセル単位で処理する。
ViTはImageNetで88.55%の精度を達成しているのに対し、iGPTの最大精度は72%。


つまり、iGPTはViTとは異なるアプローチでTransformerを画像に適用し、教師なし学習で生成モデルとして学習されます。学習された表現は分類タスクに利用できますが、ViTには及ばない性能となっています。ただし、iGPTは教師なし学習であるため、ラベルなしデータを活用できる点は利点と言えます。

claude3

「N = HW/P2は結果として得られるパッチの数」についての説明↓

この部分を理解するためには、Vision Transformer (ViT) がどのように画像をパッチに分割し、Transformerの入力として使用するかを知る必要があります。
1. 画像のサイズ:
  - 入力画像のサイズを (H, W) とします。ここで、H は画像の高さ、W は画像の幅を表します。
  - チャンネル数 C は、色空間によって決まります(例えば、RGBの場合は3)。
2. パッチのサイズ:
  - 画像をパッチに分割する際のパッチのサイズを (P, P) とします。
3. パッチの数:
  - 画像をサイズ (P, P) のパッチに分割すると、パッチの総数は N = HW / P^2 となります。
  - 例えば、(224, 224) のサイズの画像を (16, 16) のパッチに分割すると、パッチの数は 224 * 224 / 16^2 = 14 * 14 = 196 となります。
4. Transformerの入力:
  - ViTは、分割されたパッチを Transformer の入力シーケンスとして扱います。
  - つまり、パッチの数 N が Transformer の有効な入力シーケンス長となります。
  - 各パッチは、Transformer のための埋め込み層で固定長のベクトルに変換されます。


つまり、画像のサイズ (H, W) とパッチのサイズ (P, P) によって、パッチの数 N が決定され、これがTransformerの入力シーケンス長となります。これにより、ViTは画像をパッチのシーケンスとして処理し、Transformerを用いて画像の特徴を学習することができるのです。

claude3

「BERT の[class]トークンと同様に、学習可能な埋め込みを埋め込みパッチのシーケンス(z 0 0 = xclass)に付加し、Transformer エンコーダの出力におけるその状態(z 0 L )が画像表現 y となる(式 4)。」
↑についての解説

この部分は、Vision Transformer (ViT) が画像分類タスクのために、特別なトークンをパッチのシーケンスに追加することを説明しています。これは、自然言語処理における BERT モデルの [CLS] トークンに類似しています。

1. [class] トークンの役割:
- BERT では、[CLS] トークンを入力シーケンスの先頭に付加します。このトークンは、文章全体の意味を表現するために使用されます。
- ViT では、同様の目的で [class] トークン(論文中では xclass と表記)を使用します。

2. 学習可能な埋め込み:
- [class] トークンは、学習可能な埋め込みベクトルとして実装されます。
- この埋め込みベクトルは、パッチの埋め込みシーケンスの先頭に付加されます。

3. Transformer エンコーダの出力:
- パッチの埋め込みシーケンスと [class] トークンの埋め込みを concatenate したものが、Transformer エンコーダに入力されます。
- Transformer エンコーダの出力では、[class] トークンに対応する出力ベクトル(論文中では z0L と表記)が、画像全体の表現として使用されます。

4. 画像表現:
- [class] トークンの出力ベクトル z0L は、画像全体の表現 y として使用されます(論文中の式4)。
- この画像表現は、画像分類タスクのための分類器(例えば、全結合層)に渡されます。

つまり、ViT は BERT と同様に、特別なトークンを入力シーケンスに追加することで、画像全体の表現を学習します。この [class] トークンの出力が、画像分類のための画像表現として使用されるのです。

claude3

位置埋め込みについて↓

ViTでは、自然言語処理のTransformerと同様に、位置情報を組み込むために位置埋め込み(position embedding)を使用しています。

Transformerの位置埋め込み:
- 自然言語処理のTransformerでは、トークンの位置情報を組み込むために、位置埋め込みを使用します。
- 一般的には、トークンの位置に応じた固定長のベクトルを学習可能なパラメータとして用意し、トークンの埋め込みベクトルに加算します。
- これにより、Transformerはトークンの位置関係を考慮できるようになります。

ViTの位置埋め込み:
- ViTでは、パッチの位置情報を組み込むために、同様の位置埋め込みを使用します。
- 論文では、1次元の学習可能な位置埋め込みを使用しています。つまり、パッチの位置に応じた固定長のベクトルを学習可能なパラメータとして用意し、パッチの埋め込みベクトルに加算します。
- 著者らは、2次元の位置埋め込み(パッチの行と列の位置を考慮したもの)を試しましたが、有意な性能向上が見られなかったため、シンプルな1次元の位置埋め込みを採用しました。

つまり、ViTは自然言語処理のTransformerと同様に、位置情報を組み込むために位置埋め込みを使用しており、具体的には1次元の学習可能な位置埋め込みを採用しています。これにより、ViTはパッチの位置関係を考慮しながら、画像の特徴を学習することができます。

Claude3

MLPブロックについての説明↓(ただしこれはGPT4。Claude3を使いすぎて2時まで制限されてしまった。。。しかしGPT4でも十分。)

MLPブロック(Multi-Layer Perceptron Block)内の層は、全結合層(Fully Connected Layers)または密結合層(Dense Layers)と同様のものです。MLPブロックは、一つまたは複数の全結合層を含み、それぞれの層の間には活性化関数が適用されます。

全結合層は、入力される全てのノード(ニューロン)が次の層の全てのノードに接続されている層のことを指します。これにより、層間で複雑な関係を捉えることが可能になります。MLP(Multi-Layer Perceptron)は、この全結合層を複数持ち、非線形活性化関数を通じて入力データの非線形変換を行い、最終的には複雑な関数の近似を行うことができます。

Vision Transformer(ViT)の文脈では、MLPブロックはTransformerブロック内に組み込まれ、自己注意機構によって得られた特徴表現をさらに変換します。MLPブロック内の全結合層は、入力された特徴の各要素(またはパッチの表現)を独立して処理し、モデルが学習するための追加の非線形性と表現力を提供します。

したがって、MLPブロック内の全結合層は、データの高度なパターンを学習するための重要な要素であり、特に深層学習モデルの性能向上に寄与しています。

GPT4

誘導バイアス
↑でも書いた通り、Vision TransformerはCNNに比べ、画像特有の帰納的バイアスが非常に少ない。ViTではMLP層のみが局所的で並進等価であり、自己注目層は大域的である。パッチ分割やファインチューニング以外では、パッチ間の空間関係はすべてゼロから学習する必要がある。

ハイブリッド・アーキテクチャ

Hybrid Architectureは、Vision Transformer (ViT)とCNNを組み合わせたアーキテクチャです。これは、CNNの局所的な特徴抽出能力とViTの大域的なセルフアテンション機構を組み合わせることで、両者の長所を活かすことを目的としています。

論文では、Hybrid Architectureについて以下のように説明しています。

1. CNNを用いたパッチ埋め込み:
- 生の画像パッチを直接使用する代わりに、CNNの特徴マップを使用してパッチ埋め込みを生成します。
- これにより、CNNの局所的な特徴抽出能力を活用し、より意味のある埋め込み表現を得ることができます。

2. パッチサイズと特徴マップ:
- CNNの特徴マップからパッチを抽出する際、パッチサイズを1x1にすることもできます。
- この場合、特徴マップの空間次元を平坦化し、Transformerの次元に射影することで、入力シーケンスを得ることができます。

3. 分類トークンと位置埋め込み:
- 純粋なViTと同様に、分類トークンと位置埋め込みを追加します。
- これにより、画像全体の表現を学習し、位置情報を組み込むことができます。

Hybrid Architectureの利点は以下の通りです。

1. CNNの局所的な特徴抽出能力を活用できる。
2. ViTの大域的なセルフアテンション機構により、長距離の依存関係を捉えることができる。
3. 両者の長所を組み合わせることで、より高い性能を達成できる可能性がある。

論文では、ResNet50をバックボーンとしたHybrid Architectureを実験的に評価しています。これは、ResNet50の特徴マップを使用してパッチ埋め込みを生成し、その上でViTを適用するアーキテクチャです。

以上が、論文におけるHybrid Architectureの説明です。これは、CNNとViTを組み合わせることで、両者の長所を活かした画像認識モデルを構築するための一つのアプローチと言えます。

Claude3

CNNは図1のLinear Projection of Flattened Patchesで行っている。

図1のLinear Projection of Flattened Patchesは、CNNを用いたパッチ埋め込みを表しています。

純粋なViTでは、以下のようにパッチ埋め込みを行います。

1. 画像をパッチに分割する。
2. 各パッチを平坦化(flatten)する。
3. 線形射影(linear projection)を用いて、平坦化されたパッチを埋め込みベクトルに変換する。

一方、Hybrid Architectureでは、CNNの特徴マップを用いてパッチ埋め込みを行います。

1. 画像をCNNに入力し、特徴マップを抽出する。
2. 特徴マップをパッチに分割する。
3. 各パッチを平坦化する。
4. 線形射影を用いて、平坦化されたパッチを埋め込みベクトルに変換する。

つまり、Hybrid Architectureでは、生の画像パッチを直接使用するのではなく、CNNの特徴マップを使用してパッチ埋め込みを生成しています。これにより、CNNの局所的な特徴抽出能力を活用し、より意味のある埋め込み表現を得ることができます。

図1では、このCNNを用いたパッチ埋め込みの処理がLinear Projection of Flattened Patchesとして表現されています。これは、Hybrid Architectureにおける重要な特徴の一つであり、純粋なViTとの主な違いでもあります。

claude3

FINE-TUNING AND HIGHER RESOLUTION


事前学習されたViTモデルを、より高い解像度の画像で微調整する場合、以下の問題が生じます。

1. 高解像度の画像をパッチに分割すると、パッチの数が増加し、有効シーケンス長が大きくなる。
2. 事前学習で使用された位置埋め込みは、元の解像度とパッチ数に対応しているため、そのまま使用することができない。

この問題を解決するために、論文では以下のような方法を提案しています。

1. 事前学習された位置埋め込みを、高解像度の画像のパッチ数に合わせて、2次元的に補間する。
2. 具体的には、各パッチの位置に対応する位置埋め込みを、元の位置埋め込みから2次元補間によって計算する。

この2次元補間は、事前学習された位置埋め込みを、高解像度の画像に適応させるための重要な処理です。これにより、ViTは高解像度の画像に対しても、適切な位置情報を利用できるようになります。

ただし、著者らは、この解像度調整とパッチ抽出の処理が、ViTに画像の2次元構造に関する帰納的バイアスを手動で注入する唯一のポイントであると述べています。つまり、ViTは基本的にはシーケンスデータを処理するように設計されており、画像の2次元構造を直接的に利用するような仕組みは組み込まれていません。位置埋め込みの2次元補間は、画像の2次元構造を考慮するための例外的な処理だと言えます。

以上が、事前学習された位置埋め込みの2次元補間に関する説明です。この処理により、ViTは高解像度の画像に対しても、適切な位置情報を活用しながら、柔軟に適用できるようになります。

claude3

事前学習で使用された画像と、微調整で使用する高解像度の画像では、同じ位置でもピクセル座標が異なります。そのため、事前学習された位置埋め込みをそのまま使用することはできません。

例えば、以下のようなケースを考えてみましょう。

- 事前学習時:画像サイズ(224, 224)、パッチサイズ(16, 16)の場合、画像の中央のパッチは (112, 112) を中心とする 16x16 のピクセル領域に対応します。
- 微調整時:画像サイズ(384, 384)、パッチサイズ(16, 16)の場合、画像の中央のパッチは (192, 192) を中心とする 16x16 のピクセル領域に対応します。

このように、画像サイズが変わると、同じ位置のパッチでもピクセル座標が異なります。そこで、事前学習された位置埋め込みを、高解像度の画像のパッチの位置に合わせて補間する必要があります。

具体的には、以下のような処理を行います。

1. 高解像度の画像の各パッチについて、その中心座標を計算する。
2. 事前学習時の画像サイズに対して、その中心座標が相対的にどの位置にあるかを計算する。
3. その相対的な位置に基づいて、事前学習された位置埋め込みを2次元的に補間する。

この補間処理により、高解像度の画像の各パッチに対して、適切な位置埋め込みを割り当てることができます。これは、画像の解像度が変わっても、パッチの相対的な位置関係を維持するために重要な処理です。

以上が、高解像度の画像に対する位置埋め込みの補間の考え方です。この処理により、ViTは事前学習された位置情報を、高解像度の画像に適応させることができます。

claude3

EXPERIMENTS

ResNet、Vision Transformer(ViT)、ハイブリッドの表現学習能力を評価する。各モデルのデータ要件を理解するために、様々なサイズのデータセットで事前学習を行い、多くのベンチマークタスクを評価する。モデルを事前学習する計算コストを考慮すると、ViTは非常に有利な性能を示し、より低い事前学習コストで、ほとんどの認識ベンチマークで最先端技術を達成する。最後に、自己監視を用いた小規模な実験を行い、自己監視付きViTが将来有望であることを示す。

AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE(DeepL翻訳)

ベースラインCNNにはResNet (He et al., 2016)を用いるが、Batch Normalization層(Ioffe & Szegedy, 2015)をGroup Normalization (Wu & He, 2018)に置き換え、標準化畳み込み(Qiao et al., 2019)を用いた。これらの修正により伝達が改善され(Kolesnikov et al.、2020)、我々はこの修正モデルを「ResNet (BiT)」と呼ぶ。ハイブリッドの場合、中間特徴マップを1「ピクセル」のパッチサイズでViTに入力する。異なるシーケンス長を実験するために、(i)通常のResNet50のステージ4の出力を取るか、(ii)ステージ4を取り除き、同じ数のレイヤーをステージ3に配置し(レイヤーの総数を維持する)、この拡張ステージ3の出力を取る。オプション(ii)の場合、シーケンスの長さが4倍長くなり、ViTモデルのコストが高くなります。

AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE(DeepL翻訳)

↑についての解説が以下。VitではResNet50を使って画像を入力しているが、この時にやり方が2つある。ステージ4を使うか、ステージ3を拡張して使うのか。

ハイブリッドモデルでは、ResNet50の特徴マップをパッチに分割してViTに入力します。ここで、パッチサイズを1x1に設定することで、特徴マップの各ピクセルが個別のパッチとして扱われます。つまり、特徴マップの空間的な構造が維持されたまま、ViTに入力されます。

著者らは、異なるシーケンス長(パッチ数)の影響を調べるために、2つのオプションを提案しています。

オプション(i): ResNet50のステージ4の出力を使用するステージ4は、ResNet50の最後のブロックで、特徴マップのサイズが最も小さい。
この特徴マップを1x1のパッチに分割し、ViTに入力する。


オプション(ii): ステージ4を取り除き、ステージ3を拡張するResNet50のステージ4を取り除き、その代わりにステージ3に同じ数のレイヤーを追加する。
これにより、最終的な特徴マップのサイズが大きくなり、パッチ数が増加する。
具体的には、オプション(i)と比較して、シーケンス長が4倍になる。


オプション(ii)では、より大きな特徴マップを使用することで、ViTに入力されるパッチ数が増加します。これにより、ViTはより多くの情報を処理できますが、その分、計算コストが高くなります。

Claude3

訓練と微調整

数ショット精度は、訓練画像の部分集合の(凍結)表現を{-1, 1} K個のターゲットベクトルにマップする正則化最小二乗回帰問題を解くことによって得られる。この定式化により、厳密解を閉じた形で回復することができる。

AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE(DeepL翻訳)

要約すると、数ショット精度の計算方法は以下の通りです。事前学習済みモデルを用いて、少数の訓練画像の特徴表現を抽出する。ここでモデルのパラメータは凍結(固定)されている。
各クラスのターゲットベクトルを{-1, 1}の2値で定義する。クラス数をKとすると、ターゲットベクトルの次元数はKになる。
訓練画像の特徴表現を入力、ターゲットベクトルを出力とする線形回帰問題を解く。このとき正則化項を導入することで過学習を防ぐ。
線形回帰の解は正則化最小二乗法により閉じた形で解析的に求められる。得られた回帰係数行列を用いて、テスト画像の特徴表現から各クラスへの所属度を計算し、最終的な予測を得る。


つまり事前学習済みモデルは特徴抽出器として用い、その出力に対して簡単な線形モデルを学習することで、少数のサンプルから分類器を構築している。パラメータ数が少ないため過学習しにくく、また閉じた解が得られるため学習が高速という利点がある。ファインチューニングよりも大幅に計算コストを削減できる。

Claude3

PRE-TRAINING DATA REQUIREMENTS

Vision Transformerは、大規模なデータセットで事前に訓練された場合、優れた性能を発揮するということがかかれている。

具体的には、以下の2つの実験結果から、この主張を裏付けています。

1. ImageNet、ImageNet-21k、JFT-300Mと、データセットのサイズを大きくしていくと、ViTの性能が大幅に向上する。一方ResNetは、データセットが大きくなってもViTほどの性能向上が見られない。

2. JFT-300Mをサブセット化して、より小さなデータセットを作成し、モデルを学習すると、小さいデータセットではViTよりもResNetの方が高い精度を示す。一方、データセットが大きくなるとViTの方が高い精度となる。

これらの結果は、ViTの性能がデータ量に大きく依存することを示唆しています。つまり、大規模なデータセットでプリトレーニングすることが、ViTの性能を引き出すために重要だということです。

一方、ResNetは、少ないデータでも比較的良い性能を示しています。これは、畳み込み構造による性質がデータ効率を高めているためと考えられます。しかし、大規模データではViTの方が優れた性能を示すようになります。

ご指摘の通り、ResNetも大規模データでは非常に高い精度を達成しています。しかし、ViTの方がより少ない計算量で同等以上の性能を達成できることが、Figure 5などから読み取れます。

つまり、大規模データを用いることでTransformerのようなより柔軟なモデルの能力を引き出せるようになり、その結果ViTがResNetを上回る性能を示せるようになったと解釈できます。

claude3


SCALING STUDY


ViTはResNetなどのCNNと比較して、より効率的な計算が可能になっていると主張。それは以下の理由が挙げられる。

1. パラメータ数: ViTは、同等の性能のResNetと比較して、しばしばより少ないパラメータ数で構成されています。パラメータ数が少ないことは、メモリ使用量の削減や、学習・推論時の計算量の削減につながります。

2. アーキテクチャの効率性: ViTのアーキテクチャは、ResNetなどのCNNとは大きく異なります。ViTは、入力画像をパッチに分割し、それらを変換器(Transformer)ブロックで処理します。変換器ブロックは、セルフアテンション機構とMLP(多層パーセプトロン)で構成されており、これらの操作は、畳み込み操作と比較して、より効率的な計算が可能です。

3. 並列処理: ViTのアーキテクチャは、並列処理に適しています。セルフアテンション機構は、入力シーケンスの要素間の関係を一度に計算することができ、これは効率的な並列処理を可能にします。また、MLPも、各要素に対して独立に適用されるため、並列処理が容易です。

4. データの効率性: ViTは、大規模なデータセットでの事前学習により、その性能を大きく向上させることができます。つまり、ViTは、大規模データからの学習に効率的であり、これは計算リソースの有効活用につながります。

claude3

INSPECTING VISION TRANSFORMER


VITがどのように画像データを処理するかを理解するために、その内部表現を分析している。
図7(左)は学習された埋め込みフィルタの上位主成分を示す。
図7(中央)は以下。

ViTモデルが位置埋め込み(position embedding)を通じて、画像内のパッチ間の距離関係を学習していることを示唆しています。

具体的には、以下のような点が観察できます。

1. パッチ間の距離と位置埋め込みの類似度に相関がある。つまり、近くのパッチ同士は類似した位置埋め込みを持ち、遠くのパッチ同士は異なる位置埋め込みを持つ傾向がある。

2. 行と列の構造が見られる。同じ行や列に属するパッチ同士は、類似した位置埋め込みを持つ。

3. より大きな画像では、位置埋め込みに周期的な構造が見られる。

これらの観察結果は、ViTモデルが、位置埋め込みを通じて、画像内のパッチの空間的な関係性を捉えていることを示唆しています。

このような位置情報の学習は、CNNにおける受容野(receptive field)と類似した役割を果たしていると考えられます。CNNでは、畳み込み層を重ねることで、徐々に大きな受容野を持つ特徴量を獲得しますが、ViTでは、位置埋め込みによって、はじめから大域的な位置情報を考慮することができます。

また、位置埋め込みが画像内の距離関係を反映して学習されるということは、ViTが入力画像の2次元的な構造を適切に捉えていることを示唆しています。これは、ViTが画像認識タスクにおいて高い性能を達成している理由の一つと考えられます。

以上のように、Figure 7の中央のグラフは、ViTモデルにおける位置埋め込みの働きと、その画像理解における重要性を示す興味深い結果と言えます。

Claude3

図7の右が少し難しいが、要するにセルフアテンション(self-attention)機構が、画像のどの程度の範囲から情報を集約しているかを示している。
以下に解説を乗せる。

ViTモデルでは、セルフアテンション機構によって、各パッチが他のすべてのパッチの情報を参照することができます。これにより、たとえ最初の層であっても、理論的には画像全体の情報を統合することが可能です。

しかし、実際にモデルがこの能力をどの程度活用しているかは自明ではありません。そこで、著者らは「注意の距離(attention distance)」という指標を導入しています。これは、あるパッチが、平均的にどのくらい離れたパッチの情報を参照しているかを表します。

具体的には、以下のような手順で計算されます。

1. セルフアテンション機構によって計算された注意の重み(attention weights)を取り出す。
2. 各パッチについて、注意の重みを使って、そのパッチが参照している他のパッチとの平均的な距離を計算する。
3. 全パッチについて、この平均距離を計算し、層ごとに集計する。

図7の右側のグラフは、この注意の距離を層ごとにプロットしたものです。各点は、ある層のある注意ヘッド(attention head)における注意の距離を表します。

このグラフから、以下のような傾向が読み取れます。

1. 最初の層では、一部の注意ヘッドが画像全体を参照しているが、多くのヘッドは局所的な情報のみを参照している。
2. 層が深くなるにつれて、注意の距離が増加し、より広い範囲の情報を統合するようになる。

これらの結果は、ViTモデルが、初期の層では局所的な特徴を抽出し、後段の層で徐々にグローバルな情報を統合していく階層的な処理を行っていることを示唆しています。これは、CNNにおける受容野の拡大と類似した役割を果たしていると考えられます。

以上のように、図7の右側のグラフは、ViTモデルのセルフアテンション機構による情報統合の様子を定量的に分析した結果を示しており、モデルの内部動作を理解する上で重要な示唆を与えています。

Claude3

SELF-SUPERVISION


セルフスーパービジョンについての解説。これがのちのstable-diffusionにつながるのかな。結論のところにも将来性を示唆されていた。なんかテンションが上がるな。

セルフスーパービジョン (Self-Supervision) は、教師なし学習 (Unsupervised Learning) の一種で、ラベル付きデータを使用せずに、モデルを事前学習 (Pre-training) するための手法です。

ViTの文脈では、以下のようなアプローチが取られています。

1. Masked Patch Prediction (マスクされたパッチの予測): 入力画像のパッチの一部をマスク (置換) し、モデルにマスクされたパッチの元の情報を予測させる。これは、言語モデルのBERT (Bidirectional Encoder Representations from Transformers) で用いられるMasked Language Modeling (MLM) と類似のタスクである。

2. マスキングの方法:
- ランダムに選ばれたパッチを、特殊なトークン [mask] で置換する (置換率: 80%)。
- ランダムに選ばれたパッチを、別のランダムなパッチと入れ替える (置換率: 10%)。
- そのまま変更しない (置換率: 10%)。

3. 予測ターゲット: マスクされたパッチの元の情報を予測する。具体的には、以下のようなバリエーションが試されている。
- パッチの平均色 (3bit、512色) を予測する。
- パッチを4x4のサイズに縮小した画像 (48bit、各ピクセル3bit) を予測する。
- パッチの元の画素値 (連続値) をL2ロスで予測する。

4. モデルの学習: マスクされたパッチの予測を教師信号として、モデルのパラメータを更新する。これにより、モデルは画像の局所的および大域的な特徴を捉える汎用的な表現を学習する。

著者らは、これらの手法を用いて、ViTをJFTデータセットで事前学習しました。その結果、ImageNetの少数のラベル付きサンプルでの分類性能が大幅に改善されたと報告しています。

ただし、セルフスーパービジョンによる事前学習は、ラベル付きデータを用いた教師あり事前学習には及ばないようです。著者らは、今後の研究課題として、Contrastive Learning など他のセルフスーパービジョン手法の探索を挙げています。

以上が、ViTにおけるセルフスーパービジョンの概要です。教師なし学習による汎用的な特徴表現の獲得は、ViTに限らず、様々な深層学習モデルで活発に研究されているトピックです。

claude3


CONCLUSION


我々はTransformersを画像認識に直接応用することを探求してきた。コンピュータビジョンにおける自己注意を用いた先行研究とは異なり、我々は最初のパッチ抽出ステップとは別に、画像特有の帰納的バイアスをアーキテクチャに導入しない。その代わりに、我々は画像をパッチのシーケンスとして解釈し、NLPで用いられるような標準的なTransformerエンコーダによって処理する。このシンプルかつスケーラブルな戦略は、大規模なデータセットでの事前学習と組み合わせることで、驚くほどうまく機能する。このように、Vision Transformerは多くの画像分類データセットにおいて、比較的安価に事前学習が可能でありながら、最先端技術に匹敵するか、それ以上の性能を発揮する。 こうした初期の成果は心強いものだが、多くの課題が残されている。その1つは、検出やセグメンテーションなど、他のコンピュータビジョンタスクにViTを適用することである。我々の結果は、Carionら(2020)の結果と相まって、このアプローチが有望であることを示している。もう一つの課題は、自己教師付き事前学習法の探求を続けることである。我々の最初の実験では、教師あり事前学習による改善が見られたが、教師あり事前学習と大規模教師あり事前学習との間にはまだ大きな隔たりがある。最後に、ViTのさらなるスケーリングが性能向上につながる可能性が高い。

AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE(DeepL翻訳)


この記事が気に入ったらサポートをしてみませんか?