対照学習(Contrastive Learning)

Contrastive Learning

対照学習(Contrastive Learning)とは、類似するデータペア(正例ペア)の表現を近づけ、異なるデータペア(負例ペア)の表現を遠ざけるように学習する自己教師あり学習の手法です。ラベルなしで高品質な特徴表現を学習できます。

正例ペアと負例ペアの構成

同じ画像に異なるデータ拡張(回転、色変換等)を適用した2つのビューを正例ペアとし、異なる画像のビューを負例ペアとします。モデルは正例ペアを近く、負例ペアを遠くに配置する表現空間を学習します。

表:対照学習(Contrastive Learning)の要点まとめ
ひとことで言うと似ているペアは近づけ、違うペアは遠ざけるように表現を学ぶ手法。
どこで使うラベルなしデータからの事前学習、画像検索、文ベクトルの学習。
注意点「違うペア」の選び方が性能を大きく左右する。大きなバッチが必要になりやすい。

代表的な手法

SimCLR(大量の負例を使用)、MoCo(モメンタムエンコーダーを使用)、BYOL(負例不要)、Barlow Twins(冗長性削減)、VICReg(分散・不変性・共分散の正則化)などがあります。

図:対照学習のしくみ
11枚の画像元データ
▶
22通りに加工回転・切り抜きなど
▶
3同じもの=近づける正例ペア
▶
4別画像=遠ざける負例ペア
▶
5良い表現を獲得ラベルなしで学習完了

下流タスクへの応用

対照学習で獲得した表現は、少量のラベル付きデータでのファインチューニングにより、分類・検出・セグメンテーションなどの下流タスクで高い性能を達成します。