理解してほしいVision Transformer / plz-understand-ViT
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 佐藤 駿
Slide 2
Slide 2 text
はじめに ● 機械学習を全く知らない人でも理解できるように解説します 目次 ● 機械学習 ● ニューラルネット ● 畳み込みニューラルネット (CNN) ● Vision Transformer (ViT) ● Attention ● CNN vs ViT ● ViTとCNNのいいとこどり例
Slide 3
Slide 3 text
機械学習とは ● みんながAIっていってるやつ ● ある入力に対して予測という形で出力を行う ● なんでもできると思われがちなやつ 犬猫の画像分類 株価の予測 機械翻訳 画像の生成 自動運転 よくわかってない人の AIのイメージ
Slide 4
Slide 4 text
ニューラルネット(NN)とは ● 任意※1の関数を近似できる魔法※2 ● 入力と正解をセットにしたデータでトレーニングを行う ● 基本的に中で何の計算が行われてるか分からない ※1任意ではないかもしれない ※2魔法ではない ←多層パーセプトロン(MLP) 人間の脳のシナプス結合を 模倣したモデル
Slide 5
Slide 5 text
畳み込みニューラルネット(CNN)とは ● 画像系タスクといえばこれ、2012年ぐらいに発表されたやつが元祖。 ● 畳み込みカーネルで画像の情報を効率よく収集 ● 画像でなんとなく察してください 手書き数字データセット (MNIST)のCNN例 ↑ こんな感じで画像を畳み込みます ↑
Slide 6
Slide 6 text
CNNの応用タスク 画像分類 画像生成 物体認識 距離画像生成
Slide 7
Slide 7 text
Vision Transformer(ViT)とは ● 2020年にGoogleが発表した新しい画像用ネットワーク ● それまで画像タスクで圧倒的だったCNNに完全勝利 ● 2017年にGoogleが発表した言語モデルTransformerを画像にそのまま使った ←ViTのネットワーク(論文より) 画像を1次元ベクトルにしてから Transformerで処理 多層パーセプトロン(MLP)が使われている
Slide 8
Slide 8 text
Attentionとは ● 最初はCNNで導入されたモジュール ● ニューラルネットがどこに注目するのかを決める Attentionの例 Attentionが犬以外の背景 をあまり重要視しない ように学習されている
Slide 9
Slide 9 text
Scaled Dot-Product Attentionの解説 Query, Key, Valueを用意して計算 1. Query, Keyの行列積を計算 2. SoftMaxを使ってAttentionMapを生成 3. ValueにMaskを適用して完成 ● ViTで使われているのはMulti-Head Attention ● Scaled Dot-Product Attentionを複数使う ● より多くのパターンを作ることで情報量UP
Slide 10
Slide 10 text
Vision Transformerのアーキテクチャ1 入力 画像をパッチに分割して1次元ベクトル化 (xy座標情報は捨てる) パッチごとにPosition Embeddingも追加 ViTでは16*16単位で画像をパッチ化 パッチ化した画像を平坦化して入力!
Slide 11
Slide 11 text
Vision Transformerのアーキテクチャ2 1. Norm: データの正規化を行うNormalization 2. MHA: 情報の注目を決めるAttention 3. MLP: 情報の処理を行う多層パーセプトロン (横道に逸れている矢印はSkip-Connection) Norm->MHA->Norm->MLPのブロックをLレイヤー繰り返す ここでMHAの入力QKVは全て同じ入力(?!)
Slide 12
Slide 12 text
CNN vs ViT Q. なぜViTがCNNに圧勝したのか A. タスクがちょうど良かったから ViT : Attentionで全体(Global)の特徴量をまとめる CNN: 畳み込みで局所(Local)の特徴量を捉える ● 比較が画像分類タスクだったためViTが圧勝した ● 画像分類は画像の中に何が映っているか何となく分かればいい ViTとResNet(CNN)の 内部表現の類似性の比較 ViTの方が安定した表現を 獲得している (?)
Slide 13
Slide 13 text
CNNとViTのいいとこどり例 Depth Former (2022/3) : 深度推定タスク ● ViTはCNNより良い性能が出せたがあと一歩性能が足りなかった ● CNNの情報を足すことで細かいところまで考慮できるようになった ● 深度(距離)画像なのでカーペットのテクスチャが反映されているのはおかしい ● CNNとViTの組み合わせでLocalとGlobalの情報を考慮できるネットワークになった 入力画像 ViTモデル1 ViTモデル2 DepthFormer 正解画像
Slide 14
Slide 14 text
さいごに ● 現在多くの画像タスクでBackboneとしてViTが使われている ● ViT自体も様々なモデルの開発競争が行われている ● ViT以外にもCNNだけのモデルやMLPのモデルも研究されている ● みんなもViTを実装して最新のAIモデルを作ろう! ● 画像系AIの相談があれば@shun74まで
Slide 15
Slide 15 text
参考 1. ニューラルネット: https://ledge.ai/neural-network/ 2. CNN: https://leadinge.co.jp/rd/2021/06/07/863/ 3. ViT: https://qiita.com/omiita/items/0049ade809c4817670d7 (最強資料) 4. ViT vs CNN: https://ai-scholar.tech/articles/transformer/transformer-vs-cnn 5. DepthFormer: https://arxiv.org/abs/2203.14211