HyperAI超神経

三重項損失 三重項損失関数 

三重項損失は深層学習の損失関数であり、アンカー ポイントと同じアイデンティティを持つポジティブ サンプルの間の距離を最小化し、アンカー ポイントと異なるアイデンティティを持つネガティブ サンプルの間の距離を最小化することを指します。

「トリプル」という用語は、次の 3 つのデータ ポイントを指します。アンカーポイント時間通りにそしてマイナスポイント。アンカー ポイントは埋め込みを学習する中心のデータ ポイント、正のポイントはアンカー ポイントに類似したデータ ポイント (同じ個人の画像など)、負のポイントはデータ ポイントですアンカーポイントとは全く違います。アンカー (無関係な個人の画像など) とは異なります。

数学的には、三重項損失は次のように表すことができます。

  • f() は、埋め込みの生成を担当する関数を表します。
  • a = アンカー画像
  • pはポジティブなイメージを意味します
  • nはネガティブなイメージを意味します
  • Ɑ はマージン ハイパーパラメータを表し、正と負の埋め込み距離間の間隔の下限を設定します。

三重項損失関数の中核はマージン α にあります。これは、正のアンカー埋め込みと負のアンカー埋め込みの二乗距離間の必要最小限の差を設定するハイパーパラメータです。このマージンを課すことにより、損失関数は正の距離と負の距離の間で望ましい分布を促進し、意味のある表現を学習しやすい環境を作り出します。これらの正および負の距離は、距離計量 (通常はユークリッド距離) を使用して計算されます。 

Triplet Loss は、顕著なデータ ポイント間の固有の関係を埋め込む方法を学習するという基本的な目標に基づいています。これは、主に分類や値の予測などのタスクのために設計された従来の損失関数とは異なります。顔認識など、顔の特徴の微妙な違いが重要なシナリオでは、生のピクセルでは簡単に不可能な方法で個人を区別できる埋め込み (またはエンコーディング) が非常に貴重です。

トリプレット ロスは、この課題に対する解決策として提供されます。ニューラル ネットワークがアンカー インスタンスに関連する正の例と負の例のコンテキストに基づいて埋め込みを学習するように促すことで、データの関係の本質を本質的に捉える識別特徴を取得するための扉が開かれます。

トリプルセレクション戦略

適切なトリプレットを選択することは、トリプレット ロスの有効性にとって非常に重要です。実際には、ランダムにトリプルを選択すると、収束が遅くなったり、最適解が得られなかったりする可能性があります。したがって、情報が豊富なトリプルを効率的に選択するために、いくつかの戦略が採用されています。

  • オンライントリプルマイニング:オンライン トリプル マイニングでは、考えられるすべてのトリプルを使用するのではなく、損失値に基づいてトリプルを選択します。最も困難なトリプル、つまりゼロに近い損失値を持つトリプルのみが勾配の計算に使用されます。このアプローチにより、収束が高速化され、学習プロセスが困難な例に集中します。
  • ハードネガティブマイニング:トリプルに対して選択されたネガティブ サンプルは、ポジティブ サンプルよりもアンカーと区別するのが難しいはずです。ハード ネガティブ マイニングでは、マージンに最も違反しているネガティブ サンプルを選択することで、ネットワークが困難なインスタンスからより効率的に学習できるようにします。
  • セミハードネガティブマイニング:ランダムに選択されたネガとハード ネガのバランスをとることを目指しています。セミハード ネガティブは、ポジティブよりもアンカーから遠いネガティブですが、それでもプラスの損失値を持ちます。これらは、単純なソリューションに収束することなく、ネットワークをより適切に一般化するのに役立つ中間点を提供します。

三重項損失のバリエーション

トリプレット ロスの基本式は、その有効性を高めるためにいくつかの変更と機能強化が加えられています。

  • バッチハードトリプレット損失:この方法では、アンカーされた正のペアごとに最も困難な負の例を選択するのではなく、トレーニング サンプルのバッチの中で最も困難な負の例を考慮します。これにより、バッチ内の変動が考慮され、計算効率が向上します。
  • 比較損失:トリプレット損失は、コントラスト損失の拡張として見ることができ、トリプルの代わりに、アンカーされたポジティブな例とアンカーされたネガティブな例のペアが考慮されます。
  • 4倍の損失:この拡張では、トリプルに 2 番目の正の例を追加し、アンカーと正の例の間の関係をさらに強調します。
  • 代理店ベースの損失:エージェントベースの方法には、さまざまなカテゴリを表す一連のエージェント ベクトルの学習が含まれます。これらのエージェントは埋め込み空間のランドマークとして機能し、トリプルの形成と意味のある表現の学習を容易にします。

三重項損失の応用

トリプレット損失はさまざまな分野、特に意味のある埋め込みを学習することが重要な分野に応用できます。

  • 顔認識: トリプレット ロスの最も初期の応用例の 1 つは、コンピューター ビジョン、特に顔認識の分野でした。 Triplet Loss は、個人内の差異を最小限に抑え、個人間の差異を最大化する埋め込みを学習することで、堅牢で識別力のある顔埋め込みを作成するのに役立ちます。
  • 画像の取得: Triplet Loss を使用して、コンテンツベースの画像検索システムを構築できます。画像は埋め込みとしてエンコードされるため、類似の画像を取得するには、クエリ画像の埋め込みに近い埋め込みを見つけることが問題になります。
  • 担当者の再識別:ビデオ監視などのシナリオでは、三重項損失を使用して、異なる照明やポーズの下でも、異なるカメラ ビューで同じ人物を認識できるモデルを開発できます。
  • 情報検索:自然言語処理では、三重項損失を適用してテキスト文書の埋め込みを学習し、類似性に基づく検索とクラスタリングを可能にすることができます。

参考文献

【1】https://encord.com/glossary/triplet-loss-definition/