Triplet Loss
解説
Triplet Loss(トリプレット損失)は、3つのデータを1組(トリプレット)にして学習を行う誤差関数です。Contrastive lossをより高度にした手法と言え、GoogleのFaceNetなどの顔認識技術で有名になりました。
3つのデータの内訳は以下の通りです:
- Anchor(アンカー):基準となるデータ(例:Aさんの写真1)
- Positive(ポジティブ):アンカーと同じカテゴリのデータ(例:Aさんの写真2)
- Negative(ネガティブ):アンカーと異なるカテゴリのデータ(例:Bさんの写真)
学習の目標は、「アンカーとポジティブの距離」を「アンカーとネガティブの距離」よりも小さくすることです。つまり、同じ人の写真は近くに、違う人の写真はそれよりも遠くに配置されるように特徴空間を調整します。

Contrastive lossが「ペアの絶対的な距離」を気にしていたのに対し、Triplet Lossは「ポジティブの方がネガティブよりも近い」という「相対的な距離」を重視します。これにより、より細かいニュアンスの判別や、複雑な特徴の学習が可能になります。
G検定対策
出題ポイント
- Anchor、Positive、Negativeの3つのデータセットを用いる。
- Anchorに対して、Positiveを近くに、Negativeを遠くに配置するよう学習する。
- 絶対距離ではなく、3者間の「相対的な距離」を学習に利用する。
ひっかけ対策
- 「Triplet Lossは2つのデータの類似度のみを測る」という記述は誤り(3つ使います)。
- 「NegativeをできるだけAnchorに近づけるように学習する」という記述は誤り(遠ざけるのが正解)。
