Contrastive Lossとは
Contrastive Lossとは、似ているデータ同士の距離を小さくし、異なるデータ同士の距離を大きくするように学習させる損失関数です。対照学習や顔認識などの表現学習で用いられます。
この用語はG検定シラバスの「13. 誤差関数」に含まれます。 章全体の用語は用語解説③(全52語)にまとまっています。
一言でいうと
似たもの同士は近く、違うもの同士は遠くなるように学習させる損失関数です。
定義
\( L = (1 - y) \cdot \left( \frac{1}{2} d^2 \right) + y \cdot \left( \frac{1}{2} \max(0, m - d)^2 \right) \)
\( y \) はペアが異なるクラスかを示すラベル(\( y = 1 \) なら異なるクラス、\( y = 0 \) なら同じクラス)、\( m \) はマージン、\( d \) はペアの距離です。
2つのケースで式が切り替わる
- 同じクラスのペア:距離 \( d \) をそのまま小さくするよう働く
- 異なるクラスのペア:距離がマージン \( m \) より小さいときだけ罰を与え、十分に離れていれば何もしない
マージンがあることで、無限に引き離そうとする無駄な学習を防いでいます。
Triplet Lossとの違い
Contrastive Lossは2つ1組(ペア)で学習しますが、Triplet Lossは3つ1組で学習します。この個数の違いが最も分かりやすい区別です。
表現学習という位置づけ
この損失関数が目指すのは分類ではなく、「似ているかどうか」を測れる特徴空間を作ることです。これを表現学習(距離学習)といいます。
いったん良い特徴空間ができれば、学習時に存在しなかった対象でも距離を測って判定できます。顔認識で新しい人物を後から登録できるのはこのためです。
混同しやすい用語との違い
| 用語 | ポイント |
|---|---|
| Contrastive Loss | ペア(2つ)で学習。同クラスは近づけ、異クラスはマージンまで離す |
| Triplet Loss | 3つ組(基準・正例・負例)で学習 |
🎯 G検定での押さえどころ
- ペア(2つ1組)で距離を学習する
- マージンより離れていれば罰を与えない
- Triplet Loss(3つ1組)との違い
⚠️ よくある誤りの選択肢
- 「Contrastive Lossは3つのデータを用いて学習する」→ 誤り。それはTriplet Lossです
📘 もっと深く学ぶ
- 数式レベルまで踏み込んだ解説 → 医療AIナビ「距離学習(Metric Learning)」(E資格向け)
関連する用語
ご利用にあたって 本ページの内容は、JDLAが公開しているG検定シラバス2024や公式テキストなど、一般に公開されている情報をもとに独自に整理・解説したものです。実際の試験の出題内容を示すものではなく、また合格を保証するものでもありません。制度・法令・試験要項は変更されることがあるため、最新の情報は必ずJDLA公式サイトでご確認ください。