fast-r-cnn論文中個爲什麼使用smooth_L1 (x),smooth_l1是什麼?

先把論文中這部分描述摘抄過來,如下圖所示:

 

假設我們不適用smooth_L1,考慮L2函數

 

其梯度爲

那麼會出現一個原文描述的問題,when the regression targets are unbounded,既x很大的時候,會發生梯度爆炸,再考慮L1函數

此時會出現另外一個問題,當x變化很小的時候,梯度依舊很大,此時函數很有可能無法收斂(除非你控制學習率降低的更多,但是這樣手工智能顯然有點蠢。)

既然L2和L1都有缺點,那麼我們各取其優點,結合起來會怎麼樣呢?

看smooth_L1表達式

 

其梯度

 

剛好迴避了之前的缺點,既當x過大的時候,梯度不會爆炸,x很小的時候,也可以擁有很小的梯度(不用擔心梯度過小,那時候函數已經收斂了)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章