1行定義
Triplet Lossとは、アンカー、同じクラスの正例、異なるクラスの負例の3つ組を使い、正例が負例より近くなるよう埋め込みを学ばせる損失関数のことです。
くわしく
Triplet Lossは、3つのデータの組(トリプレット)を使って、「似たものは近く、違うものは遠く」に並ぶ埋め込みを学ばせる損失関数です。2015年にGoogleの研究者が、顔認識のシステムFaceNetで用いたことで広く知られるようになりました。
計算の仕組み
3つ組は、基準となるアンカーa、アンカーと同じ人物などの正例p、別の人物などの負例nからなります。3つを同じネットワークで埋め込みに変換し、アンカーからの距離を比べます。損失は次の式で表します。
L = max(0, d(a, p) − d(a, n) + α)
dは埋め込みの間の距離で、FaceNetではユークリッド距離の2乗を使います。αはマージンです。負例までの距離が正例までの距離よりα以上大きければ損失は0、そうでなければ足りない分が損失になります。
Contrastive Lossとの違い
Contrastive Lossは、組ごとに距離そのものを縮めたり広げたりします。Triplet Lossは「正例は負例より近い」という相対的な関係を学びます。同じ人物の顔を1点に集めなくても、他人より近ければよいので、表現に余裕を残せます。
3つ組の選び方
無作為に3つ組を作ると、多くは初めから条件を満たしていて損失が0になり、学習に役立ちません。そこで、負例がアンカーに近い難しい組を選んで学習します。ただし最も難しい組ばかりを選ぶと、学習がうまく進まないことがあります。FaceNetでは、ミニバッチの中から、正例よりは遠いがマージンの内側にある負例を選ぶ工夫をしました。
使われ方
学習した埋め込みは距離で比べるだけなので、新しい人物を登録してもモデルを学習し直す必要がありません。顔認証や、似た画像の検索などに使われます。
覚え方
「仲間は他人より、マージン分だけ近くに」と覚えます。
G検定での出題
出題のされ方
Contrastive Lossと並ぶ距離学習の誤差関数として登場します。アンカー・正例・負例の3つ組を使うこと、マージンの役割、顔認証のように学習時にない人物も距離で照合できる用途が問われます。
混同しやすい用語
| 用語 | 意味 |
|---|---|
| Triplet Lossこのページの用語 | アンカー、同じクラスの正例、異なるクラスの負例の3つ組を使い、正例が負例より近くなるよう埋め込みを学ばせる損失関数 |
| Contrastive Loss | 2つのデータの組について、似た組は埋め込みの距離を縮め、似ていない組はマージン以上に離すよう学習させる損失関数 |
◯×チェック
次の文が正しいか、誤りかを選んでください。
-
Triplet Lossのマージンを0にすると、アンカーから正例までと負例までの距離が等しい3つ組でも、損失は0になる。
答えを見る
答え ◯ 正しい
損失はmax(0, d(a, p) − d(a, n) + α)です。α = 0で2つの距離が等しければ、max(0, 0) = 0です。マージンを正の値にすると、負例を正例より一定以上遠ざけるまで損失が残ります。
-
Triplet Lossの学習で3つ組を無作為に選ぶと、すでに条件を満たして損失が0になる組が多くなり、学習の効率が下がる。
答えを見る
答え ◯ 正しい
損失が0の組からは、重みを更新する勾配が生じません。そのため、負例がアンカーに近い組を選んで学習する工夫(トリプレットマイニング)が重要になります。
-
Triplet Lossは、Contrastive Lossと同じく、2つのデータの組と、その組が似ているかどうかのラベルから損失を計算する。
答えを見る
答え × 誤り
組とラベルを使うのはContrastive Lossです。Triplet Lossは、アンカー・正例・負例の3つのデータから1つの損失を計算し、2つの距離の大小関係を学びます。
この用語の練習問題
出典
- G検定 試験出題範囲(シラバス2024)第1.4版 (技術分野 項目13 誤差関数)
- Florian Schroff, Dmitry Kalenichenko, James Philbin, FaceNet: A Unified Embedding for Face Recognition and Clustering, CVPR 2015 (3.1 Triplet Loss、3.2 Triplet Selection)
- Raia Hadsell, Sumit Chopra, Yann LeCun, Dimensionality Reduction by Learning an Invariant Mapping, CVPR 2006, 1735–1742