博客專欄

EEPW首頁 > 博客 > 深度學(xué)習(xí)難分樣本挖掘(Hard Mining)

深度學(xué)習(xí)難分樣本挖掘(Hard Mining)

發(fā)布人:數(shù)據(jù)派THU 時間:2022-04-14 來源:工程師 發(fā)布文章

最近看了幾篇文章關(guān)于難分樣本的挖掘,如何將難分樣本抽取出來,通過訓(xùn)練,使得正負(fù)樣本數(shù)量均衡。一般用來減少實(shí)驗(yàn)結(jié)果的假陽性問題。
Training Region-based Object Detectors with Online Hard Example Mining論文:https://arxiv.org/pdf/1604.03540.pdf代碼:https://github.com/abhi2610/ohem
一、概念
對于分類來說:

  • 正樣本:我們想要正確分類出的類別所對應(yīng)的樣本,例如,我們需要對一張圖片分類,確定是否屬于貓,那么在訓(xùn)練的時候,貓的圖片就是正樣本。

  • 負(fù)樣本:根據(jù)上面的例子,不是貓的其他所有的圖片都是負(fù)樣本

  • 難分正樣本(hard positives):錯分成負(fù)樣本的正樣本,也可以是訓(xùn)練過程中損失最高的正樣本

  • 難分負(fù)樣本(hard negatives):錯分成正樣本的負(fù)樣本,也可以是訓(xùn)練過程中損失最高的負(fù)樣本

  • 易分正樣本(easy positive):容易正確分類的正樣本,該類的概率最高。也可以是訓(xùn)練過程中損失最低的正樣本

  • 易分負(fù)樣本(easy negatives):容易正確分類的負(fù)樣本,該類的概率最高。也可以是訓(xùn)練過程中損失最低的負(fù)樣本。


二、核心思想


用分類器對樣本進(jìn)行分類,把其中錯誤分類的樣本(hard negative)放入負(fù)樣本集合再繼續(xù)訓(xùn)練分類器。
關(guān)鍵是找出影響網(wǎng)絡(luò)性能的一些訓(xùn)練樣本,針對性地進(jìn)行處理。
圖片


簡單來說就是把難分的樣本,剔除出來,放到另外一個地方里面。最后將難分樣本,給負(fù)樣本,加強(qiáng)訓(xùn)練分類器。但是,這樣又會造成數(shù)據(jù)不平衡的問題,下面會講到。
三、方法:離線和在線


  • 離線:


在樣本訓(xùn)練過程中,會將訓(xùn)練結(jié)果與GroundTruth計算IOU。通常會設(shè)定一個閾值(0.5),結(jié)果超過閾值認(rèn)為是正樣本,低于一定閾值的則認(rèn)為是負(fù)樣本,然后扔進(jìn)網(wǎng)絡(luò)中訓(xùn)練。
但是,隨著訓(xùn)練的進(jìn)行,這樣的策略也許會出現(xiàn)一個問題,那就是正樣本的數(shù)量會遠(yuǎn)遠(yuǎn)小于負(fù)樣本,這樣會導(dǎo)致數(shù)據(jù)的分布不平衡,使得網(wǎng)絡(luò)的訓(xùn)練結(jié)果不是很好。當(dāng)然有些論文作者針對這種導(dǎo)致不平衡的數(shù)據(jù),提出了一種對稱的模型。就是類似上圖,將Hard Posiotive也重新賦給正樣本。


  • 在線:


CVPR2016的Training Region-based Object Detectors with Online Hard Example Mining(oral)將難分樣本挖掘(hard example mining)機(jī)制嵌入到SGD算法中,使得Fast R-CNN在訓(xùn)練的過程中根據(jù)region proposal的損失自動選取合適的Region Proposal作為正負(fù)例訓(xùn)練。
上面的論文就是講的在線的方法:Online Hard Example Mining,簡稱OHEM實(shí)驗(yàn)結(jié)果表明使用OHEM(Online Hard Example Mining)機(jī)制可以使得Fast R-CNN算法在VOC2007和VOC2012上mAP提高 4%左右。
即:訓(xùn)練的時候選擇hard negative來進(jìn)行迭代,從而提高訓(xùn)練的效果。
簡單來說就是從ROI中選擇hard,而不是簡單的采樣。
Forward: 全部的ROI通過網(wǎng)絡(luò),根據(jù)loss排序;
Backward:根據(jù)排序,選擇B/N個loss值最大的(worst)樣本來后向傳播更新model的weights。
這里會有一個問題,即位置相近的ROI在map中可能對應(yīng)的是同一個位置,loss值是相近的,所以針對這個問題,提出的解決方法是:對hard做nms,然后再選擇B/N個ROI反向傳播,這里nms選擇的IoU=0.7。
在后向傳播時,直覺想到的方法就是將那些未被選中的ROI的loss直接設(shè)置為0即可,但這實(shí)際上還是將所有的ROI進(jìn)行反向傳播,時間和空間消耗都很大,所以作者在這里提出了本文的網(wǎng)絡(luò)框架,用兩個網(wǎng)絡(luò),一個只用來前向傳播,另一個則根據(jù)選擇的ROIs進(jìn)行后向傳播,的確增加了空間消耗(1G),但是有效的減少了時間消耗,實(shí)際的實(shí)驗(yàn)結(jié)果也是可以接受的。
圖片
給定圖像和選擇性搜索RoI,卷積網(wǎng)絡(luò)計算轉(zhuǎn)換特征映射。在(a)中,只讀RoI網(wǎng)絡(luò)在特征映射和所有RoI上運(yùn)行正向傳遞(以綠色箭頭顯示)。然后Hard RoI模塊使用這些RoI損失來選擇B個樣本。在(b)中,RoI網(wǎng)絡(luò)使用這些硬性示例來計算前向和后向通道(以紅色箭頭示出)。
想法很類似于新擴(kuò)展一個空間,錯放錯誤樣本,然后單獨(dú)訓(xùn)練這些樣本,更新權(quán)重。

四、擴(kuò)展idea


難分樣本挖掘的思想同樣可以利用到圖像的語義分割上。
可以對難以分割的樣本,或者無法分割的樣本,單獨(dú)建立字典或者模型來訓(xùn)練,更新網(wǎng)絡(luò)權(quán)重。
用于不平衡數(shù)據(jù)的擴(kuò)增也是一個不錯的選擇。
文中圖片中的思想可以借鑒哦。讀者可以自定義一個自己的Hard ROI模塊喲~
參考:
https://blog.csdn.net/u014381600/article/details/79161261https://blog.csdn.net/qq_29981283/article/details/83350062https://blog.csdn.net/u013608402/article/details/51275486


*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。



關(guān)鍵詞: AI

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉