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