DEEP LEARNING JP
[DL Papers]
ViT + Self Supervised Learningまとめ
発表者:岩澤有祐
http://deeplearning.jp/
発表概要
• 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
余談 (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
教師なし表現学習 (Unsupervised Representation Learning)
• 教師あり表現学習
– 興味のあるタスクラベルが事前にわかっている
– 例:Image Net
– こういう問題設定では、すでに人間を超える精度
• 教師なし表現学習
– 興味のあるタスクラベルは事前にわかっていない
– 再利用可能な表現を観測からどう見つけるか
4
再構成による教師なし表現学習
• 右のような生成過程を考える
• log 𝑝 𝑥 = 𝑝 𝑥 𝑧 𝑑𝑧
• 良い生成を与えるような表現を学習する
• VAE系やGAN系など多数
– [Kingma+ 14] VAE
– [Donahue+ 17] bidirectional GAN
– [Dumoulin+ 17] adversarial learned inference
5
𝑥
𝑧
Large Scale Adversarial Representation Learning, NeurIPS2019
6
Jeff Donahue, Karen Simonyan, DeepMind
• 左上:提案手法
• 左下:Image Net、教師なしで当
時SoTA(61.3%)
• 右上:生成画像もきれい
(Unconditional)
Masked Language Modelと自己教師あり学習
7
① Language Model (LM, 言語モデル) ② Masked Language Model
大規模DNN 大規模DNN
Input: Language models determine
Output: word probability
by analyzing text data
Input: Language models determine [mask]
[mask] by [mask] text data
Input: Language models determine word
probability by analyzing text data
Original: Language models determine word probability by analyzing text data
原文を入力と予測対象に分割
自分(の一部)から自分を予測するため,自己教師あり学習とも呼ばれる
その他の自己教師あり学習
8
① Context Encoder ② Jigsaw
③ Future Prediction ④ Cross View
対照推定 (Contrastive Learning)
9
ある画像AとBが似ているかどうかを判定 良い性能を発揮している手法の多くが対照推
定ベース
具体例:SimCLR [Chen+2020]
14
正例:同じ画像を異なるデータ
拡張して得られた表現のペア
負例:別画像との表現
対照推定のその後の発展
15
ImageNet Top-1 Acc Top-1 vs. #Params Transfer
アルゴリズム的な改良 巨大化 転移性能
対照推定系のTricks
• 目的関数
– いろいろある.InfoNCEなど.
• ネガティブサンプルの選び方
– 基本はBatch sizeを大きくしてバッチ内で選ぶ.
– Memory bank, memory queueなどを使う.
– Supervised Contrastive Learningというものもある.
• Momentum encoder
– Target表現用のエンコーダを元のエンコーダの移動平均にする
• Multi-crop augmentation
– SwAVで提案されたデータ拡張.複数のクロップで対照推定する.
– シンプルだが強力.
16
自己教師あり学習の評価指標
• Linear Proving / KNN
– 自己教師ありで学習したネットワークは固定.
– 学習された特徴量の線形分類性能の比較.
• Fine-Tuning
– 自己教師ありで学習したネットワークも再学習.
• Semi Supervised Learning
– 少数の教師ありの場合の比較.
• Transfer learning
– Other image recognition tasks
– Video recognition, object detection, semantic segmentation, etc
17
Pros / Cons
• Contrastive系はLinear Proving等で再構成系より良いことが多い
– 画像の詳細情報を保持する必要がないため
• Contrastive系はバッチサイズを巨大にしないと動かないことが多
い(計算効率が悪い)
– 具体的には4096とか,20000とか.
– かつ,複数のViewの画像を使う.
18
Big Self-Supervised Models are Strong Semi-Supervised Learners
19
巨大なResNetをSimCLRで自己教師あり学習=> 良い半教師あり学習
ViTの全体像
20
ViTの発展型でよく見るやつ
21
DeiT SwinTransformer
教師モデル(ResNetとか)を蒸留 階層的にAttention
(藤川さん輪読会資料)
本題:ViT×自己教師あり学習(メモ)
22
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
+mask tokenをdecoderに入力.多くのパッチをマスクすることで高速化+精度向上.
手法1:iGPT
23
Maskしたパッチのピクセル値を直接予測
手法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
手法3: MoCo V3
25
シンプルな対照推定
• Memory queueなし
• Momentum encoder
• InfoNCE
MoCo v3 : Random patch
26
細かい工夫
• Patch projectionをランダムに
すると安定する(左図)
• MLP headにBNを入れると性能
が上がる
• など
MoCo V3
27
MoCo V3
28
手法4:MoBY
29
SwinTransformer 対照推定
• Memory queueあり
• Momentum encoder
• InfoNCE
• 4096 batch
MoBY : 結果
30
手法5:DINO
31
自己蒸留 (Self Distillation) により自己教師あり学習
DINO : 定量評価
32
いろいろなバックボーンで検証
DINO : 定性評価
33
手法6: Self Supervised teaching assistant (SSTA)
34
自己教師ありと教師ありで学習されるAttentionは大きく異なる
=> まとめて蒸留すれば性能上がるのでは?
SSTA : Head-Level knowledge Distillation
35
各教師の重要なヘッドを模倣するように生徒を学習
手法7:iBOT
36
Masked Image Modeling (MIM) : 自己蒸留を欠損させた各パッチごとに行う
(図中tokenizerが教師,本論文では生徒のMomentum encoder)
iBOT : 全体像
37
• CLS tokenでの自己蒸留(DINO)+マスクした各パッチの自己蒸留
• Block masking
• Headはpatchとclsで共有する(色々実験はしている)
iBOT : 結果
38
iBOT : 定性的な結果
39
手法8:Efficient self-supervised ViT (EsViT)
40
SwinTransformer 自己蒸留
EsViT : Region-level task
• Swin Transformerの場合,Maskさせた入力と出力が1:1対応しな
い
– 入力が小さくなっていくので.
– iBOTのような直接的なMIMはできない.
• 2つのView間の最も類似した埋め込みとの自己蒸留を行う.
41
EsViT : 結果
42
EsViT : 定性結果
43
手法9:BERT like ViT (BEIT)
44
• 事前学習済みのtokenizerを使用 (iBOTはオンラインに学習).
• 具体的にはDALLEのデータで訓練されたdVAE(離散の潜在変数を持つVAE).
• 上記の潜在変数を穴が空いたパッチについて予測.
BEIT : 結果
45
BEIT : Ablation
46
手法10:Masked Autoencoder (MAE)
47
• 基本的には欠損部分のピクセル値を予測する (Masked Patch Predictionと同様)
MAEと他研究の違い:計算効率
• エンコーダデコーダ構造をしている
– iGPT:デコーダのみ
– ViT系:基本エンコーダのみ
• エンコーダにマスクトークン[mask]を入力しない(計算量削減)
– ほか研究はマスクした箇所に[mask]とPositional Encodingを入力
– つまりエンコーダに入るデータ長は元のパッチ数より少ない
• 大量のパッチを欠損させる(計算量削減)
– 画像はテキストと比べて情報が散らばっているので,欠損が少ないと簡単
• デコーダはエンコーダと比べて小さくする(計算量削減)
– Asymmetricな構造をしている
– デコーダには[mask]も当然入力するので系列が長くなるが,そもそも小さいので計算
量が増えすぎない
48
Reconstruction (80% corrupted)
49
Reconstruction (varied corruption rate)
50
MAE:マスク率による比較(FTとLP)
51
MAE : その他の結果(抜粋)
52
(1)巨大化可能+性能改善
(2)予測対照のAblation
(3)少数ブロックの再学習
まとめ
Method Backbone
Aggregated
(Global)
Region
(Local)
Multi-
crop #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
結局何が良いのか
(性能抜粋)
54
Method Pretraining Backbone Linear Proving Fine Tuning
iGPT ImageNet1k 1362M 65.2 /
ImageNet1k 6801M 68.7 /
MPP JFT ViT-B16 / 79.9
MoCo v3 ImageNet1k ViT-B16 76.7 83.2
ImageNet1k ViT-L16 77.6 84.1
ImageNet1k ViT-H 78.1 /
MoBY ImageNet1k Swin-T 75.3 /
DINO ImageNet1k ViT-B8 80.1 /
ImageNet1k ViT-B16 78.2 82.8
iBOT ImageNet1k ViT-B16 79.5 83.8
ImageNet1k ViT-L16 79.8 /
ImageNet22k ViT-L16 81.6 86.3
ImageNet1k Swin-T 78.6 /
ImageNet1k Swin-T14 79.3 /
EsViT ImageNet1k Swin-T 78.1 /
ImageNet1k Swin-T/W=14 78.7 /
ImageNet1k Swin-S 79.5 /
ImageNet1k Swin-B 80.4 /
ImageNet1k Swin-B/W=14 81.3 /
BEIT ImageNet1k ViT-B16 56.7 83.2
ImageNet1k ViT-L16 73.5 85.2
MAE ImageNet1k ViT-B16 / 83.6
ImageNet1k ViT-L16 73.5 84.9
ImageNet1k ViT-L16 / 85.9
ImageNet1k ViT-H / 86.9
ImageNet1k ViT-H448 / 87.8
記法
• グレーは若干フェアじゃない要素
• 青はViT-B16,ImageNet1kでのSoTA (両
方iBOT)
• 赤は巨大ViTで上記超え
• 黄色はSwinで上記超え
観察
• LPでは自己蒸留系が強い
• Fine TuningではMAEが強い
• 巨大にすると(特にFine-Tuningは)
性能上がる
まとめ(メモ)
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の出力+mask
+mask tokenをdecoderに入力.多くのパッチをマスクすることで高速化+精度向上. 55
その他参考になった記事等
• 画像認識向けTransformerを振り返る, Qiita
• “Self-Supervised Learning in Computer Vision: Past, Present,
Trends”, URL
• “A Survey on Contrastive Self-supervised Learning”, 2020
56

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

  • 1.
    DEEP LEARNING JP [DLPapers] ViT + Self Supervised Learningまとめ 発表者:岩澤有祐 http://deeplearning.jp/
  • 2.
    発表概要 • ViTをSelf SupervisedLearningで使う研究が立て続けに発表されている. – “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 RepresentationLearning) • 教師あり表現学習 – 興味のあるタスクラベルが事前にわかっている – 例:Image Net – こういう問題設定では、すでに人間を超える精度 • 教師なし表現学習 – 興味のあるタスクラベルは事前にわかっていない – 再利用可能な表現を観測からどう見つけるか 4
  • 5.
    再構成による教師なし表現学習 • 右のような生成過程を考える • log𝑝 𝑥 = 𝑝 𝑥 𝑧 𝑑𝑧 • 良い生成を与えるような表現を学習する • VAE系やGAN系など多数 – [Kingma+ 14] VAE – [Donahue+ 17] bidirectional GAN – [Dumoulin+ 17] adversarial learned inference 5 𝑥 𝑧
  • 6.
    Large Scale AdversarialRepresentation Learning, NeurIPS2019 6 Jeff Donahue, Karen Simonyan, DeepMind • 左上:提案手法 • 左下:Image Net、教師なしで当 時SoTA(61.3%) • 右上:生成画像もきれい (Unconditional)
  • 7.
    Masked Language Modelと自己教師あり学習 7 ①Language Model (LM, 言語モデル) ② Masked Language Model 大規模DNN 大規模DNN Input: Language models determine Output: word probability by analyzing text data Input: Language models determine [mask] [mask] by [mask] text data Input: Language models determine word probability by analyzing text data Original: Language models determine word probability by analyzing text data 原文を入力と予測対象に分割 自分(の一部)から自分を予測するため,自己教師あり学習とも呼ばれる
  • 8.
    その他の自己教師あり学習 8 ① Context Encoder② Jigsaw ③ Future Prediction ④ Cross View
  • 9.
    対照推定 (Contrastive Learning) 9 ある画像AとBが似ているかどうかを判定良い性能を発揮している手法の多くが対照推 定ベース
  • 10.
  • 11.
    対照推定のその後の発展 15 ImageNet Top-1 AccTop-1 vs. #Params Transfer アルゴリズム的な改良 巨大化 転移性能
  • 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 Modelsare Strong Semi-Supervised Learners 19 巨大なResNetをSimCLRで自己教師あり学習=> 良い半教師あり学習
  • 16.
  • 17.
  • 18.
    本題:ViT×自己教師あり学習(メモ) 22 Method Category Description iGPTRecon マスクされた場所 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 +mask tokenをdecoderに入力.多くのパッチをマスクすることで高速化+精度向上.
  • 19.
  • 20.
    手法2: Masked PatchPrediction • 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 25 シンプルな対照推定 •Memory queueなし • Momentum encoder • InfoNCE
  • 22.
    MoCo v3 :Random patch 26 細かい工夫 • Patch projectionをランダムに すると安定する(左図) • MLP headにBNを入れると性能 が上がる • など
  • 23.
  • 24.
  • 25.
    手法4:MoBY 29 SwinTransformer 対照推定 • Memoryqueueあり • Momentum encoder • InfoNCE • 4096 batch
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
    手法6: Self Supervisedteaching assistant (SSTA) 34 自己教師ありと教師ありで学習されるAttentionは大きく異なる => まとめて蒸留すれば性能上がるのでは?
  • 31.
    SSTA : Head-Levelknowledge Distillation 35 各教師の重要なヘッドを模倣するように生徒を学習
  • 32.
    手法7:iBOT 36 Masked Image Modeling(MIM) : 自己蒸留を欠損させた各パッチごとに行う (図中tokenizerが教師,本論文では生徒のMomentum encoder)
  • 33.
    iBOT : 全体像 37 •CLS tokenでの自己蒸留(DINO)+マスクした各パッチの自己蒸留 • Block masking • Headはpatchとclsで共有する(色々実験はしている)
  • 34.
  • 35.
  • 36.
    手法8:Efficient self-supervised ViT(EsViT) 40 SwinTransformer 自己蒸留
  • 37.
    EsViT : Region-leveltask • Swin Transformerの場合,Maskさせた入力と出力が1:1対応しな い – 入力が小さくなっていくので. – iBOTのような直接的なMIMはできない. • 2つのView間の最も類似した埋め込みとの自己蒸留を行う. 41
  • 38.
  • 39.
  • 40.
    手法9:BERT like ViT(BEIT) 44 • 事前学習済みのtokenizerを使用 (iBOTはオンラインに学習). • 具体的にはDALLEのデータで訓練されたdVAE(離散の潜在変数を持つVAE). • 上記の潜在変数を穴が空いたパッチについて予測.
  • 41.
  • 42.
  • 43.
    手法10:Masked Autoencoder (MAE) 47 •基本的には欠損部分のピクセル値を予測する (Masked Patch Predictionと同様)
  • 44.
    MAEと他研究の違い:計算効率 • エンコーダデコーダ構造をしている – iGPT:デコーダのみ –ViT系:基本エンコーダのみ • エンコーダにマスクトークン[mask]を入力しない(計算量削減) – ほか研究はマスクした箇所に[mask]とPositional Encodingを入力 – つまりエンコーダに入るデータ長は元のパッチ数より少ない • 大量のパッチを欠損させる(計算量削減) – 画像はテキストと比べて情報が散らばっているので,欠損が少ないと簡単 • デコーダはエンコーダと比べて小さくする(計算量削減) – Asymmetricな構造をしている – デコーダには[mask]も当然入力するので系列が長くなるが,そもそも小さいので計算 量が増えすぎない 48
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
    まとめ Method Backbone Aggregated (Global) Region (Local) Multi- crop #Patchesduring 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.
    結局何が良いのか (性能抜粋) 54 Method Pretraining BackboneLinear Proving Fine Tuning iGPT ImageNet1k 1362M 65.2 / ImageNet1k 6801M 68.7 / MPP JFT ViT-B16 / 79.9 MoCo v3 ImageNet1k ViT-B16 76.7 83.2 ImageNet1k ViT-L16 77.6 84.1 ImageNet1k ViT-H 78.1 / MoBY ImageNet1k Swin-T 75.3 / DINO ImageNet1k ViT-B8 80.1 / ImageNet1k ViT-B16 78.2 82.8 iBOT ImageNet1k ViT-B16 79.5 83.8 ImageNet1k ViT-L16 79.8 / ImageNet22k ViT-L16 81.6 86.3 ImageNet1k Swin-T 78.6 / ImageNet1k Swin-T14 79.3 / EsViT ImageNet1k Swin-T 78.1 / ImageNet1k Swin-T/W=14 78.7 / ImageNet1k Swin-S 79.5 / ImageNet1k Swin-B 80.4 / ImageNet1k Swin-B/W=14 81.3 / BEIT ImageNet1k ViT-B16 56.7 83.2 ImageNet1k ViT-L16 73.5 85.2 MAE ImageNet1k ViT-B16 / 83.6 ImageNet1k ViT-L16 73.5 84.9 ImageNet1k ViT-L16 / 85.9 ImageNet1k ViT-H / 86.9 ImageNet1k ViT-H448 / 87.8 記法 • グレーは若干フェアじゃない要素 • 青はViT-B16,ImageNet1kでのSoTA (両 方iBOT) • 赤は巨大ViTで上記超え • 黄色はSwinで上記超え 観察 • LPでは自己蒸留系が強い • Fine TuningではMAEが強い • 巨大にすると(特にFine-Tuningは) 性能上がる
  • 51.
    まとめ(メモ) Method Category Description iGPTRecon マスクされた場所 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の出力+mask +mask tokenをdecoderに入力.多くのパッチをマスクすることで高速化+精度向上. 55
  • 52.
    その他参考になった記事等 • 画像認識向けTransformerを振り返る, Qiita •“Self-Supervised Learning in Computer Vision: Past, Present, Trends”, URL • “A Survey on Contrastive Self-supervised Learning”, 2020 56

Editor's Notes

  • #2 Beyond Reward Based End-to-End RL: Representation Learning and Dataset Optimization Perspective
  • #9 Context Encoders: Feature Learning by Inpainting
  • #16 素材群
  • #26 Random Projectionを固定すると良い,MLPにBNを入れると良い.バッチサイズの選び方などのAblationも行われている.
  • #38 Headはtokenとclsで共有する.
  • #39 Multi-Cropの入れ方とかいろいろなAblationもしている.
  • #44 パット見はDiNOの方が良さそうには見える.
  • #47 基本はtokenizerを使う方が良い
  • #54 MoCo v3は訓練を伸ばしてもそこまで性能が上がらない. DINO系は全部Multi-Crop使っている.iBoTも.多分EsViTやSSTAも使っている. MAEやBEITの良いところは
  • #56 MoCo v3は訓練を伸ばしてもそこまで性能が上がらない. DINO系は全部Multi-Crop使っている.iBoTも.多分EsViTやSSTAも使っている. MAEやBEITの良いところは