Huber Loss/zh

    From Marovi AI
    This page is a translated version of the page Huber Loss and the translation is 100% complete.
    Other languages:
    Article
    Topic area Machine learning — loss functions
    Prerequisites Mean Squared Error, Mean Absolute Error, Gradient Descent


    概述

    Huber 損失是一種回歸損失函數,對小殘差呈二次行為,對大殘差呈線性行為,將平方誤差的平滑優化幾何結構與絕對誤差對異常值的魯棒性相結合。該損失由 Peter J. Huber 於 1964 年作為穩健統計研究的一部分提出,由閾值 $ \delta > 0 $ 參數化,該閾值定義了兩種狀態之間的交叉點。[1] 在現代機器學習中,Huber 損失被廣泛用於目標包含重尾噪聲的回歸任務,其平滑近鄰Smooth L1 損失已成為目標檢測中邊界框回歸的標準選擇。

    直覺

    均方誤差按平方懲罰殘差,因此一個具有大殘差的誤標記點就可能主導梯度並將擬合拉向自身。平均絕對誤差以線性尺度處理每個殘差,因此對異常值的敏感性要低得多,但其梯度幅值是恆定的,且其導數在零處未定義,這會減慢最優點附近的收斂,並使基於動量的優化器產生不穩定的更新。

    Huber 損失在這兩個極端之間進行插值。當殘差較小時,損失呈二次形式,因此隨着模型接近目標,梯度會縮小,優化也能平穩收斂。當殘差超過閾值 $ \delta $ 時,損失切換到線性狀態,將梯度幅值限制在 $ \delta $,從而防止少數極端誤差主導訓練。其結果是一種損失,既具有絕對誤差尾部的魯棒性,又具有平方誤差核心的良好行為。

    公式化

    對於殘差 $ r = y - \hat{y} $Huber 損失按分段方式定義:

    $ {\displaystyle L_\delta(r) = \begin{cases} \tfrac{1}{2} r^2 & \text{if } |r| \le \delta, \\ \delta\,(|r| - \tfrac{1}{2}\delta) & \text{if } |r| > \delta. \end{cases} } $

    線性分支中的常數 $ \tfrac{1}{2}\delta $ 是為了使兩部分在 $ |r| = \delta $ 處的值與一階導數相匹配而選擇的。關於預測值 $ \hat{y} $ 的導數為

    $ {\displaystyle \frac{\partial L_\delta}{\partial \hat{y}} = \begin{cases} -r & \text{if } |r| \le \delta, \\ -\delta\,\operatorname{sign}(r) & \text{if } |r| > \delta, \end{cases} } $

    這清楚地表明梯度幅值在 $ \delta $ 處被截斷。由於該損失只是一次連續可微的(其二階導數在 $ |r|=\delta $ 處從 1 跳到 0),因此它是 C^1 但不是 C^2。

    性質

    Huber 損失對殘差是凸的,因此在數據集上對其求和會為線性模型產生凸的經驗風險。它在零處下界,並無界增長,這使優化問題良好定義。與純絕對誤差不同,該損失處處可微,因此Gradient DescentStochastic Gradient Descent一階方法不需要在零附近做次梯度處理。與平方誤差不同,影響函數(單個觀測對梯度的貢獻)是有界的,這正是 Huber 回歸作為具有有界影響的M-estimator的形式化含義。[2]

    閾值的選擇

    超參數 $ \delta $ 控制着對大殘差的抑制力度。較小的 $ \delta $ 接近平均絕對誤差並最大化魯棒性;較大的 $ \delta $ 接近均方誤差並強調平滑性。一種由 Huber 提出的常用啟發式是將 $ \delta $ 設為某個穩健尺度估計(例如中位絕對偏差)的倍數(常取 1.345),這樣在高斯噪聲下可獲得約 95 % 的漸近效率,同時保持對污染的魯棒性。在深度學習中,$ \delta $ 通常固定為 1(即 Smooth L1 約定)或在驗證集上調優。

    訓練與推理

    由於該損失是凸且光滑的,針對線性模型的 Huber 回歸可以通過迭代重加權最小二乘法、擬牛頓方法或普通的 Gradient Descent 來求解。在神經網絡中,該損失作為輸出層 均方誤差 的直接替代被插入,並以通常方式通過 Backpropagation 傳播梯度。線性區域中的梯度截斷行為為回歸頭充當了一種內置的梯度裁剪形式,這可以在目標偶爾包含極端值時穩定訓練,例如強化學習中的獎勵預測。

    變體

    Huber 損失的多種平滑近似與推廣在實際中被廣泛使用:

    • Smooth L1 loss 是特例 $ \delta = 1 $,由 Fast R-CNN 目標檢測器為邊界框回歸而流行起來;它有時寫成不帶二分之一因子的形式,但其它方面相同。[3]
    • Pseudo-Huber 損失 用平滑替代 $ L(r) = \delta^2\bigl(\sqrt{1+(r/\delta)^2} - 1\bigr) $ 替換了分段定義,它是 C-無窮的,並緊密近似 Huber 形狀;當需要二階導數時它很方便。
    • Log-cosh 損失 使用 $ L(r) = \log\cosh(r) $,在零附近表現為平方誤差,在尾部表現為絕對誤差,動機相似但曲率不同。
    • Tukey biweight 走得更遠,超過截斷點後重新下降至零影響,完全丟棄極端異常值;與 Huber 不同,它是非凸的,因此通常需要良好的初始化才能使用。

    比較

    均方誤差相比,Huber 損失在完全高斯噪聲下犧牲了少量效率,以換取在重尾或受污染噪聲下顯著更好的表現。與平均絕對誤差相比,它犧牲了一些崩潰魯棒性以換取更平滑的優化表面和最優點附近更快的收斂。在深度回歸頭中,它通常比兩者都更受青睞:訓練比均方誤差更穩定,收斂比平均絕對誤差更快,尤其是在與自適應優化器配合使用時——這些優化器的動量估計對梯度尖峰很敏感。

    應用

    Huber 損失在機器學習中無處不在。在計算機視覺中,Smooth L1 變體是 Fast R-CNNFaster R-CNN 及其許多後繼者等檢測器中邊界框和關鍵點回歸的事實標準。在強化學習中,它被用作深度Q-learning中的時序差分損失,從而抑制原本會破壞訓練穩定性的大 Bellman 誤差。[4] 在表格回歸和時間序列預測中,當目標偶爾包含尖峰時,它是一種標準選擇;在經典統計中,Huber 回歸仍是有界影響 M-估計量的基礎範例。

    局限性

    Huber 損失存在局限性。閾值 $ \delta $ 是一個必須謹慎選擇的自由超參數;為某一數據集校準的值在噪聲尺度變化時可能不再適用。該損失是凸的,但在二次區域之外並非嚴格凸,這可能在扁平方向上減慢收斂。它不會重新下降,因此與 Tukey 風格的損失不同,它仍允許極端觀測影響擬合,只是權重有界。最後,雖然它對對稱的重尾噪聲具有魯棒性,但本身並不能糾正系統性偏差或非對稱誤差分布;在這些情況下,Quantile Regression 或 Huber 損失的非對稱變體通常更為合適。

    參考文獻

    1. Huber, P. J. Robust Estimation of a Location Parameter. Annals of Mathematical Statistics, 35(1):73-101, 1964.
    2. Huber, P. J. and Ronchetti, E. M. Robust Statistics, 2nd ed., Wiley, 2009.
    3. Girshick, R. Fast R-CNN. ICCV, 2015.
    4. Mnih, V. et al. Human-level control through deep reinforcement learning. Nature, 518:529-533, 2015.