読み方 : トリプレットロス
Triplet Loss【トリプレットロス】
概要

入力として、基準となる「アンカー」(anchor)、アンカーと同じクラスに属する「ポジティブ」(positive:正例)、異なるクラスに属する「ネガティブ」(negative:負例)の3つのサンプルが組になったデータ(triplet:三つ組)を用いる。アンカーサンプルとポジティブサンプルの間の距離と、アンカーサンプルとネガティブサンプルの間の距離を算出し、その差を損失として与える。
その際、アンカーサンプルに対してネガティブサンプルの方がポジティブサンプルよりも離れている状態が好ましくなるように損失を算出する。ただし、両者の距離の差は、あらかじめ決められた閾値(マージン)以上になることを目標とする。十分に離れたと判断されたら、それ以上無理にさらに遠ざけようとしないようにするためである。
Triplet Lossを利用する際に重要なのは、学習に効果的な「ハードネガティブ」(hard negative)なサンプルを適切に与えることである。もしネガティブサンプルがすでにアンカーサンプルから非常に遠い(全然似ていない)場合、損失はすぐにゼロになり、学習に寄与しない。「アンカーサンプルに似ているが異なるネガティブサンプル」(モデルが間違えやすいサンプル)をどれだけ用意できるかが学習の質を左右する。
(2025.11.27更新)