対照学習(Contrastive Learning)とは、類似するデータペア(正例ペア)の表現を近づけ、異なるデータペア(負例ペア)の表現を遠ざけるように学習する自己教師あり学習の手法です。ラベルなしで高品質な特徴表現を学習できます。
正例ペアと負例ペアの構成
同じ画像に異なるデータ拡張(回転、色変換等)を適用した2つのビューを正例ペアとし、異なる画像のビューを負例ペアとします。モデルは正例ペアを近く、負例ペアを遠くに配置する表現空間を学習します。
| ひとことで言うと | 似ているペアは近づけ、違うペアは遠ざけるように表現を学ぶ手法。 |
|---|---|
| どこで使う | ラベルなしデータからの事前学習、画像検索、文ベクトルの学習。 |
| 注意点 | 「違うペア」の選び方が性能を大きく左右する。大きなバッチが必要になりやすい。 |
代表的な手法
SimCLR(大量の負例を使用)、MoCo(モメンタムエンコーダーを使用)、BYOL(負例不要)、Barlow Twins(冗長性削減)、VICReg(分散・不変性・共分散の正則化)などがあります。
11枚の画像元データ
▶
22通りに加工回転・切り抜きなど
▶
3同じもの=近づける正例ペア
▶
4別画像=遠ざける負例ペア
▶
5良い表現を獲得ラベルなしで学習完了
下流タスクへの応用
対照学習で獲得した表現は、少量のラベル付きデータでのファインチューニングにより、分類・検出・セグメンテーションなどの下流タスクで高い性能を達成します。