Web教科書

コントラスト損失

Contrastive Loss (コントラスティブ損失)

解説

Contrastive Lossは、ディープラーニングにおいて「2つのデータが似ているか、似ていないか」を学習させるための損失関数です。主に「距離学習(Metric Learning)」と呼ばれる分野で使われます。

「ゴム紐」と「バリア」のイメージ

この損失関数の動きは、物理的な力に例えると直感的に理解できます。

  • 同じカテゴリのペア(正例):
    お互いに「ゴム紐」で繋がれていると考えてください。距離が離れていると、ゴムが縮もうとする力(損失)が働き、2つのデータを近くに引き寄せます。
  • 違うカテゴリのペア(負例):
    お互いに反発し合いますが、ある一定の距離(マージン)まで離れると、それ以上は反発しなくなります(損失が0になる)。
    「とにかく遠くへ行け!」ではなく、「とりあえずこの半径(マージン)より外に出てくれればそれでいい」という、効率的な学習を行います。

顔認証での活用(シャムネットワーク)

最も代表的な応用例は「顔認証システム」です。
同じ人の顔写真は近くに、別人の顔写真は遠くに配置されるように学習することで、未知の顔写真が入力されたときも、登録済みデータとの距離を測るだけで本人確認が可能になります。


G検定対策

出題ポイント

  • 目的:「分類(これは犬だ)」ではなく、「識別(これはAと同じか?)」を行うタスクに適している。
  • 仕組み:似ているペアの距離を最小化し、似ていないペアの距離を(マージンを超えるまで)最大化する。
  • キーワード:「距離学習」「マージン」。

よくあるひっかけ問題

  • × 似ていないデータ同士は、距離が離れれば離れるほど良いとし、無限に遠ざけようとする
    (解説)違います。ある一定の距離(マージン)以上に離れれば、それ以上遠ざける必要はないと判断し、損失はゼロになります。これにより、特徴量空間が破綻するのを防ぎます。
  • × Contrastive Lossは、1枚の画像に対して計算される
    (解説)必ず「2つのデータ(ペア)」を入力とし、その関係性を学習します。(※ちなみに3つのデータを使う場合は「Triplet Loss」と呼ばれます)。
タイトルとURLをコピーしました