Gradient Harmonized Single-stage Detector | 論文分享
目標檢測方法分為兩大陣營,一類是以Faster RCNN為代表的兩階段檢測的方法,一類是以SSD為代表的單階段檢測方法。兩階段方法在檢測精度更出色,單階段檢測方法的Pipline則更簡潔,速度更快,但是精度不如兩階段檢測方法,一個原因是單階段的檢測方法受限於正負樣本和簡單困難樣本的不均衡問題,導致訓練效果不佳。
為了解決這種不均衡的問題,有研究者提出了線上困難樣本挖掘的方法(OHEM),但是這個方法一方面不夠高效,另一方面它只選擇topN而丟棄了太多樣本。後來,何凱明等提出了Focal Loss來改進cross-entropy loss, 取得了不錯的效果,但是focal loss 的選擇相對麻煩,因為它引入了兩個超引數需要細緻選擇。
本文在前面研究的基礎上,從梯度分佈的角度,進一步指出了單階段檢測中不均衡性的本質,提出了梯度均衡化的策略來改善訓練過程。
對於一個樣本,如果它能很容易地被正確分類,那麼這個樣本對模型來說就是一個簡單樣本,模型很難從這個樣本中得到更多的資訊,從梯度的角度來說,這個樣本產生的梯度幅值相對較小。而對於一個分錯的樣本來說,它產生的梯度資訊則會更豐富,它更能指導模型優化的方向。對於單階段分類器來說,存在著大量的負樣本,可以很容易地正確分類,少量的正樣本通常是困難樣本。因此正負樣本的不均衡性本質是簡單困難樣本的不均衡性。
更進一步,單個簡單樣本的梯度對於整個梯度的貢獻很小,但是當存在大量的簡單樣本時,它們對梯度的貢獻就不可忽略,甚至可以大於困難樣本的貢獻,因此導致訓練過程不高效,模型沒法學習到有用的資訊。
基於此,作者指出難度不同樣本的不均衡性可以在梯度模長的分佈上體現出來。通過對梯度分佈的研究,作者提出了一種梯度均衡策略可以有效地改進單階段檢測器的效能。
Gradient Harmonizing Mechanism
問題描述
對於一個候選框,它的真實標籤是 , 預測的概率是
,採用二元交叉熵損失:
假設是模型輸出,使得 , 那麼上述的交叉熵損失對的導數是:
那麼梯度的模定義為:
g的值代表了這個樣本的困難程度和它對整體梯度的貢獻。
下圖是一個收斂模型的梯度模長的分佈,可以看出簡單樣本的數量很大,使得它對梯度的整個貢獻很大,另一個需要的地方是,在梯度模較大的地方仍然存在著一定數量的分佈,說明模型很難正確處理這些樣本,作者把這類樣本歸為離群樣本,因為他們的梯度模與整體的梯度模的分佈差異太大,並且模型很難處理,如果讓模型強行去學習這些離群樣本,反而會導致整體效能下降。
均衡化策略
Gradient Density
為了解決上述的梯度分佈不均勻的問題,作者提出了一種均衡化的策略。大概的思路是對於梯度分佈切bin,統計每一個bin內的樣本數量,得到每個bin的分佈,進行分佈的均衡化。具體地,基於這個bin內的樣本數量和這個bin的長度,可以定義梯度密度,它表示某個單位區間內樣本的數量:
要歸一化整個梯度的分佈,可以使用梯度密度的導數作為歸一化的引數。所有對梯度進行的調整,都可以等價地變換到損失函式上,具體地,使用對樣本的損失進行加權。
GHM-C Loss
基於歸一化的引數,改進cross-entropy 得到新的分類損失GHM-C Loss:
下圖對比了不同損失函式下的梯度模長的分佈。可以看出,之前提到的簡單樣本的權重得到了較大幅度地降低,離群樣本也得到了一定程度的降權。使用經過改善之後的損失函式使得訓練過程更加高效和魯棒。
GHM-R Loss
對於檢測框的迴歸,通常都是使用 smooth L1損失:
其中 ,smooth L1 損失對的梯度為:
注意到所有有較大∣d∣的樣本的梯度 ,這會帶來一個問題就是對於這些樣本來說沒有區分度,基於此作者提出了一個改進的smooth L1 loss, 稱為ASL1:

這個損失函式處處可導:
定義梯度的模長為:
那麼沿著上面關於分類損失的均衡化策略,同樣可以得到GHM-R Loss:
作者通過系統的實驗驗證了梯度均衡化策略的有效性。
1. COCO資料集測試結果
2. 與OHEM, Focal Loss的對比
3. 不同迴歸損失的對比(Smooth L1, ASL1, GHM-R)