Vision Transformer講座 / Vision Transformer Presentation
by
shun74
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
VisionTransformer 講座 B4 shun sato
Slide 2
Slide 2 text
目次 ● Vision Transformerとは ● Vision Transformerのアーキテクチャ ● Multi-Head Self Attentionについて ● Vision Transformerの分析 ● Vision Transformerの派生研究
Slide 3
Slide 3 text
Vision Transformerとは
Slide 4
Slide 4 text
Vision Transformerとは An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale. Alexey Dosovitskiy他. ICLR 2021. (https://openreview.net/forum?id=YicbFdNTTy) ● Googleの研究者グループが発表した最新の画像分類モデル ● 言語モデルのTransformer(NIPS 2017)をほぼそのまま画像タスクに転用した ● CNNなどの既存の画像分類モデルを上回る精度を達成 ● 従来の画像系モデルの常識を大きく変えた
Slide 5
Slide 5 text
Vision Transformerとは ● 画像を時系列データのように処理 ● 畳み込みなしで画像から情報を抽出 ● Multi-Head Self Attentionという特徴的なモジュール ● Vision Transformerの概要(論文より) ● 画像のベクトル化と全結合層で情報を 取り出す
Slide 6
Slide 6 text
Vision Transformerのアーキテクチャ
Slide 7
Slide 7 text
Visnion Transformerのアーキテクチャ ● Vision Transformerは以下の順番で画像を処理 1. 画像のベクトル(トークン)化 ⇢ Embedding 2. ベクトルの情報抽出&集約 ⇢ Encoder 3. 特徴量からクラス分類 ⇢ Head
Slide 8
Slide 8 text
Vision Transformerのアーキテクチャ Embedding ● 画像をパッチに分割してベクトル化 ● 画像パッチの位置を表すPosition embeddingも行う ● 画像をパッチ分割(1パッチ16*16) ● パッチを平坦化して線形変換 ● 各パッチにPosition Embeddingと Clsトークンを追加
Slide 9
Slide 9 text
Vision Transformerのアーキテクチャ Encoder ● Embeddingされたベクトルを全結合層で処理 ● 全結合層の処理と並んでAttentionによる情報選択を行う ● LayerNormによるバッチ正規化 ● ViT Blockの概要図 ● LayerNorm⇢Attention⇢LayerNorm⇢MLP ● Skip-Connectionも使われている
Slide 10
Slide 10 text
Vision Transformerのアーキテクチャ Head ● Encoderの出力(clsトークン)を全結合層で処理してクラス信頼度にマッピング ● Headを取り換えると様々な問題に対応可能 ● Encoderの出力をHeadが受け取る ● Headの出力がViT全体の出力となる ● クラス分類では各クラスの信頼度を出 力⇢Softmaxで確率化
Slide 11
Slide 11 text
Multi-Head Self Attentionについて
Slide 12
Slide 12 text
Multi-Head Self Attentionについて ● 各ベクトルの重要度を計算して集約の手助けをする ● ベクトルの内積を計算してAttentionマスクを生成 ● Q, K, Vにベクトルを変換してから計算 (Scaled dot-product) ● Scaled dot-productの概要図 ● Vに対してQ, Kの内積から計算された Attentionマスクを 適用
Slide 13
Slide 13 text
Multi-Head Self Attentionについて Scaled dot-product ● Q, K, Vから計算を行う 1. Q, K, Vはそれぞれ同じ入力に異なる全結合層を適用して生成 2. QとKのそれぞれのベクトル積(内積)を計算 3. Q,Kの内積をベクトル長で割ったものをSoftmaxで正規化(Attentionマスク) 4. VにAttentionマスクを適用して全結合層を適用
Slide 14
Slide 14 text
Multi-Head Self Attentionについて Multi-Head Self Attention ● Scaled dot-productの計算をヘッドごとに分割してパターンを増やす ● QとKのベクトル積がより軽量に ● 多様なマスクが生成可能 ⇢ 表現力の増加
Slide 15
Slide 15 text
Multi-Head Self Attentionについて Q. ベクトル積でなぜ注目度が測れるのか? A. ベクトルの類似度を計算しているから ⇢ 類似度の高いベクトルを合成してより効率的な特徴量を生成 学習が進むと物体のある 箇所に重み付けが集中す るようになる!
Slide 16
Slide 16 text
Vision Transformerの分析
Slide 17
Slide 17 text
Position Embeddingとは ● ViTはベクトル化によって画像の位置関係を最初に捨てている ⇢ 位置に関する情報をベクトルに埋め込むことで位置関係を把握 ● 基本的にはトレーニング可能なパラメータをベクトルに足すことで解決 ● トレーニング可能パラメータがベクトルの元の位置を学習している ● 他にもsin, cosで固定の値を埋め込む形式やパッチ間の相対位置を埋 め込む形式もある
Slide 18
Slide 18 text
MLPレイヤーの特性 ● MLPレイヤーは2層の全結合層を持つ ● 全結合層間にgeluなどのアクティベーションをはさむ ● 万能近似定理(Universal Approximation Theorem)より2層で表現能力は十分 ● MLPレイヤーのforward関数(いい感じなフロー図がなかったため ) ● 言語モデルではfc1が特定の単語に反応し fc2がそれを元に次の単語の 確率を制御している ● fcをconvに置き換えて実験をしたという研究もある※ ※Incorporating Convolution Designs into Visual Transformers. Yuan他. ICCV2021. https://arxiv.org/abs/2103.11816
Slide 19
Slide 19 text
Multi-Head Self Attentionの特性 ● 実はデータのスムージングを行っているだけ? ● MHSAをPoolingに置き換えても学習できる? ● PoolFormerで提案されたアーキテクチャ ● MHSAの代わりにAveragePoolingを行ってベクトルを混ぜている ● 単純なPoolingだが元モデルの精度を超えた ● MetaFormerという構造がViTの鍵となっていることを主張 ● 後半の層ではMHSAを使うことでより精度が向上 ⇢ 前半の層はスムージングだけだが後半の層にはそれ以外の役割も? MetaFormer Is Actually What You Need for Vision. Yu他. CVPR 2022. https://arxiv.org/abs/2111.11418
Slide 20
Slide 20 text
LayerNorm vs BatchNorm ● ViTではTransformerを継いでLayerNormが使われている ● LayerNormは平均分散を入力ごとに計算するためベクトル長の変化に強い ● BatchNormはあらかじめ平均分散を用意してから計算するため高速 ⇢ 入力のサイズが一定の画像モデルならBatchNormでもいいのでは? LayerNormをBatchNormに置き換えて実験を行った研究※ ● そのまま置き換えると学習中に勾配が爆発して学習不可(MLPのスケール問題) ⇢ しかしMLPのfc間にBatchNormを入れればLayerNormの時と同様に学習ができた ※Leveraging Batch Normalization for Vision Transformers. Yao他. ICCVW 2021. https://patrick-llgc.github.io/Learning-Deep-Learning/paper_notes/bn_ffn_bn.html
Slide 21
Slide 21 text
ViTとCNNの特徴の捉え方の違い ● CNNは物体のテクスチャ、ViTは物体の形をそれぞれ見ている ● テクスチャを張り替えた画像に対してViTの方がロバストに検出 ● 猫の画像を象のテクスチャで置き換えたもの ● CNNでは象と認識されてしまう ⇢ テクスチャを見ている ● ViTでは猫と認識される! ⇢ 形を見ている Are Convolutional Neural Networks or Transformers more like human vision? Tuli他. CogSci 2021. https://arxiv.org/abs/2105.07197
Slide 22
Slide 22 text
ViTのグローバル情報処理能力 ● ViTはCNNに比べて手前の層からグローバル情報を保持している ● 層の表現の類似度をCKAという方式で計算して可視化したもの ● ViTの方がCNNよりも層全体の表現に類似度がある ● ネットワークの層の途中で表現を抽出したところViTの方がCNNより精度よく分類 ができた⇢CNNには受容野という制約がある Do Vision Transformers See Like Convolutional Neural Networks? Raghu他. https://arxiv.org/abs/2108.08810
Slide 23
Slide 23 text
ViTはCNNよりもロバストなのか? ● 敵対的攻撃(画像にノイズを混ぜる)に対してはViTもCNNも大差がない ● 分布外データに対してはViTの方がCNNよりもロバスト ⇢ ViTの方がぼんやりと物体を見ている ● CNNでは高い信頼度で認識を誤ることが多々ある ● ViTは頻度の低いデータにもロバストに検出ができる Natural Adversarial Examples. Hendrycks他. CVPR 2021. https://arxiv.org/abs/1907.07174 Intriguing Properties of Vision Transformers. Naseer他. NeurIPS 2021. https://arxiv.org/abs/2105.10497
Slide 24
Slide 24 text
Vision Transformerの派生研究
Slide 25
Slide 25 text
Swin Transformer (Liu他 ICCV 2021 Best paper) ● Sifted Windowを活用したQVベクトル積の効率化&軽量化 ⇢ SoTAも達成 ● ViTの画像系タスクBackboneとしてのスタンダードに Attentionを行う領域を制限 ⇢ CNNのような局所的情報集約 BlockごとにWindowをずらしてWindow間の 情報が共有されるように ⇢ グローバルな情報集約 ⇢ ⇢ ⇢ https://arxiv.org/abs/2103.14030
Slide 26
Slide 26 text
Deformable Attention Transformer (Xia他 CVPR 2022) ● Attentionを行う場所をDeformable(変形可能)に ⇢ 物体の形に柔軟に適応 ● AttentionのAttentionを行っている?! Attentionを行うPointにOffsetを適用して座標をずらす ⇢ Bilinear補間で近傍からパッチを計算 Attentionの参照点が物体の中に集まっている! https://arxiv.org/abs/2201.00520
Slide 27
Slide 27 text
Depth Former (Li他 Arxiv 2022) ● 単眼深度推定タスクでViTとCNNをうまく組み合わせた ⇢ ViTだけでは解決が難しかった問題を解決! ● ViTとCNNの強みを発揮 Depth Formerのアーキテクチャ HAHI ModuleがViTとCNNを結合する重要な部分 (Deformable Attentionを使用) https://arxiv.org/abs/2203.14211
Slide 28
Slide 28 text
Depth Former (Li他 Arxiv 2022) ● BTS&AdabinsはViTのみを使ったモデル ● 深度推定でカーペットの模様が出てしまっているのはおかしい ● DepthFormer(Ours)ではCNNがカーペットのテクスチャ情報を処理 ● 画像分類では問題にならなかった細かい部分を見る能力 ⇢ ViTが一概に画像タスク最強とは言えない? CNNが得意な部分もある!
Slide 29
Slide 29 text
CLIP (Radford他 OpenAI 2021) ● 画像分類の高精度なZero-shot化に成功 ● 言語ベクトル空間に画像をマッピングすることで未知の画像に対応 画像に対する言語ベクトルは文章から生成 同じ構文の名詞の部分を変更してベクトルの類似度から答えを算出 https://arxiv.org/abs/2103.00020
Slide 30
Slide 30 text
MLP Mixer (Tolstikhin他 Arxiv 2021) ● ViTと似ているがAttentionを明確に省いている https://arxiv.org/abs/2105.01601 ● MLPをPatch方向に適用することで Attentionを代用 ● Channel方向のMLPはViTと同じ ● 計算コストを大幅に削減しながら ViTと同程度の精度を出した
Slide 31
Slide 31 text
まとめ
Slide 32
Slide 32 text
まとめ ● ViTはCNNの常識を覆すアーキテクチャと性能を兼ね備えている ● ViTのアーキテクチャ研究はまだまだこれから ● ViTの研究からCNNの理解がより深まることも ● 今後画像系タスクのbackboneとしてViTの採用が増えていくかも ● ViTの今後に期待!
Slide 33
Slide 33 text
参考文献 「Vision Transformer入門」 技術評論社 山本晋太郎、徳永匡臣、箕浦大晃、邱玥、品川政太朗 著 片岡裕雄 監修 ● 様々なジャンルでVision Transformerの解説をしていて非常に面白かったです https://gihyo.jp/book/2022/978-4-297-13058-9