VisionTransformer入門を読むぞ
1章
自然言語からVison And Languageを経てコンピュータビジョンに応用が進んでいる。
VisionとLanguageが混ざっている方が先っていうのが自然というか、不思議というか。
BERTとGPT(GPT-2,GPT-3)の違いは、ファインチューニングの際に目的タスクのデータセットが必要ない点。
例無しだと厳しいが、幾つかの例を示せばSOTAになる。(Few Shot)
Transformerの弱点
・サイズがでかい
・系列長が長いと計算コストが高くなる
Visual and Languageの例
Visual Question Answering, Image Captioning, Vision and Language Navigation
そのほかの例
VCR(Visual Commonsense Reasoning): VQAの根拠示す版
Grounding Referring Expression: テキストに示された物体が写っている場所を特定
Caption-Based Image Retrieval: テキストによる画像検索
派生
MedlCat, MedViLL: 医療画像特化
LayoutLM: 文書画像による文書分類
CLIP, DALL-Eも派生の一つ
CLIP: テキスト(自然言語)と画像の関係性を学習
DALL-E:画像生成。生成した画像のランキングにCLIPを使っていて、生成画像と入力画像の一致を確認
Bottom-up Attension:物体検出した各物体を一つのトークンとして使う。(テキストは従来Bertと同じく単語をトークンとする)
↑これがVision単体よりも先にLanguageとVisionのマルチモーダルが先に来ている理由か。
マルチモーダルの情報入力方法は二つ。
Single-StreamとMulti-Sream
DETR:Transformerを用いた物体検出。画像をグリッドに切って特徴抽出。トークンとして使用。
iGPT: ピクセル単位の画像補完
ViT:画像認識。グリッドに切って、(特徴量抽出はせずに)ピクセルを並べてベクトルとみなす。それを線形変換したものを使用。
Transformerの計算量は入力系列の2乗に比例
2章
Vision Transformereの実装
なんだこれ、めちゃくちゃわかりやすい(w)
最後Encoderの説明の最後でCLSトークンの取り出し方が書かれてなくて「?」となったが、MLP Headの最後のところで処理していた。すごい分かりやすかったので、Encoderの最後のところで触れておいてもよかったのではないかと思った(甘え)。
3章 実験と可視化
Normalizeの時によく見かける値ってImageNet由来だったのか。脳死でおまじない化してた。
Label Smoothing:
ViTは帰納バイアスが働きデータが膨大でないと性能が上がらないらしい。
4章 コンピュータビジョンタスクへの応用
ざっと見。
5章 Vision And Languageタスクへの応用
ざっと見。
6章 Vision Transformerの派生手法
Swin Transformer: 現在のViTのベースラインとなっているモデル。物体の大きさに対応できるように、パッチ分割(Window)を段階的に行う。Window内ででSelf Attentionさせることで計算量も削減。
DeiT: CNNを教師とした蒸留によりTransformerをトレーニング。少ないデータセットで精度を出す。
ハードターゲット:One-hot
ソフトターゲット:確率分布
CvT(Convolutional Vision Transformer): CNNとTransformerを組み合わせた、なんてものもあるようだ。
MAE(Masked AutoEncoder)
いや、もう凄すぎて意味わからんね。ここまでくると。
7章 Transformerの謎
(コンボイの謎ではない。)
まさにこれ
・Positiona Enbedding
どのように位置を符号化して、どのように情報を付与するか。
・Multi Head Attention
self attentionは、クエリーとキーのベクトル成分同士の掛け算が大きくなる成分に、内積の結果が依存する。⇒ほかの成分同士の掛け算が無視されやすい。
Multi-Head にすることで、クエリーとキーを分割して内積を出すので、影響を受けないで作れる部分が出てくる。
一方で、複数のヘッドを削除しても性能劣化しない場合があり、複数のヘッドが同じ特徴を学習しているように見える場合がある。⇒計算が無駄。違う特徴を学習するようにガイドするとよい。
・Layer Normalization
PostNorm
PreNorm
8章 Vision Transformerの謎
Transformerが最強というわけではないよ。
ViTも局所性を持たすこともできるかも。(下層がCNNと似てる)
規模によってはResNetも形状に反応するかも。
ViTもCNNも攻撃に弱い部分があるが、弱いポイントが異なる。