Contrastive Loss/zh

    From Marovi AI
    This page is a translated version of the page Contrastive Loss and the translation is 100% complete.
    Other languages:
    Article
    Topic area representation learning
    Prerequisites Loss function, Embedding, Neural network


    概述

    對比損失是一類訓練目標,通過將語義相似的輸入的表示相互拉近、將不相似的輸入的表示相互推遠來塑造一個嵌入空間。對比目標不預測目標標籤,而是比較成對(或更大元組)的樣本,當相似對距離過遠或不相似對距離過近時對模型進行懲罰。Hadsell、Chopra 和 LeCun 在 2006 年為降維任務提出的最初表述,使用了基於歐幾里得距離並帶固定邊界的合頁函數。[1]此後該思想已推廣為一個內容廣泛的工具集——包括三元組損失InfoNCENT-Xent有監督對比損失——支撐著現代的度量學習人臉識別自監督學習系統,例如SimCLRMoCoCLIP

    起源與動機

    Hadsell 等人提出對比損失作為一種學習不變低維映射的方法,無需像主成分分析自編碼器那樣依賴全局重建目標。給定一個將輸入$ x $映射嵌入$ f_\theta(x) \in \mathbb{R}^d $孿生網絡,該網絡在被標記為相似($ y = 0 $)或不相似($ y = 1 $)的成對樣本$ (x_i, x_j) $上進行訓練。損失直接塑造嵌入空間中的歐幾里得距離,避開了對類別標籤的需要,並允許在弱監督信號上進行訓練,例如視頻中的時間相鄰、同一圖像的增強或文本中的共現。

    這一視角將表示學習重新表述為一個幾何問題:對比學習不問"該輸入屬於哪一類",而是問"哪些輸入應當彼此靠近"。這一轉變意義重大,因為獲取成對樣本遠比逐類標註成本低,而所學到的嵌入通過簡單的線性探測或最近鄰檢索就能很好地遷移到下游任務。

    表述

    $ D_{ij} = \|f_\theta(x_i) - f_\theta(x_j)\|_2 $表示兩個嵌入之間的歐幾里得距離,$ y_{ij} \in \{0, 1\} $為成對樣本的標籤($ 0 $ = 相似,$ 1 $ = 不相似)。帶邊界$ m > 0 $的經典對比損失

    $ {\displaystyle \mathcal{L}_{\text{contrastive}}(x_i, x_j) = (1 - y_{ij})\, \tfrac{1}{2} D_{ij}^2 + y_{ij}\, \tfrac{1}{2} \max(0,\, m - D_{ij})^2.} $

    第一項以與平方距離成正比的二次懲罰將相似對拉近。第二項——基於負距離的合頁函數——將不相似對推開,但僅推到它們之間至少相距$ m $單位為止;越過邊界後,梯度為零,優化器會忽略該對。兩項之間的這種不對稱性至關重要:若無邊界,損失會將不相似對推向無限遠,這既會破壞訓練穩定性,也會在已經容易區分的負樣本上浪費容量

    實際中會出現若干基本形式的變體。一些實現去掉$ \tfrac{1}{2} $係數,直接使用距離而非平方距離,或將損失建立在餘弦相似度而非歐幾里得距離之上。距離度量的選擇很重要:當嵌入經過 L2 歸一化時,餘弦相似度是標準做法,此時歐幾里得距離和餘弦距離單調相關,邊界則獲得了角度間隔的幾何解釋。

    變體

    現代對比學習以每次損失評估比較兩個以上樣本的表述為主導,這能產生方差更低的梯度和每批次更強的梯度信號。

    • 三元組損失(Schroff 等,2015,FaceNet)作用於由錨點、正樣本和負樣本組成的三元組$ (x_a, x_p, x_n) $,損失為$ \max(0,\, D_{ap}^2 - D_{an}^2 + m) $。它隱式地強制相對順序而非絕對距離,被廣泛用於人臉識別和圖像檢索。[2]
    • InfoNCE(van den Oord 等,2018)將對比學習視為多類分類問題:給定一個錨點和$ K $個候選中的一個正樣本,預測哪個是正樣本。損失為$ -\log \frac{\exp(s_{ap}/\tau)}{\sum_{k} \exp(s_{ak}/\tau)} $,其中$ s $是相似度分數,$ \tau $溫度InfoNCE是錨點與正樣本視圖之間互信息的一個下界。[3]
    • NT-Xent(歸一化溫度縮放交叉,Chen 等,2020)是SimCLR的目標函數:在 L2 歸一化嵌入上、使用餘弦相似度的 InfoNCE 風格損失,將批內其他所有樣本都視為負樣本。大型批量(4096 或更大)免費提供負樣本。[4]
    • 有監督對比損失(Khosla 等,2020)將 NT-Xent 擴展到有監督場景,將批內同類的所有樣本都視為正樣本,在分類基準上往往優於交叉熵損失[5]
    • N 對損失(Sohn,2016)和提升結構化損失(Oh Song 等,2016)是中間形式,將一個錨點與一個批次內的多個負樣本進行比較,早於並預示了 InfoNCE/NT-Xent 系列。

    訓練與推理

    使用對比損失進行訓練的核心問題是如何構造具有信息量的成對樣本。隨機負樣本通常易於區分,導致梯度為零並浪費算力。有若干策略來解決這一問題:

    • 困難負樣本挖掘選擇當前模型感到困惑的負樣本——那些儘管標籤不同但與錨點相似度高的樣本。FaceNet 推廣了半困難挖掘:選擇比正樣本更遠但仍在邊界內的負樣本。
    • 內存庫與隊列(Wu 等,2018;MoCo)跨批次維護一大批負樣本嵌入,使負樣本數量與批量大小解耦,代價是特徵略有過時。
    • 動量編碼器(MoCo、BYOL)將負樣本編碼器作為查詢編碼器的指數移動平均進行更新,提高了存儲特徵的一致性。
    • 大批量SimCLR)通過將批內所有樣本作為負樣本來繞過隊列;這需要大量加速器內存,但簡化了流水線。

    InfoNCE風格損失中的溫度$ \tau $是最敏感的超參數之一。較低的溫度($ \tau \approx 0.05 $$ 0.1 $)會使softmax更尖銳,並實際上對困難負樣本進行加權;較高的溫度產生更平滑的梯度但信號更弱。Wang 和 Liu(2021)將這一權衡分析為一致性與容忍度之間的平衡。

    在推理時,經過對比訓練的編碼器通常以兩種方式使用:作為下游任務的特徵提取器,配合一個線性分類頭;或者直接用於檢索、聚類,或針對參考集合進行零樣本匹配。

    與其他目標的比較

    對比損失交叉熵損失的區別在於它不要求固定的標籤詞表。這正是開放詞表模型如CLIP得以實現的原因,在這些模型中"類別"是任意的文本提示。與具有參數化最後一層的 softmax 分類相比,對比頭是非參數化的——類別原型是從數據中即時計算得到的——這在標籤集合大、動態或無界時具有優勢。

    對比目標與噪聲對比估計NCE)密切相關,後者通過區分真實數據與噪聲樣本來估計概率模型。InfoNCE明確了這一聯繫:它是 NCE 的多類推廣,並對互信息給出了下界。

    與非對比的自監督方法相比——如BYOLSimSiamVICReg,它們通過停止梯度或協方差正則化避免使用顯式負樣本——對比方法在概念上更簡單,但對批量大小和負樣本質量更為敏感。近期工作(Tian 等,2021)表明這兩類方法比看上去更為相似,可以統一在一個資訊理論框架之下。

    局限性

    對比損失對"相似"和"不相似"的定義較為敏感。當成對樣本的標籤存在噪聲,或數據流形中包含許多被標記為負樣本的近似重複樣本時,訓練效果會下降。在自監督場景下,常用的正樣本——同一圖像的兩次增強——是一種啟發式做法,過於激進的增強可能破壞語義區分(例如,顏色抖動會破壞細粒度分類中的物種線索)。

    第二個局限是對負樣本數量和質量的依賴。小批量下的NT-Xent表現不佳;MoCo風格的隊列增加了工程複雜度;困難負樣本挖掘可能將標籤噪聲放大進訓練信號。所有嵌入收斂為單一點的表示坍縮失效模式可以通過邊界或InfoNCE的分母得到緩解,但當所有負樣本都過於容易時,基於邊界的損失仍可能出現問題。

    最後,對比嵌入本身並未經過校準:兩個嵌入之間的絕對距離沒有概率解釋,需要校準相似度的下游任務(例如帶置信閾值的檢索)通常需要額外的校準步驟。所學空間的幾何結構也不是唯一的;嵌入空間的旋轉使損失保持不變,這使得跨訓練運行的直接比較變得困難。

    參考文獻