【DL輪読会】ViT + Self Supervised Learningまとめ

1.5K Views

December 03, 21

スライド概要

2021/12/03
Deep Learning JP:
http://deeplearning.jp/seminar-2/

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

DEEP LEARNING JP ViT + Self Supervised Learningまとめ [DL Papers] 発表者:岩澤有祐 http://deeplearning.jp/

2.

発表概要 • ViTをSelf Supervised Learningで使う研究が立て続けに発表されている. – – – – – – – – – “An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale”, ICLR2021 “Self-Supervised Learning with Swin Transformers”, 2021 (arxiv) “Emerging Properties in Self-Supervised Vision Transformers”, ICCV2021 “An Empirical Study of Training Self-Supervised Vision Transformers”, ICCV2021 “Self-supervised Models are Good Teaching Assistants for Vision Transformers”, ICLR2022 (Under review, 8, 8, 6, 3) “Efficient Self-supervised Vision Transformers for Representation Learning”, ICLR2022 (Under review, 8, 8, 6) “BEiT: BERT Pre-Training of Image Transformers”, ICLR2022 (Under review, 8, 8, 8, 8) “Image BERT Pre-training with Online Tokenizer”, ICLR2022 (Under review, 8, 6, 6) “Masked Autoencoders Aer Scalable Vision Learners”, 2021 (arxiv) • 背景を踏まえながら10個の手法について紹介. – ViTの詳細等は過去資料を参考にしてください – 岩澤資料,小林さん資料 2

3.

余談 (ICLR2022投稿中のViT系論文) • • • • • • • • • • • • • • “RegionViT: Regional-to-Local Attention for Vision Transformers” (6, 6, 6) “On Improving Adversarial Transferability of Vision Transformers”, (8, 6, 6, 6) “CrossFormer: A Versatile Vision Transformer Hinging on Cross-scale Attention”, (8, 6, 6, 5) “EViT: Expediting Vision Transformers via Token Reorganization”, (8, 8, 6, 6) “When Vision Transformers Outperform ResNets without Pre-training or Strong Data Augmentations”, (8, 8, 8, 6, 5) “Dynamic Token Normalization improves Vision Transformers” (6, 6, 5, 5) “Token Pooling in Vision Transformers”, (8, 5, 5) “Quadtree Attention for Vision Transformers”, (6, 5, 8, 6) “ViTGAN: Training GANs with Vision Transformers”, (6, 5, 6, 6, 6) “How Do Vision Transformers Work?”, (8, 8, 5, 8) “On the Adversarial Robustness of Vision Transformers”, (5, 5, 5, 5) “Auto-scaling Vision Transformers without Training”, (8, 6, 5) “RegionViT: Regional-to-Local Attention for Vision Transformers”, (6, 6, 6, 6) “RelViT: Concept-guided Vision Transformer for Visual Relational Reasoning” (5, 8, 6) 3

4.

教師なし表現学習 (Unsupervised Representation Learning) • 教師あり表現学習 – 興味のあるタスクラベルが事前にわかっている – 例:Image Net – こういう問題設定では、すでに人間を超える精度 • 教師なし表現学習 – 興味のあるタスクラベルは事前にわかっていない – 再利用可能な表現を観測からどう見つけるか 4

5.

再構成による教師なし表現学習 • 右のような生成過程を考える • log 𝑝 𝑥 = ‫𝑧𝑑 𝑧 𝑥 𝑝 ׬‬ 𝑧 • 良い生成を与えるような表現を学習する • VAE系やGAN系など多数 𝑥 – [Kingma+ 14] VAE – [Donahue+ 17] bidirectional GAN – [Dumoulin+ 17] adversarial learned inference 5

6.

Large Scale Adversarial Representation Learning, NeurIPS2019 Jeff Donahue, Karen Simonyan, DeepMind • 左上:提案手法 • 左下:Image Net、教師なし で当時SoTA(61.3%) • 右上:生成画像もきれい (Unconditional) 6

7.

Masked Language Modelと自己教師あり学習 ① Language Model (LM, 言語モデル) ② Masked Language Model Output: word probability by analyzing text data Input: Language models determine word probability by analyzing text data 大規模DNN 大規模DNN Input: Language models determine Input: Language models determine [mask] [mask] by [mask] text data Original: Language models determine word probability by analyzing text data 原文を入力と予測対象に分割 自分(の一部)から自分を予測するため,自己教師あり学習とも呼ばれる 7

8.

その他の自己教師あり学習 ① Context Encoder ② Jigsaw ③ Future Prediction ④ Cross View 8

9.

対照推定 (Contrastive Learning) ある画像AとBが似ているかどうかを判定 良い性能を発揮している手法の多くが対照 推定ベース 9

10.

具体例:SimCLR [Chen+2020] 正例:同じ画像を異なるデータ 拡張して得られた表現のペア 負例:別画像との表現 14

11.

対照推定のその後の発展 ImageNet Top-1 Acc アルゴリズム的な改良 Top-1 vs. #Params 巨大化 Transfer 転移性能 15

12.

対照推定系のTricks • 目的関数 – いろいろある.InfoNCEなど. • ネガティブサンプルの選び方 – 基本はBatch sizeを大きくしてバッチ内で選ぶ. – Memory bank, memory queueなどを使う. – Supervised Contrastive Learningというものもある. • Momentum encoder – Target表現用のエンコーダを元のエンコーダの移動平均にする • Multi-crop augmentation – SwAVで提案されたデータ拡張.複数のクロップで対照推定する. – シンプルだが強力. 16

13.

自己教師あり学習の評価指標 • Linear Proving / KNN – 自己教師ありで学習したネットワークは固定. – 学習された特徴量の線形分類性能の比較. • Fine-Tuning – 自己教師ありで学習したネットワークも再学習. • Semi Supervised Learning – 少数の教師ありの場合の比較. • Transfer learning – Other image recognition tasks – Video recognition, object detection, semantic segmentation, etc 17

14.

Pros / Cons • Contrastive系はLinear Proving等で再構成系より良いことが 多い – 画像の詳細情報を保持する必要がないため • Contrastive系はバッチサイズを巨大にしないと動かないこと が多い(計算効率が悪い) – 具体的には4096とか,20000とか. – かつ,複数のViewの画像を使う. 18

15.

Big Self-Supervised Models are Strong Semi-Supervised Learners 巨大なResNetをSimCLRで自己教師あり学習=> 良い半教師あり学習 19

16.

ViTの全体像 20

17.

ViTの発展型でよく見るやつ DeiT 教師モデル(ResNetとか)を蒸留 Swin Transformer 階層的にAttention (藤川さん輪読会資料) 21

18.

本題:ViT×自己教師あり学習(メモ) Method Category Description iGPT Recon マスクされた場所 or 自己回帰でピクセル値を予測.ソースは各パッチの埋め込み. Masked patch Prediction Recon ViT元論文.BERTのように穴埋め箇所を予測.穴埋めは基本的にはパッチ内の平均RGBを該 当するパッチから予測. MoCo v3 Contrastive ViTの分類器の直前の特徴量をInfoNCEで対照推定.Memory QueueやMulti-Cropなどは使わな いシンプルな形.Patch Projectionをランダムに固定すると安定. MoBY Contrastive Swin TransformerをBackboneに使う.通常のMoCoのようにmemory queueも使う.小さいモ デルだと若干良い? DINO Self distillation 画像の複数のビューを通したときにヘッド後のSoftmaxの出力が同じになるように自己蒸留. シンプルだが性能が良い.定性評価がきれい. SSTA Distillation SLとSSLの教師を元に自己教師あり学習.SLとSSLでMSAの各ヘッドが注目する部分が異な ることを利用.複数の教師の重要な要素をHead-levelで蒸留. iBOT Self distillation CLS tokenを使ったSelf distillation (DINO) + パッチの穴埋めのSelf distillation (Masked Image Modeling, MIM). BEITと違いOnlineでtokenizerを作っていることと対応. EsViT Self distillation MoBYと同様Swin TransformerをBackboneに使う.CLS tokenを使ったSelf distillation (DINOと 同様)に加えて,パッチの対応付けを行った上でのSelf distillationも行う (iBOTと類似). BEIT Latent Distillation DALLEで使われている事前学習済みのdVAEをtokenizerとして使い穴埋めタスクを解く.つま り,マスクされたパッチの離散化されたコードを予測する. MAE Recon Mask tokenを使わず,maskがかかってない部分だけをEncoderに入力し,encoderの出力 +mask tokenをdecoderに入力.多くのパッチをマスクすることで高速化+精度向上. 22

19.

手法1:iGPT Maskしたパッチのピクセル値を直接予測 23

20.

手法2: Masked Patch Prediction • ViT論文での自己教師あり学習 – BERT同様,入力パッチの一部の穴埋めタスク. – 全パッチの50%のうち • 80%を学習可能な[mask]埋め込みに変更 • 10%をランダムな他のパッチに変更 • 10%はそのままに – 欠損した50%のパッチの平均RGBを対応する埋め込みから予測 • ViT/Bで実験,事前学習にJFTを利用. – 100k位で後続タスクの性能向上はなくなったとの報告もあり. • FTで79.9% top1 acc(Linear Provingは言及なし) 24

21.

手法3: MoCo V3 シンプルな対照推定 • Memory queueなし • Momentum encoder • InfoNCE 25

22.

MoCo v3 : Random patch 細かい工夫 • Patch projectionをランダム にすると安定する(左図) • MLP headにBNを入れると性 能が上がる • など 26

23.

MoCo V3 27

24.

MoCo V3 28

25.

手法4:MoBY 対照推定 Swin Transformer • • • • Memory queueあり Momentum encoder InfoNCE 4096 batch 29

26.

MoBY : 結果 30

27.

手法5:DINO 自己蒸留 (Self Distillation) により自己教師あり学習 31

28.

DINO : 定量評価 いろいろなバックボーンで検証 32

29.

DINO : 定性評価 33

30.

手法6: Self Supervised teaching assistant (SSTA) 自己教師ありと教師ありで学習されるAttentionは大きく異なる => まとめて蒸留すれば性能上がるのでは? 34

31.

SSTA : Head-Level knowledge Distillation 各教師の重要なヘッドを模倣するように生徒を学習 35

32.

手法7:iBOT Masked Image Modeling (MIM) : 自己蒸留を欠損させた各パッチごとに行う (図中tokenizerが教師,本論文では生徒のMomentum encoder) 36

33.

iBOT : 全体像 • CLS tokenでの自己蒸留(DINO)+マスクした各パッチの自己蒸留 • Block masking • Headはpatchとclsで共有する(色々実験はしている) 37

34.

iBOT : 結果 38

35.

iBOT : 定性的な結果 39

36.

手法8:Efficient self-supervised ViT (EsViT) Swin Transformer 自己蒸留 40

37.

EsViT : Region-level task • Swin Transformerの場合,Maskさせた入力と出力が1:1対応 しない – 入力が小さくなっていくので. – iBOTのような直接的なMIMはできない. • 2つのView間の最も類似した埋め込みとの自己蒸留を行う. 41

38.

EsViT : 結果 42

39.

EsViT : 定性結果 43

40.

手法9:BERT like ViT (BEIT) • 事前学習済みのtokenizerを使用 (iBOTはオンラインに学習). • 具体的にはDALLEのデータで訓練されたdVAE(離散の潜在変数を持つVAE). • 上記の潜在変数を穴が空いたパッチについて予測. 44

41.

BEIT : 結果 45

42.

BEIT : Ablation 46

43.

手法10:Masked Autoencoder (MAE) • 基本的には欠損部分のピクセル値を予測する (Masked Patch Predictionと同様) 47

44.

MAEと他研究の違い:計算効率 • エンコーダデコーダ構造をしている – iGPT:デコーダのみ – ViT系:基本エンコーダのみ • エンコーダにマスクトークン[mask]を入力しない(計算量削減) – ほか研究はマスクした箇所に[mask]とPositional Encodingを入力 – つまりエンコーダに入るデータ長は元のパッチ数より少ない • 大量のパッチを欠損させる(計算量削減) – 画像はテキストと比べて情報が散らばっているので,欠損が少ないと簡単 • デコーダはエンコーダと比べて小さくする(計算量削減) – Asymmetricな構造をしている – デコーダには[mask]も当然入力するので系列が長くなるが,そもそも小さい ので計算量が増えすぎない 48

45.

Reconstruction (80% corrupted) 49

46.

Reconstruction (varied corruption rate) 50

47.

MAE:マスク率による比較(FTとLP) 51

48.

MAE : その他の結果(抜粋) (1)巨大化可能+性能改善 (3)少数ブロックの再学習 (2)予測対照のAblation 52

49.

まとめ Method Backbone Aggregated (Global) Region (Local) Multicrop #Patches during training iGPT 独自(超巨大) / Pixel / 100% MPP ViT-B16 / Pixel statistics / 100% MoCo v3 ViT-B16, ViT-L16, ViT-H Contrastive / / 200% MoBY Swin-T Contrastive / / 200 DINO ResNet50, ViT-B16等 Self distillation / ✓ 200% ~ SSTA ViT?(要確認) Distillation / 200% iBOT ViT-B16, Swn-T等 Self distillation Self distillation ✓ 400%? ~ EsViT Swin-T, Swin-S,Swin-B等 Self distillation Self distillation ✓ 200% BEIT ViT-B16, ViT-L16 / Distillation / 100% MAE ViT-B16, ViT-L16, ViT-H / Normalized Pixel / 25% 53

50.

結局何が良いのか (性能抜粋) 記法 • グレーは若干フェアじゃない要素 • 青はViT-B16,ImageNet1kでのSoTA Method iGPT MPP MoCo v3 MoBY DINO iBOT (両方iBOT) • 赤は巨大ViTで上記超え • 黄色はSwinで上記超え EsViT 観察 • LPでは自己蒸留系が強い • Fine TuningではMAEが強い • 巨大にすると(特にFine-Tuningは) 性能上がる BEIT MAE Pretraining ImageNet1k ImageNet1k JFT ImageNet1k ImageNet1k ImageNet1k ImageNet1k ImageNet1k ImageNet1k ImageNet1k ImageNet1k ImageNet22k ImageNet1k ImageNet1k ImageNet1k ImageNet1k ImageNet1k ImageNet1k ImageNet1k ImageNet1k ImageNet1k ImageNet1k ImageNet1k ImageNet1k ImageNet1k ImageNet1k Backbone 1362M 6801M ViT-B16 ViT-B16 ViT-L16 ViT-H Swin-T ViT-B8 ViT-B16 ViT-B16 ViT-L16 ViT-L16 Swin-T Swin-T14 Swin-T Swin-T/W=14 Swin-S Swin-B Swin-B/W=14 ViT-B16 ViT-L16 ViT-B16 ViT-L16 ViT-L16 ViT-H ViT-H448 Linear Proving Fine Tuning 65.2 / 68.7 / / 79.9 76.7 83.2 77.6 84.1 78.1 / 75.3 / 80.1 / 78.2 82.8 79.5 83.8 79.8 / 81.6 86.3 78.6 / 79.3 / 78.1 / 78.7 / 79.5 / 80.4 / 81.3 / 56.7 83.2 73.5 85.2 / 83.6 73.5 84.9 / 85.9 / 86.9 / 87.8 54

51.

まとめ(メモ) Method Category Description iGPT Recon マスクされた場所 or 自己回帰でピクセル値を予測.ソースは各パッチの埋め込み. Masked patch Prediction Recon ViT元論文.BERTのように穴埋め箇所を予測.穴埋めは基本的にはパッチ内の平均RGBを該 当するパッチから予測. MoCo v3 Contrastive ViTの分類器の直前の特徴量をInfoNCEで対照推定.Memory QueueやMulti-Cropなどは使わな いシンプルな形.Patch Projectionをランダムに固定すると安定. MoBY Contrastive Swin TransformerをBackboneに使う.通常のMoCoのようにmemory queueも使う.小さいモ デルだと若干良い? DINO Self distillation 画像の複数のビューを通したときにヘッド後のSoftmaxの出力が同じになるように自己蒸留. シンプルだが性能が良い.定性評価がきれい. SSTA Distillation SLとSSLの教師を元に自己教師あり学習.SLとSSLでMSAの各ヘッドが注目する部分が異な ることを利用.複数の教師の重要な要素をHead-levelで蒸留. iBOT Self distillation CLS tokenを使ったSelf distillation (DINO) + パッチの穴埋めのSelf distillation (Masked Image Modeling, MIM). BEITと違いOnlineでtokenizerを作っていることと対応. EsViT Self distillation MoBYと同様Swin TransformerをBackboneに使う.CLS tokenを使ったSelf distillation (DINOと 同様)に加えて,パッチの対応付けを行った上でのSelf distillationも行う (iBOTと類似). BEIT Token prediction DALLEで使われている事前学習済みのdVAEをtokenizerとして使い穴埋めタスクを解く.つま り,マスクされたパッチの離散化されたコードを予測する. MAE Recon Mask tokenを使わず,maskがかかってない部分だけをEncoderに入力し,encoderの出力 55 +mask tokenをdecoderに入力.多くのパッチをマスクすることで高速化+精度向上.

52.

その他参考になった記事等 • 画像認識向けTransformerを振り返る, Qiita • “Self-Supervised Learning in Computer Vision: Past, Present, Trends”, URL • “A Survey on Contrastive Self-supervised Learning”, 2020 56