【每日一網】Day18:OHEM簡單理解

OHEM

算法背景

作者提出了一種困難負樣本挖掘的方法,困難負樣本是指模型難以區分的負樣本,也就是容易將負樣本當成正樣本的那些樣本。例如,當roi中沒有目標,全是背景的時候,這時候分類器就很容易正確分類成背景,這就是“容易負樣本”。如果roi中有一半是目標,但是標籤仍然是背景,這個時候分類器就容易把它當作成正樣本,這就是困難負樣本,因此需要多找一些困難負樣本加入負樣本集,進行訓練。

OHEM

網絡結構

OHEM的基準算法是fast rcnn,目的就是對其進行一點改動就可以大幅度提高性能,網絡結構如下所示在這裏插入圖片描述
圖中除掉(b)模塊其餘部分是fast rcnn的網絡結構,(b)模塊是比fast rcnn多出來的一部分,對於fast rcnn這種two stage 的檢測模型,可以抽象成“推薦”和“分類迴歸”兩個部分。OHEM的作用恰好是兩個部分的中間。
在推薦網絡(fast rcnn用的是ss算法,faster rcnn用的是rpn)之後,會有很多ROI傳到後邊的網絡。這部分輸出是推薦網絡鎖推薦的Region proposal。通常推薦網絡會有數以千計的Region proposal傳輸到分類迴歸網絡,分類迴歸網絡會對這些proposal進行分類、座標和尺寸迴歸以及置信度打分,在訓練階段,可以通過這些參數與標註結果進行計算得出損失值。

算法流程

OHEM則是利用的訓練階段產生的損失值。
OHEM的流程如下:
1、正常進行一次Faster RCNN的前向傳播,獲得每個Region proposal單獨的損失值。
2、對每個Region proposal進行NMS
3、對NMS剩下的Region proposal按照損失值進行排序,然後選取損失最大的前一部分Region當做輸入再次輸入分類迴歸網絡,這一步可以屏蔽loss非常低的Region proposal,也就是所謂的正樣本,對於訓練多次loss還較高的我們可以認爲其是困難樣本。所謂的線上挖掘,就是先計算loss→篩選→得到困難負樣本
4、將困難樣本輸入圖中的(b)模塊,(b)模塊是(a)模塊的複製版,(b)模塊是用來反向傳播的部分,然後吧更新的參數共享到(a)部分。




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