當前位置:編程學習大全網 - 編程語言 - 目標檢測中的樣本不平衡處理方法——OHEM, Focal Loss, GHM, PISA

目標檢測中的樣本不平衡處理方法——OHEM, Focal Loss, GHM, PISA

GitHub

CSDN

目前。計算機視覺中的性能最好的目標檢測方法主要分為兩種: one-stage 和two-stage 方法。two-stage方法分為兩步,第壹步為候選區域生成階段(Proposal stage),通過如Selective Search、EdgeBoxes等方法可以生成數量相對較小候選目標檢測框;第二步為分類與回歸階段,對第壹階段生成的 Candiate Proposal 進行分類和位置回歸。one-stage 代表性的方法是R-CNN系列,如 R-CNN, Fast R-CNN, Faster R-CNN。 而one-stage 方法直接對圖像的大量 Candiate Proposals 進行分類與回歸。

這兩類方法中均存在類別不平衡問題,two-stage 方法通過第壹步已經將當量的候選區域降低到壹個數量較小的範圍,同時又在第二步通過壹些啟發式原則,將正負樣本的比例降低到壹定程度。而 one-stage 優於沒有這降低候選框的步驟,因此,候選區域的數量大大超過 two-stage 方法,因此,在精度上,two-stage 仍然優於 one-stage 方法,但是在速度和模型復雜度上, one-stage 占優勢。

類別不平衡會使檢測器評估 的候選位置,但是通常只有少量的位置存在目標,這回導致兩個問題:

因此,解決樣本不平衡問題是提高目標檢測精度的壹個關鍵技術之壹。

論文題目: Training Region-based Object Detectors with Online Hard Example Mining

OHEM 是通過改進 Hard Example Mining 方法,使其適應online learning算法特別是基於SGD的神經網絡方法。Hard Example Mining 通過交替地用當前樣本集訓練模型,然後將模型固定,選擇 False Positive 樣本來重新組建用於下壹次模型訓練的樣本集。但是因為訓練神經網絡本事就是壹個耗時的操作,這樣在訓練中固定模型,這樣會急劇降低模型的訓練進程。

Hard Examples Mining通常有兩種方法:

OHEM算法的大致流程是: 首先計算出每個ROI的loss, 然後按loss從高到低來排列每個 ROI, 然後為每張圖片選擇 個損失最高的 ROI 作為Hard Examples,其中 B 表示總的 ROI 數量, 表示batch-size 的大小,在 Fast R-CNN 中, N=2, B=128時,效果很好。

但是如果直接按照 loss 對所有的 ROI 進行選擇,會有壹個缺點,由於 ROI 很多,這樣 很多 ROI 的位置就會相關並重疊,如果和某個高 Loss 的 ROI 重合度很高的其它 ROI很多, 這樣, 這些 ROI 的 Loss 通常也會很多,這樣這些樣本都會被選擇,但是它們可以近似認為時同壹個,這樣就會給其它較低 Loss 的 ROI 更少的選擇余地,這樣就會存在冗余。為了消除這種冗余,作者提出先使用 NMS (non-maximum suppression) 刪除部分重合度很高的 ROI, 在使用上述方法進行 選擇 Hard Example。

實現技巧:

論文,作者將該方法是現在 Fsat R-CNN 目標檢測方法中。最簡單做法是更改損失函數層,損失函數層首先計算所有 ROI 的 loss, 然後根據 loss 對 ROI 進行排序,並選擇 hard RoIs, 讓 那些 non-RoIs的損失變為0. 這種方法雖然很簡單,但是非常不高效,因為還需要為所有的 RoIs 分配進行反向傳播時需要的內存空間。

為了克服這個缺點,作者對下面的 Figure 1 進行改進, 如下面的 Figure 2.該改進時使用兩份同樣的 RoI network。 其中壹個是只讀的(readonly), 即只進行前向計算,不進行反向傳播優化,所以只需要為前向傳播分配內存,它的參數實時保持和另壹個 RoI network(regular RoI network)保持壹樣。在每次叠代時,首先使用 readonly RoI network 對每個 ROI 計算起 loss,然後用上面描述的選擇 hard RoIs 的方法選擇 hard RoIs. 然後利用 regular RoI network來對選擇的 hard RoIs 進行前向和後向計算來優化網絡。

論文題目 Focal Loss for Dense Object Detection

在改論文中,作者認為樣本類別的不平衡可以歸結為難易樣本的不平衡,從而更改交叉熵損失函數,重新對樣本賦予不同的權值,之前的模型這些樣本都是同等重要的,從而使模型訓練更加關註 hard examples。

首先引入交叉熵的公式:

其中, ,表示真實類別, 表示我們預測的概率,為了方便,我們定義:

因此, ,該方法在 較大時,該loss是壹個較小的量級, 如下圖的連線所示所示,因為存在大量的易分類樣本,相加後會淹沒正樣本的loss。

壹個常見的解決類別不平衡的方式是引入壹個加權因子 來表示正樣本的權重, 表示負樣本的權重。我們按照定義 的方法重新定義 為 , 定義如下:

雖然可以平衡 positive和negative的重要性,但是對 easy/hard 樣本還是無法區分, Focal loss 通過更 Cross loss來達到區分easy/hard的目的:

上圖展示了不同 取值對應的 loss,通過分析上述公式,我們發現,當 非常小時,即樣本被分類錯誤,此時 接近1, loss幾乎不受影響,當 接近於1時,即樣本被分類正確,此時 接近0,此時降低了該樣本的權重,比如,取 , 當時 時,該樣本的 loss 會降低100倍,

在實際應用中,作者使用了該 Focal loss的變體,即加入了 平衡因子:

作者提出,對於二分類,壹般模型的模型初始化會同概率的對待正負樣本,由於類別不平衡,負樣本的 loss 會占主導,作者提出在訓練初始階段對正樣本的概率估計“prior”的概念,用 表示, 通過設置它來達到正樣本的輸出概率低的效果,比如為0.01,從而使模型更加關註正樣本。實際操作中,出了最後壹個用於分類的卷積層,其余卷積層的參數初始化為bias ,而最後壹層 , 實驗中設置為 0.01.

兩個實現細節

論文題目: Gradient Harmonized Single-stage Detector

改論文提出 Focal Loss 存在兩個缺點:

該論文有壹句概括該篇論文的核心思想的壹句話: 類別的不平衡可以歸結為難易樣本的不平衡,難易樣本的不平衡可以歸結為梯度的不平衡原話如下:

如下圖所示:

左邊是樣本數量關於梯度的分布,中間表示各個修正後的函數的梯度(使用了log scale)對原始梯度的,右邊表示所有樣本集的梯度貢獻的分布。

定義 是模型未經過 sigmoid 之前的輸出, 則 ,得出該損失函數對 的梯度為:

定義梯度的模長(norm) 為:

訓練樣本的梯度密度(Gradient Density)定義如下:

其中, 是第 k 個樣本的gradient norm,

這個公式可以理解為,以梯度 為中心,寬度為 的區域內的樣本密度。

梯度密度協調參數:

分母是對梯度位於 範圍的部分樣本進行歸壹化,如果所有樣本的梯度時均分分布,那麽對於任意 都有 .(這裏不是很理解為什麽N,可以理解它們相等)

通過將梯度密度協調參數將 GHM 嵌入到損失函數中,則 GHM-C Loss 為:

計算公式11時,求和有壹個N,再求 時會遍歷所有的樣本,因此該公式的時間復雜度為 .如果並行的化,每個計算單元也有N的計算量。對gradient norm進行排序的最好的算法復雜度為 ,然後用壹個隊列去掃描樣本得到梯度密度的時間復雜度為 n 。基於排序的方法即使並行也不能較快的計算,因為N往往是 甚至 ,仍然是非常耗時的.

作者提出的近似求解的方法如下:

根據上述定義,得出近似梯度密度函數為:

利用上面的公式,由於我們可以事先求好 , 在求和時只需查找 即可,因此時間復雜度為 .

因為loss的計算是基於梯度密度函數,而梯度密度函數根據壹個batch中的數據得到,壹個batch的統計結果是有噪聲的。與batch normalization相同,作者用Exponential moving average來解決這個問題,也就是

將模型魚的的偏移量定義為 , 將真實的偏移量定義為 ,回歸loss采用 Smooth L1 loss:

其中

則 關於 的梯度為:

從公式可以看出,當樣本操作 時, 所有樣本都有相同的梯度 1, 這就使依賴梯度範數來區分不同樣本是不可能的, 壹種簡單的替代方法時直接使用 作為衡量標準,但是該值理論上無限大,導致 無法實現,

為了將 GHM 應用到回歸損失上,作者修改了原始的 損失函數:

該函數和 具有類似的屬性,當d的絕對值很小時,近似 L2 loss, 當d的絕對值比較大時, 近似 L1 loss, 關於d的梯度為:

這樣就將梯度值限制在

定義 , 則 GHM-R Loss 為:

論文題目: Prime Sample Attention in Object Detection

PISA 方法和 Focal loss 和 GHM 有著不同, Focal loss 和 GHM 是利用 loss 來度量樣本的難以程度,而本篇論文作者從 mAP 出法來度量樣本的難易程度。

作者提出提出改論文的方法考慮了兩個方面:

Prime Samples 是指那些對檢測性能有著巨大影響的樣本。作者研究表明樣本的重要程度依賴於它和ground truth 的 IoU值,因此作者提出了壹種 IOU-HLR 排序。

在目標檢測中時如何定義正樣本(True Positive)的呢?

剩余的標註為負樣本。

mAP 的原理揭露了對目標檢測器更重要的 兩個準則 :

基於上述分析,作者提出了壹種稱為 IoU-HLR 的排序方法,它既反映了局部的IoU關系(每個ground truth目標周圍),也反映了全局的IoU關系(覆蓋整個圖像或小批圖像)。值得註意的是,不同於回歸前的邊界框坐標,IoU-HLR是根據樣本的最終定位位置來計算的,因為mAP是根據回歸後的樣本位置來計算的。

該排序方法的大致流程如下圖所示,其原理如下:

IoU-HLR遵循上述兩個準則。首先,它通過局部排序(即上面的步驟2)將每個單獨的 GT 的 對應的樣本中 IoU 較高的樣本放在前面,其次通過重采樣和排序(步驟3, 4)將不同 GT 的 對應的樣本中, 將 IoU 較高的放在了前面。

作者提出Prime Sample Attention,壹種簡單且有效的采樣策略,該采樣策略將更多的註意力集中到 Prime examples 上, PISA 由兩部分組成: Importance- based Sample Reweighting(ISR)和Classification Aware Regression Loss(為CARL).

PISA 的訓練過程是基於 prime samples 而不是同等對待所有樣本。

作者提出壹種基於 soft sampling 的方法: Importance-based Sample Reweighting (ISR), 他給不同樣本根據重要性賦予不同的權重。首先它將Iou-HLR排序轉化為線性映射的真實值。 IoU-HLR在每個類中分別進行計算。對於類 , 假設總***有 個樣本, 通過 IoU-HLR 表示為 . 其中 ,使用壹個線性轉換函數將 轉換為 , 表示第 類中的第 個樣本的重要程度:

采用指數函數的形式來京壹部將樣本重要性 轉換為 loss 的權值 , 表示對重要樣本給予多大的優先權的程度因子, 決定最小樣本權值的偏差(感覺就是壹個決定最小的權值大小的壹個變量)。

根據上面得到的權重值,重寫交叉熵:

其中 n 和 m 分別表示真樣本和負樣本的數量, 和 分別表示預測分數和分類目標,需要註意的是,如果只是簡單的添加 loss 權值將會改變 loss 的值,並改變正負樣本的比例,因此為了保持正樣本的總的 loss 值不變, 作者將 歸壹化為

(這裏不是很理解,歡迎大家解惑)

5.3.1 已經介紹如何染個分類器知道 prime samples, 那麽如何讓回歸其也知道 prime sample,作者提出了 Classification-Aware Regression Loss(CARL) 來聯合優化分類器和回歸其兩個分支。CARL可以提升主要樣本的分數,同時抑制其他樣本的分數。回歸質量決定了樣本的重要性,我們期望分類器對重要樣本輸出更高的分數。兩個分支的優化應該是相互關聯的,而不是相互獨立的。

作者的方法是讓回歸器知道分類器的分數,這樣梯度就可以從回歸器傳播到分期其分支。公式如下:

表示相應類別的預測分數, 表示輸出的回歸偏移量。利用壹個指數函數將 轉化為 ,隨後根據所有樣本的平均值對它進行縮放。為了保持損失規模不變,對具有分類感知的 進行歸壹化。 是常用的smooth L1 loss。

關於 的梯度與原回歸損失 成正比。 p_i \mathcal{L}(d_i, \hat d_i) \mathcal{L}(d_i, \hat d_i)$ 反映了樣本i的定位質量,因此可以認為是壹個IoU的估計,進壹步可以看作是壹個IoU-HLR的估計。可以近似認為,排序靠前的樣本有較低的回歸損失,於是分類得分的梯度較小。對於CARL來說,分類分支受到回歸損失的監督。 不重要樣本的得分被極大的抑制掉,而對重要樣本的關註得到加強。

待續。。。

上面的方法大致可以分為兩種:

Focal Loss認為正負樣本的不平衡,本質上是因為難易樣本的不平衡,於是通過修改交叉熵,使得訓練過程更加關註那些困難樣本,而GHM在Focal Loss的基礎上繼續研究,發現難易樣本的不平衡本質上是因為梯度範數分布的不平衡,和Focal Loss的最大區別是GHM認為最困難的那些樣本應當認為是異常樣本,讓檢測器強行去擬合異常樣本對訓練過程是沒有幫助的。PISA則是跳出了Focal Loss的思路,認為采樣策略應當從mAP這個指標出發,通過IoU Hierarchical Local Rank (IoU-HLR),對樣本進行排序並權值重標定,從而使得recall和precision都能夠提升。

  • 上一篇:工業順序控制——工業自動加熱反應爐的控制(單片機編程)
  • 下一篇:設計制作非標自動化設備怎樣接單
  • copyright 2024編程學習大全網