Hinge Loss/zh
| Article | |
|---|---|
| Topic area | supervised learning |
| Prerequisites | Loss function, Support vector machine, Convex optimization |
概述
合頁損失是一種凸損失函數,用於訓練大間隔分類器,最著名的是支持向量機(SVM)。對於二分類標籤 $ y \in \{-1, +1\} $ 和實值分類器分數 $ s = f(x) $,標準合頁損失為 $ \ell(y, s) = \max(0,\, 1 - y s) $。當分類器正確且自信時——即 $ y s \geq 1 $——損失恰好為零;否則損失隨違反程度線性增長。這種分段線性的形狀產生了合頁訓練模型的兩個定義性屬性:最大間隔的幾何解釋,以及只有位於或接近間隔的"支持向量"才對梯度有貢獻的稀疏性。合頁損失作為不連續 0-1 損失的凸替代,並且在適當的正則化下與貝葉斯最優分類器在統計上一致。
起源與動機
合頁損失與 SVM 的發展密不可分。Cortes 和 Vapnik 在 1995 年通過放鬆原始的硬間隔形式以處理不可分數據,提出了軟間隔 SVM,用每個樣本一個鬆弛變量替代了嚴格約束。[1] 由此得到的原始目標可以改寫為帶合頁損失的無約束經驗風險最小化問題:
$ {\displaystyle J(w, b) = \frac{1}{n} \sum_{i=1}^{n} \max\!\left(0,\, 1 - y_i (w^\top x_i + b)\right) + \frac{\lambda}{2} \|w\|^2.} $
正則化項強制一個寬間隔 $ 2/\|w\| $;合頁項對侵入間隔或被直接錯誤分類的點進行懲罰。由於對完全位於間隔之外的樣本損失恆為零,因此只有支持向量才會影響對偶解——這種結構性稀疏性使合頁訓練的模型有別於使用平滑損失(如邏輯或交叉熵損失)的分類器。
從學習理論的角度來看,合頁損失也是一個有原則的選擇:它是 0-1 損失的凸上界,對二分類是 Fisher 一致的,因此最小化它可以漸近地恢復貝葉斯最優決策規則。[2]
公式表述
對於帶有標籤 $ y \in \{-1, +1\} $ 和標量分數 $ s $ 的二分類,將一個預測的間隔定義為乘積 $ y s $。合頁損失將分數軸劃分為三個區域:
- $ y s \geq 1 $ — 自信正確:$ \ell = 0 $,無梯度。
- $ 0 < y s < 1 $ — 正確但位於間隔內:$ \ell = 1 - y s \in (0, 1) $。
- $ y s \leq 0 $ — 錯誤:$ \ell \geq 1 $,線性增長。
該損失是凸的,但在 $ y s = 1 $ 處不可微。一個有效的次梯度為
$ {\displaystyle \partial_s \ell(y, s) = \begin{cases} -y & y s < 1 \\ 0 & y s > 1 \\ \text{any value in }[-y, 0] & y s = 1, \end{cases}} $
這對於隨機梯度方法已經足夠。$ y s = 1 $ 處的折點正是產生支持向量稀疏性的邊界:在 SVM 對偶問題中,$ y s > 1 $ 的樣本對偶係數為零,對決策邊界沒有任何作用。
變體
實踐中出現了基本合頁的若干變體:
- 平方合頁將線性懲罰替換為二次懲罰:$ \ell = \max(0, 1 - y s)^2 $。它在折點之外可微,並且對較大的間隔違反給予更嚴厲的懲罰,從而可以加快收斂,但代價是對離群點的敏感性更大。L2-SVM 使用此形式。
- 平滑合頁(修正Huber 損失)在 $ y s = 1 $ 附近引入二次過渡,得到處處可微的替代損失,適合二階方法。Zhang 的修正 Huber 損失是廣泛使用的一種變體。[3]
- Crammer-Singer 多分類合頁通過懲罰得分最高的錯誤類別推廣到 $ K $ 類:$ \ell = \max\!\big(0,\, 1 + \max_{k \neq y} s_k - s_y\big) $。[4]
- Weston-Watkins 多分類合頁則對所有錯誤類別上的合頁求和:$ \ell = \sum_{k \neq y} \max(0, 1 + s_k - s_y) $。兩種形式在二分類情形下一致,但在梯度分佈和統計一致性方面有所不同。
- 排序合頁將二分類形式應用於有序對 $ (i, j) $ 的分數差:$ \ell = \max(0, 1 - (s_i - s_j)) $。它支撐了 RankSVM 等成對的學習排序方法。
- 三元組合頁(用於度量學習中的三元組損失):對於帶間隔 $ m $ 的錨點-正樣本-負樣本三元組,$ \max(0,\, D_{ap}^2 - D_{an}^2 + m) $。
優化
合頁損失是凸的但不光滑,因此一階方法依賴於次梯度。存在若干實用的算法:
- 隨機次梯度下降。 Pegasos[5]證明了:在帶正則化的合頁目標上,使用 $ 1/t $ 步長的簡單逐樣本次梯度更新可以達到 $ O(1/(\lambda t)) $ 的收斂速率,並能輕鬆擴展到數百萬個樣本。
- 對偶坐標上升。 LIBLINEAR 利用帶正則化合頁問題的二次對偶,每次更新一個對偶坐標,每步均有閉式解。它是中等規模線性 SVM 的主力方法。[6]
- 割平面方法。 SVMperf 和 OCAS 將合頁目標重新表述為帶約束的二次規劃,迭代地添加線性約束,在結構化輸出任務上實現快速收斂。
- 光滑替代。 當偏好二階方法或擬牛頓優化器(如 L-BFGS)時,用平方合頁或修正 Huber 平滑替代合頁,可以使梯度連續且 Hessian 信息有意義。
在核化 SVM 對偶中,推理代價隨支持向量的數量而擴展,在含噪數據上這可能占訓練集的相當大比例。原始的次梯度形式按數據規模線性擴展,是大規模線性分類的首選。
與其他分類損失的比較
合頁損失在基於間隔的損失家族中佔據着獨特的位置:
- 0-1 損失是理想的分類目標,但它非凸且最小化是 NP 難的。
- 邏輯損失 $ \log(1 + e^{-y s}) $ 處處光滑,通過sigmoid給出校準的概率,對自信的正確預測也有非零梯度。
- 指數損失 $ e^{-y s} $ 驅動 AdaBoost 算法,並比合頁對間隔違反的懲罰更激進——代價是在標籤噪聲下脆弱性增加。
- 交叉熵損失將邏輯損失推廣到多分類,是神經網絡分類器的默認選擇。
合頁損失的鮮明區別在於它在間隔之外恰好為零:被自信分類的點不施加任何梯度,從而將優化聚焦於困難樣本。這帶來了稀疏性和一種嚴格的幾何解釋——決策邊界僅依賴於位於間隔內或違反間隔的點——但產生的是未校準的分數而非概率。從統計上看,合頁對貝葉斯分類器的符號是一致的,但對類條件概率不一致;邏輯損失則同時恢復兩者。
在深度學習中的應用
儘管交叉熵損失主導着現代深度分類器,但合頁損失在若干深度學習場景中再次出現。Tang 表明,將卷積神經網絡的softmax頭部替換為 L2-SVM(平方合頁)層,在標準基準上可以匹敵甚至超過交叉熵的準確率。[7] 合頁表述也已成為許多生成對抗網絡(GAN)變體中的默認損失——Lim 與 Ye 以及 Miyato 等人提出了"合頁 GAN"目標,用合頁項替代了原始的 Jensen-Shannon 風格GAN 損失,並提高了高解像度圖像生成的訓練穩定性。[8][9] 合頁的三元組與對比變體支撐了人臉識別系統及更早的度量學習流水線,而 Madry 等人提出的對抗訓練方法則採用了合頁風格的魯棒間隔。
局限性
合頁損失有一些公認的缺點。$ y s = 1 $ 處的折點排除了普通的梯度下降,並且除非使用平滑替代,否則也排除了二階方法。輸出未經校準——分數沒有概率含義——因此需要概率的下游消費者必須事後應用 Platt 縮放或保序校準。合頁對標籤噪聲的魯棒性也低於邏輯損失:一個被翻轉的標籤會產生 $ -1 $ 的間隔,貢獻一個恆定的線性梯度,在極端情況下可能主導更新。多分類推廣並不唯一,Crammer-Singer 與 Weston-Watkins 形式各自做出不同的統計與計算權衡。最後,間隔常數 $ 1 $ 是約定俗成而非原則性的選擇;在實踐中,特徵縮放與正則化強度與該常數以需要仔細調整超參數的方式相互作用。
參考文獻
- ↑ Template:Cite arxiv
- ↑ Lin, Yi, "Support Vector Machines and the Bayes Rule in Classification," Data Mining and Knowledge Discovery, 2002.
- ↑ Zhang, Tong, "Solving Large Scale Linear Prediction Problems Using Stochastic Gradient Descent Algorithms," ICML 2004.
- ↑ Crammer, Koby and Singer, Yoram, "On the Algorithmic Implementation of Multiclass Kernel-based Vector Machines," JMLR 2001.
- ↑ Template:Cite arxiv
- ↑ Hsieh, Cho-Jui et al., "A Dual Coordinate Descent Method for Large-scale Linear SVM," ICML 2008.
- ↑ Template:Cite arxiv
- ↑ Template:Cite arxiv
- ↑ Template:Cite arxiv