理解してほしいVision Transformer / plz-understand-ViT
by
shun74
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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