Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[CVPR2020読み会@オンライン(前編)]Momentum Contrast for Unsupervised Visual Representation Learning

pshiko
July 04, 2020

[CVPR2020読み会@オンライン(前編)]Momentum Contrast for Unsupervised Visual Representation Learning

第三回 全日本コンピュータビジョン勉強会
CVPR2020読み会@オンライン(前編)

Momentum Contrast for Unsupervised Visual Representation Learning

pshiko

July 04, 2020
Tweet

More Decks by pshiko

Other Decks in Research

Transcript

  1. @p_shiko https://twitter.com/p_shiko Momentum Contrast for Unsupervised Visual Representation Learning (とCPCとSimCLR)

    第三回 全日本コンピュータビジョン勉強会 CVPR2020読み会@オンライン(前編)
  2. 紹介論文 Paper: https://arxiv.org/abs/1911.05722 Code:https://github.com/facebookresearch/moco Comparison with previous methods on object

    detection fine-tuned on PASCAL VOC Instance Discriminationする際のNegativeSampleの取得方法を効率化して精度あげたヨ!
  3. CPC(2/6): CPCの基本的なidea • コンテキストのAggregationにはRNN系のエンコーダー • タスクはコンテキストベクトルとそれに紐づく PositiveSampleの表現ベクトルとの相 互情報量最大化 (実際にはPositive SampleとNegative

    Sampleの分類問題を解く(NCE)で相互情報 量最大化となる 論文のAppendix: A参照 ) Context推論にはRNN系のエンコーダ 入力次元での比較ではなく、 潜在表現上での比較 入力が系列情報であれば使えるUniversalなself-supervised手法 コンテキスト コンテキスト
  4. CPC(4/6): CPC -> CPC v2 特に画像向けに最適化した CPCとして、 各種Updateを追加 • ModelCapacity

    ◦ ResNet-101->ResNet161 • Bottom-Up Spatial Prediction ◦ 上パッチで予測→上下パッチで予測 • LayerNomalization ◦ Batch Normalization->Layer Normalization • RandomColorDropping ◦ AugmentationとしてColorDropping追加 • Horizontal Spatial Prediction ◦ 上下パッチで予測→上下左右で予測 • Larger Patches ◦ パッチ数を64*64 -> 80*80 • Further Patch Based Augmentation ◦ パッチごとに強いAugmentation
  5. other image Instance Discrimination [1805.01978] Unsupervised Feature Learning via Non-Parametric

    Instance-level Discrimination クラス分類ではなく, 同じ画像かどうかを分類する学習 (Instance Discrimination)によって 識別に役立つ特徴量が学習できるという提案 MoCoが改良をしたのは ココ Positive: 入力と同じ画像をAugmentした画像 Negative: 入力と異なる画像を Augmentした画像 とした際の分類問題を解く (NCE) MoCoやSimCLRなどの手法でも利用されるベースの手法 Augmen tation Pos Neg Neg input CVPR2018 犬 犬 ゴ リ ラ
  6. MoCo(1/7): MoCoが解決したい課題 Instance Discriminationのタスクを Key-Queryのタスクであると解釈 Pos(同一画像をAugしたもの)と Neg(他画像)のembeddingが入ったDict Query画像のEmbedding Query Key

    大きな違いはKeyの更新タイミング end-to-end memory-bank Keyの更新 1バッチ毎 Nバッチ毎 QueryとKeyの Encoder 異なるEncoderが 使える 1種類の Encoder End-to-End方式  + 最新のEncoderでKeyを生成できる  ー 計算コストが高くKey数を大きくできない Memory bank方式  + 計算コストが低くKey数を大きくできない  ー 常に古いEncoderで生成されたKeyで学習 Keyの鮮度と確保可能なKey数のトレードオフを解決する必要がある
  7. • Key数を大きくするため、 queue形式を採用 ◦ 古いKeyを削除しながら, 大きなKey数を保てる • 学習の安定のために KeyのEncoderに Momentum

    Encoderを採用 Query Encoderとの自身の加重平均によりパラメータを 更新することで, 急激なパラメータ変化を抑えつつ学習を進 められる ◦ なぜmomentum encoder? ▪ KとQのencoderをそれぞれ学習するのは計算コストが高 い ▪ KとQのencoderを共通化すると, 毎更新毎にparameterが 大きく変化 →Keyのembeddingが安定しなく学習に悪影響を確認 MoCo(2/7): 提案手法 momentum encoderのパラメータ query encoderのパラメータ momentum encoderのパラメータ更新 mには0.999など非常に大きな値を利用
  8. MoCo(3/7): 提案手法 • 実装 ◦ EncoderにはResNet (GAPのあと), 入力は224×224pixel ◦ Augmentation

    ▪ resize, color-jittering, flip, grayscale conversion, ◦ Shuffling Batch Normlization ▪ 分散学習時にBNの統計量が各ノードごとに計算されるのを利用して, ノードに割り当てられるSubsetが QueryとKeyでかぶらないようにすることで統計量からのリークを防ぐ ◦ ImageNet-1M: 8GPUsで53時間 Instagram-1B: 64GPUsで6日 • データセット ◦ ImageNet-1M (IN-1M) ▪ 1.28million images, 1000classes (所謂ImageNet-1K) ◦ Instagram-1B (IG-1B) ▪ 1billion images ▪ Instagramからの抽出なので, ImageNet-1Mよりlong-tailed, unbalanced
  9. • Transfer Learning 別タスクのbackboneに使えるような良い特徴が得られるネットワークを学習できているかを確認 1. 各種手法でSelf-supervised Learning 2. 上記で学習したモデルを backboneとしてObject

    DetectionモデルやSegmentationモデルに組み込 みFineTuneを行い精度確認 (Transfer Learning時には, epoch数及びdown stream taskのhyper parameterは比較対象のsupervisedと 揃える) • Linear Classification 線形識別器のみで分類ができるような良い特徴が得られているかを確認 1. 各種手法でSelf-supervised Learningしパラメータを固定 2. 上記で学習したモデルから得られる featureを入力として学習する線形識別器でどれだけ分 類精度がでるかを評価 MoCo(4/7): 提案手法
  10. MoCo(5/7): 評価(LinearClassification) vs other contrastive learning method 各ContrastiveLearningの手法でpretrainingしたfeatureを, 線形識別機で分類した場合の精度比較 (ImageNet)

    Key のサイズ • Keyサイズ大→精度向上の傾向 • memory-bankはKeyサイズを大きくできている が精度が低い • end-to-endは精度高いがkeyサイズを大きくで きていない • MoCoは同じKeyサイズのend-to-endと同等性 能かつ、Keyサイズを大きくすることができる • 識別器の学習にはlearning rate 30程度が良 かった →supervisedでpretrainしたモデルと大分こと なるembeddingが得られていそう
  11. Transfer Learning (Imagenet -> PascalVOC Object Detection) • Imagenetを使ったPretrainedモデルで, supervisedの精度を超える

    • IG-1Bなどラベルなしの大規模データセットを使うことも精度向上に効果があることを確認
  12. SimCLR (A Simple Framework for Contrastive Learning of Visual Representations)

    • MoCoの論文で言うところの , end-to-endでqueryとkeyの encoderが共通のパターン (MoCoでは否定されていたパターン ) • 大きな違いはencoderの後にMLPを挟む. ◦ MLPの後のrepresentationでcontrastive learning ◦ 実際にdown stream taskで利用するのはMLPの前 • その他有効なAugmentationの調査なども行っている (color jitterは特に有効) 学習にはここを使う 他のタスクで利用 するのはここ シンプルな変更により, MoCo, CPCv2などを超える!
  13. SimCLRv2 (SOTA) https://github.com/google-research/simclr • 主な変更点 ◦ より深いモデルの利用 (ResNet-152 (3X)) ◦

    Projection HeaderのMLPを2から3 layerに変更 ◦ 利用するRepresentationをMLPの1 layer目の後に変更 ◦ Momentum Encoderを利用
  14. • データドメインに依存する識別系の手法 (Rotationとか)を超える • 各手法の共通点は相互情報量最大化を NCEで解いている • linear classificationではimagenetのsupervised pretrainedモデルを超える

    まとめ MoCo, SimCLRのv2はお互いの手法を取り入れ差分が少ない タスク メインの貢献 CPC 系列情報のコンテキストと先の入 力の相互情報最大化 汎用的な教師なし学習のスキームの提案 MoCo Instance Discrimination 効率的なNegativeSample手法の提案 SimCLR Instance Discrimination 効果的なアーキテクチャと Augmentationの組み 合わせの提案 実用的にも大規模ラベルなしデータで学習したモデルを利用するのがスタンダードになるかもしれない !!