目標檢測中的迴歸損失函數系列一:Smooth L1 Loss

SmoothL1 Loss

出自論文:https://arxiv.org/abs/1504.08083
採用該Loss的模型(Faster RCNN,SSD,,)

SmoothL1 Loss是在Fast RCNN論文中提出來的,依據論文的解釋,是因爲smooth L1 loss讓loss對於離羣點更加魯棒,即:相比於L2 Loss,其對離羣點、異常值(outlier)不敏感,梯度變化相對更小,訓練時不容易跑飛。

假設x是預測框與 groud truth 之間 elementwise 的差異,那麼對比L1/L2/SmoothL1 Loss如下:

在這裏插入圖片描述
對應的曲線圖如下:
在這裏插入圖片描述
對三個loss的x求導得到:
在這裏插入圖片描述
由(4)可以看到,當x值很大,即遇到的是離羣點,異常值時,導數很大。所以在訓練初期,預測值與 groud truth 差異過於大時,L2 Loss對預測值的梯度十分大,訓練不穩定。

由(5)知道,L1 Loss的導數是常數,那麼在訓練後期,當預測值與 ground truth 差異很小時, L1 Loss 損失對預測值的導數的絕對值仍然爲 1,而 learning rate 如果不變,損失函數將在穩定值附近波動,難以繼續收斂以達到更高精度。

而(6)可以看出,smooth L1在 x 較小時,對x 的梯度也會變小,而在 x 很大時,對 x 的梯度的絕對值達到上限 1,也不會太大以至於破壞網絡參數。 smooth L1完美地避開了 L1 lossL2 loss 損失的缺陷。

缺點:

  • 上面的三種Loss用於計算目標檢測的Bounding Box Loss時,獨立的求出4個點的Loss,然後進行相加得到最終的Bounding Box Loss,這種做法的假設是4個點是相互獨立的,實際是有一定相關性的
  • 實際評價框檢測的指標是使用IOU,這兩者是不等價的,多個檢測框可能有相同大小的smooth L1 Loss,但IOU可能差異很大,爲了解決這個問題就引入了IOU LOSS。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章