Triplet Loss 是機器學習中的一種損失函數,特別用於訓練嵌入表示(embedding),以區分相似和不相似的樣本。它通過比較三個樣本組合(稱為三元組 triplet)來實現學習:一個錨點(anchor),一個與錨點相似的正樣本(positive),以及一個與錨點不相似的負樣本(negative)。
Triplet Loss 的核心目標:
• 令錨點(anchor)和正樣本(positive)在嵌入空間中的距離儘可能接近。• 同時使錨點(anchor)和負樣本(negative)之間的距離儘可能遠離錨點,且至少與正樣本距離相差一個預先設定的邊界(margin)。
主要應用:
• 人臉識別:如 FaceNet,學習人臉特徵,使同一人的圖像更接近,異人的圖像更遠。
• 圖像檢索:根據圖片內容找相似圖片。
• 文本與圖像的嵌入學習:如多模態對齊。
• 語音識別和生物特徵辨識等其他領域。
優點:
• 直接優化樣本之間的相似度關係。
• 能學習到更具判別性的特徵表示。
• 在少量樣本學習(one-shot learning)上效果突出。
簡單比喻:
Triplet Loss 就像在訓練一個模型,讓模型判斷一對朋友(anchor 和 positive)距離很近,而跟陌生人(negative)的距離則遠遠分開,並且保持一定的安全距離(margin),從而學會辨別不同人。
總結:
Triplet Loss 通過比較錨點、正樣本和負樣本的距離,推動模型學習強區分性的嵌入表示,是度量學習和識別任務中的重要損失函數。

















