よく来たな。今日は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
画像処理では畳み込みをやっていたが、それを使わなくても性能あがったぞという話。
INTRODUCTION
↓ 「Transformerは、変換の等価性や局所性など、CNN に固有の帰納的バイアスの一部が欠けているため、不十分な量のデータでトレーニングするとうまく一般化できません。」の所の解説
RELATED WORK
↓ iGPTとの比較について解説
「N = HW/P2は結果として得られるパッチの数」についての説明↓
「BERT の[class]トークンと同様に、学習可能な埋め込みを埋め込みパッチのシーケンス(z 0 0 = xclass)に付加し、Transformer エンコーダの出力におけるその状態(z 0 L )が画像表現 y となる(式 4)。」
↑についての解説
位置埋め込みについて↓
MLPブロックについての説明↓(ただしこれはGPT4。Claude3を使いすぎて2時まで制限されてしまった。。。しかしGPT4でも十分。)
誘導バイアス
↑でも書いた通り、Vision TransformerはCNNに比べ、画像特有の帰納的バイアスが非常に少ない。ViTではMLP層のみが局所的で並進等価であり、自己注目層は大域的である。パッチ分割やファインチューニング以外では、パッチ間の空間関係はすべてゼロから学習する必要がある。
ハイブリッド・アーキテクチャ
CNNは図1のLinear Projection of Flattened Patchesで行っている。
FINE-TUNING AND HIGHER RESOLUTION
EXPERIMENTS
↑についての解説が以下。VitではResNet50を使って画像を入力しているが、この時にやり方が2つある。ステージ4を使うか、ステージ3を拡張して使うのか。
訓練と微調整
PRE-TRAINING DATA REQUIREMENTS
Vision Transformerは、大規模なデータセットで事前に訓練された場合、優れた性能を発揮するということがかかれている。
SCALING STUDY
ViTはResNetなどのCNNと比較して、より効率的な計算が可能になっていると主張。それは以下の理由が挙げられる。
INSPECTING VISION TRANSFORMER
VITがどのように画像データを処理するかを理解するために、その内部表現を分析している。
図7(左)は学習された埋め込みフィルタの上位主成分を示す。
図7(中央)は以下。
図7の右が少し難しいが、要するにセルフアテンション(self-attention)機構が、画像のどの程度の範囲から情報を集約しているかを示している。
以下に解説を乗せる。
SELF-SUPERVISION
セルフスーパービジョンについての解説。これがのちのstable-diffusionにつながるのかな。結論のところにも将来性を示唆されていた。なんかテンションが上がるな。
CONCLUSION