OHEM - non_local - smooth L1 loss - Libra R-CNN
從 目標檢測不平衡綜述里看到的
本文還是主要講libra rcnn 和一些拓展知識
我C
我這一看我每天實習的內容不就是hard neagtive mining嗎 ,還是人工的那種??????
OHEM
正常的hard negative minine 確實存在訓練慢的問題,比如我自己每次訓練完模型都得重新弄一套測驗+重新訓練的pipeline 很麻煩,
OHEM的思路也不太難理解
- faster rcnn的訓練策略出了什么問題?
- faster rcnn : 正樣本標記規則,如果Anchor對應的reference box與ground truth的IoU>0.7,負樣本標定規則:如果Anchor對應的reference box與ground truth的IoU<0.3,標記為負樣本,剩下的既不是正樣本也不是負樣本,不用于最終訓練.,而中間這一段正是問題的關鍵,應該選出一部分在這個區間的樣本標記為0(背景)并加入訓練,
- 怎么選?
- 不能從高低排列loss然后選其中高的,因為有些相近的ROI會被重復選到,然后反向傳播了兩次,導致了梯度翻倍,所以先用下nms過濾一下,
- 選出來了怎么算?
- 不能直接反向傳播,否則雖然把非hard 的neagtive置為0了,還是要分配記憶體,這會導致很嚴重的記憶體占用,所以另外設計一個專門用于反向傳播hard negative example的網路,然后共享就行了,
—————————————————————————————————相對來說 libra簡潔一點
libra
解釋一下這張圖

就是把需要找出N個hard neagtive的指標分配到 K個iou區域上去,那每個區域就分攤到了 N/K個,而且每個區域共有Mk這個多個ROI,所以Pk代表著每個區域內能找到hard neagtive的概率,
—————————————————————————————————
Non-local Neural Networks
non_local
這里面只需要看一下那幾種attention的表現形式即可
—————————————————————————————————
smooth_l1_loss
smooth
總的來說就是,在梯度大的時候,控制梯度別過大,否則就一直波動,在梯度小的時候改小就小,
設計 Balanced L1 Loss的目的是促進關鍵梯度的回歸,文中舉例子是說要促進那些inner的回歸,而這是可以使用α 和 γ 控制的,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/413551.html
標籤:區塊鏈
上一篇:大話位元幣(四)密鑰和地址
下一篇:以太坊礦池中轉服務器
