【たいしょうがくしゅう】
対照学習(Contrastive Learning) とは?
最終更新:
💡 ペアの関係を比べて、データの特徴を学ぶ
正例と負例のペアを対比し、正例の類似度を負例より高くするように特徴表現を学ぶ手法。ペアは学習方法に応じて作り、自己教師あり学習にも教師あり学習にも使う。
📌 このページのポイント
- 正例と負例を対比して、特徴表現を学ぶ
- SimCLRでは同じ画像の2つの拡張ビューを正例にする
- CLIPでは対応する画像とテキストのペアを使う
- 負例が意味的に別種類とは限らず、ペアの作り方が重要
何と何を比べるの?
学習上、対応するものとして扱う正例と、それ以外として扱う負例を比べるよ。正例の類似度を負例より高くするように表現を学ぶ。どのペアを正例にするかは、方法によって違うんだ。
ラベルがなくても正例を作れる?
別画像なら、必ず違う種類なの?
そうとは限らないよ。別の猫の写真も負例になることがある。学習上の正例・負例という区分が、そのまま意味の同じ・違うを保証するわけではないんだ。
CLIPではどうするの?
データで対応している画像と説明文を正例にし、バッチ内の対応していない組と比べるよ。画像とテキストの表現を共通の空間で比べられるように学び、文章を使った画像分類などにつなげるんだ。
損失関数はどう使うの?
SimCLRはNT-Xentという損失を使い、正例とバッチ内の負例の類似度を比べるよ。エンコーダの出力を投影ヘッドで変換して損失を計算し、学習後はエンコーダの表現を利用する。対照学習全体が、この構成だけを指すわけではないんだ。
もっと詳しく知りたい人へ
教師ありの対照学習では、正例は何になる?
SupConのように分類ラベルを使う方法では、同じクラスのサンプルを正例としてまとめられる。SimCLRの「同じ元画像からの2ビュー」とはペアの条件が異なる。対照学習と自己教師あり学習は同義ではない。
まとめ:ざっくりこれだけ覚えればOK!
「対照学習」って出てきたら「正例と負例の関係を比べて、データの表現を学ぶ方法」と思えばだいたいOK!
📖 おまけ:英語の意味
「Contrastive Learning」 = 対照的な学習
💬 Contrastiveは対照・対比という意味だよ。正例と負例を比べながら表現を学ぶことから、この名前が付いているんだ