トリプレット損失は、機械学習の 損失関数の一つで、ワンショット学習(限られたサンプルから効果的に一般化するようにモデルを訓練する設定)で広く用いられています。これは、 Googleの研究者によって、顔検出のための著名なFaceNetアルゴリズムのために考案されました。[1]

トリプレット損失は、計量学習をサポートするために設計されています。具体的には、類似するデータポイントは互いに接近し、類似しないデータポイントは互いに離れる埋め込み(特徴空間へのマッピング)を学習するトレーニングモデルを支援し、様々な状況における堅牢な識別を可能にします。顔検出の文脈では、データポイントは画像に対応します。
意味
損失関数は、形式 のトレーニングポイントの3つ組を用いて定義されます。各3つ組において、(「アンカーポイント」と呼ばれる)は特定の恒等式の参照点を表し、(「正の点」と呼ばれる)は点 における同じ恒等式の別の点を表し、 (「負の点」と呼ばれる)は点およびにおける恒等式とは異なる恒等式の点を表します。
をある点とし、有限次元ユークリッド空間における の埋め込みを とします。 のL2ノルムは1であると仮定します(有限次元ユークリッド空間におけるベクトルのL2ノルムはと表記されます)。訓練データセットから点の3つ組を作成します。ここでの訓練の目標は、学習後に訓練データセット内のすべての3つ組が以下の条件(「3つ組制約」と呼ばれる)を満たすようにすることです。
この変数はマージンと呼ばれるハイパーパラメータであり、その値は手動で設定する必要があります。FaceNetシステムでは、その値は0.2に設定されていました。
したがって、最小化される関数の完全な形式は次のようになります。
直感
トリプレット損失の有効性を理解するための基準となるのは、対比損失[2]である。これは、トリプレットではなくサンプルのペアに作用する。対比損失を用いた学習は、類似ペアの埋め込みを近づけ、類似しないペアを遠ざける。対比損失のペアワイズアプローチは貪欲であり、各ペアを個別に扱う。
トリプレット損失は、相対距離を考慮することで革新をもたらします。 その目標は、アンカー(クエリ)ポイントの埋め込みが、負のポイントよりも正のポイントに近くなること(マージンも考慮)です。この要件が満たされると、それ以上の距離の最適化は試みません。これは、各ペアを個別に考慮するのではなく、2つのペア(アンカー正とアンカー負)を同時に考慮することで近似されます。
トリプレット「マイニング」

トリプレット損失を用いた学習における重要な実装の詳細の一つは、トリプレット「マイニング」です。これは、最適化のためのトリプレットの賢明な選択に重点を置いています。このプロセスは、対照損失と比較して、さらに複雑な層を追加します。
トリプレット損失の訓練データを準備するための単純なアプローチでは、データセットからランダムにトリプレットを選択します。一般に、 という形式の有効なトリプレットの集合は非常に大きくなります。訓練の収束を高速化するには、困難なトリプレットに焦点を当てることが不可欠です。FaceNetの論文では、いくつかの選択肢が検討され、最終的に以下の結論に至りました。アンカーと正のペアごとに、アルゴリズムは半硬さの負ののみを考慮します。これらは、トリプレット要件に違反する(つまり「硬さ」がある)負のペアですが、正のペアよりもアンカーから遠い(硬すぎない)位置にあります。言い換えると、 と のそれぞれについて、 次式を満たすものを求めます。
この設計選択の根拠はヒューリスティックです。マイニングプロセスが「非常に難しい」負の値(つまり、正の値よりもアンカーに近い値)を無視するのは不可解に思えるかもしれません。FaceNetの設計者が行った実験では、これがしばしば退化した局所最小値への収束につながることが分かりました。
トリプレットマイニングは、各トレーニングステップにおいて、トレーニングバッチに含まれるサンプルポイント内から、バッチ内のすべてのポイントに対して埋め込みが計算された後に実行されます(これはオンラインマイニングと呼ばれます)。理想的にはデータセット全体を使用できるのですが、一般的にこれは現実的ではありません。トリプレットの大規模な探索空間をサポートするために、FaceNetの著者らは非常に大きなバッチ(1800サンプル)を使用しました。バッチは、多数の同一カテゴリのサンプルポイント(40)を選択し、それらに対してランダムにネガティブデータを選択することで構築されます。
拡張機能
トリプレット損失は、距離不等式の連鎖(ラダー)を用いて連続的な関連度を最適化することで、一連の距離順序を同時に維持するように拡張されました。これはラダー損失につながり、ランク付けタスクの学習における視覚的意味的埋め込みの性能向上に効果があることが実証されています。[3]
自然言語処理において、トリプレット損失はSBERTアーキテクチャにおけるBERTの微調整に考慮される損失関数の1つである。[4]
その他の拡張機能には、複数の否定語を指定することが含まれます (複数の否定語のランキング損失)。
参照
参考文献
- ^ Schroff, Florian; Kalenichenko, Dmitry; Philbin, James (2015). 「FaceNet:顔認識とクラスタリングのための統合埋め込み」. IEEE Conference on Computer Vision and Pattern Recognition, CVPR 2015, ボストン, MA, USA, 2015年6月7日~12日. IEEE Computer Society. pp. 815– 823. arXiv : 1503.03832 . doi :10.1109/CVPR.2015.7298682. ISBN 978-1-4673-6964-0。
- ^ Bekuzarov, Maksym (2020年4月19日). 「損失の説明:対照的損失」. Medium . 2024年6月5日時点のオリジナルよりアーカイブ。2025年1月6日閲覧。
- ^ Zhou, Mo; Niu, Zhenxing; Wang, Le; Gao, Zhanning; Zhang, Qilin; Hua, Gang (2020-04-03). 「コヒーレントな視覚的・意味的埋め込みのためのラダーロス」(PDF) . AAAI人工知能会議論文集. 34 (7): 13050– 13057. doi : 10.1609/aaai.v34i07.7006 . ISSN 2374-3468. S2CID 208139521.
- ^ Reimers, Nils; Gurevych, Iryna (2019-08-27). 「Sentence-BERT: Siamese BERTネットワークを用いた文埋め込み」. arXiv : 1908.10084 [cs.CL].