Contrastive Learning Overview
Contrastive Learning は、同じ image の異なる augmentation 同士は近く、異なる image 同士は遠くなるように representation を学ぶ self-supervised learning です。Vision foundation model の前半期 (2019-2021) を牽引しました。
基本 idea
InfoNCE loss が代表的です。
数式で見る InfoNCE と alignment-uniformity
Contrastive learning では、anchor view と positive view を近づけ、同じ batch または queue にある他の view を相対的に遠ざけます。Cosine similarity を 、temperature を とすると、InfoNCE loss は次のように書けます。
ここで、 と は同じ画像から作った二つの view の representation です。分子は positive pair を近づける力を表し、分母は batch 内の他の view を含む正規化項です。この式の気持ちは、「同じ画像に由来する view は同じ意味を持つので近くに置き、別の画像に由来する view は混ざらないように表現空間を広げる」というものです。
この性質は、alignment と uniformity という二つの観点でも整理できます。
は positive pair をどれだけ近づけるかを表し、 は異なる sample の representation が hypersphere 上でどれだけ一様に散らばるかを表します。Contrastive learning の難しさは、この二つのバランスにあります。Alignment だけを強めると collapse に近づき、uniformity だけを強めると意味的に近い sample まで離れすぎます。
主要 family
| 種別 | 代表例 | 特徴 |
|---|---|---|
| Contrastive | SimCLR、MoCo | Negative sample を明示的に使う |
| Non-contrastive | BYOL、SimSiam | Negative なしで collapse を回避 |
| Clustering | SwAV | Online clustering を contrastive 化 |
詳細ページ
| ページ | 内容 |
|---|---|
| SimCLR | Augmentation と large batch の contrastive |
| MoCo | Momentum encoder + memory queue |
| BYOL and SimSiam | Negative 不要の self-distillation 系 |
CLIP との関係
CLIP は image-text contrastive ですが、image-image contrastive と同じ family に属します。
JEPA との違い
JEPA は contrastive と違い、negative や augmentation invariance を直接使わず、target representation を予測します。ただし、JEPA でも collapse 回避のために stop-gradient / EMA が使われるため、設計思想は self-distillation 系と近接しています。
関連ページ
主なソース
- SimCLR: https://arxiv.org/abs/2002.05709
- MoCo: https://arxiv.org/abs/1911.05722
- BYOL: https://arxiv.org/abs/2006.07733
- SimSiam: https://arxiv.org/abs/2011.10566
- SwAV: https://arxiv.org/abs/2006.09882
- Alignment and Uniformity: https://arxiv.org/abs/2005.10242