読み方 : トリプレットロス

Triplet Loss【トリプレットロス】

概要

Triplet Lossとは、機械学習で予測と正解の誤差を評価するのに用いる誤差関数の一つで、一組の3つのサンプル間の類似度に基づいて距離関係を学習するためのもの。モデルは類似性の高いデータはより近く、類似性の低いデータはより遠くなるように、効果的な特徴表現を獲得する。
Triplet Lossのイメージ画像

入力として、基準となる「アンカー」(anchor)、アンカーと同じクラスに属する「ポジティブ」(positive:正例)、異なるクラスに属する「ネガティブ」(negative:負例)の3つのサンプルが組になったデータ(triplet:三つ組)を用いる。アンカーサンプルとポジティブサンプルの間の距離と、アンカーサンプルとネガティブサンプルの間の距離を算出し、その差を損失として与える。

その際、アンカーサンプルに対してネガティブサンプルの方がポジティブサンプルよりも離れている状態が好ましくなるように損失を算出する。ただし、両者の距離の差は、あらかじめ決められた閾値(マージン)以上になることを目標とする。十分に離れたと判断されたら、それ以上無理にさらに遠ざけようとしないようにするためである。

Triplet Lossを利用する際に重要なのは、学習に効果的な「ハードネガティブ」(hard negative)なサンプルを適切に与えることである。もしネガティブサンプルがすでにアンカーサンプルから非常に遠い(全然似ていない)場合、損失はすぐにゼロになり、学習に寄与しない。「アンカーサンプルに似ているが異なるネガティブサンプル」(モデルが間違えやすいサンプル)をどれだけ用意できるかが学習の質を左右する。

(2025.11.27更新)