AAAI 2019 |把Cross Entropy梯度分布拉「平」,就能輕鬆超越Focal...

2020-12-05 機器之心Pro

機器之心專欄

來源:PaperWeekly

單階段物體檢測(One-stage Object Detection)方法在模型訓練過程中始終面臨著樣本分布嚴重不均衡的問題,來自香港中文大學的研究者們在論文 Gradient Harmonized Single-stage Detector提出了一個新的視角——梯度分布上看待樣本數量和難易不均衡。直接把 cross entropy 產生的 gradient distribution 標準化到 uniform 就可以輕鬆訓練單階段物體檢測模型。

該論文已經被 AAAI 2019 會議接受為 Oral 論文,基於 PyTorch+MMDet 的代碼已經放出。

作者丨Lovely Zeng

學校丨CUHK

研究方向丨Detection

引言

物體檢測的方法主要分為單階段與兩階段兩大類。雖然兩階段的物體檢測器在準確率上的表現往往更優,但單階段檢測器因其簡潔的結構和相對更快的速度同樣得到了研究者們的重視。

在 2017 年,Focal Loss 的作者指出了單階段檢測器中樣本類別(前景與背景)嚴重不均衡(class imbalance)的問題,並通過設計一個新的損失函數來抑制大量的簡單背景樣本對模型訓練的影響,從而改善了訓練效果。

而在這篇論文中,研究者對樣本不均衡的本質影響進行了進一步探討,找到了梯度分布這個更為深入的角度,並以此入手改進了單階段檢測器的訓練過程。

實際上,不同類別樣本數不同並不是影響單階段檢測器的訓練的本質問題,因為背景樣本雖然大部分非常容易識別(well classified),但其中也會存在著比較像某類物體的難樣本(hard negative),而前景類中也有許多網絡很容易正確判斷的樣本(easy positive)。所以產生本質影響的問題是不同難度樣本的分布不均衡。

更進一步來看,每個樣本對模型訓練的實質作用是產生一個梯度用以更新模型的參數,不同樣本對參數更新會產生不同的貢獻。

在單階段檢測器的訓練中,簡單樣本的數量非常大,它們產生的累計貢獻就在模型更新中就會有巨大的影響力甚至佔據主導作用,而由於它們本身已經被模型很好的判別,所以這部分的參數更新並不會改善模型的判斷能力,也就使整個訓練變得低效。

基於這一點,研究者對樣本梯度的分布進行了統計,並根據這個分布設計了一個梯度均衡機制(Gradient Harmonizing mechanism),使得模型訓練更加高效與穩健,並可以收斂到更好的結果(實驗中取得了好於 Focal Loss 的表現)。

梯度均衡機制

首先我們要定義統計對象——梯度模長(gradient norm)。考慮簡單的二分類交叉熵損失函數(binary cross entropy loss):

其中 p=sigmoid(x) 為模型所預測的樣本類別的概率,p* 是對應的監督。則其對 x 的梯度(導數)為:

於是我們可以定義一個梯度模長,g=|p-p*|。

對一個交叉熵損失函數訓練收斂的單階段檢測模型,樣本梯度模長的分布統計如下圖:

可以看到,絕大多數樣本都是十分容易預測的(well-classified),這些可以被準確預測的樣本所佔的比重非常大,正因如此圖中採用對數坐標來更清楚地展示分布。

此外,還可以發現在 g 接近 1 的時候,樣本比例也相對較大,研究者認為這是一些離群樣本(outlier),可能是由於數據標註本身不夠準確或是樣本比較特殊極難學習而造成的。對一個已收斂的模型來說,強行學好這些離群樣本可能會導致模型參數的較大偏差,反而會影響大多數已經可以較好識別的樣本的判斷準確率。

基於以上現象與分析,研究者提出了梯度均衡機制,即根據樣本梯度模長分布的比例,進行一個相應的標準化(normalization),使得各種類型的樣本對模型參數更新有更均衡的貢獻,進而讓模型訓練更加高效可靠。

由於梯度均衡本質上是對不同樣本產生的梯度進行一個加權,進而改變它們的貢獻量,而這個權重加在損失函數上也可以達到同樣的效果,此研究中,梯度均衡機制便是通過重構損失函數來實現的。

為了清楚地描述新的損失函數,我們需要先定義梯度密度(gradient density)這一概念。仿照物理上對於密度的定義(單位體積內的質量),我們把梯度密度定義為單位取值區域內分布的樣本數量。

具體來說,我們將梯度模長的取值範圍劃分為若干個單位區域(unit region)。對於一個樣本,若它的梯度模長為 g,它的密度就定義為處於它所在的單位區域內的樣本數量除以這個單位區域的長度 ε:

而梯度密度的倒數就是樣本計算 loss 後要乘的權值:

這裡乘樣本數量 N,是為了保證均勻分布或只劃分一個單位區域時,該權值為 1,即 loss 不變。

由於這個損失函數是為分類設計的,所以記為 GHM-C Loss。下面我們通過與傳統交叉熵算是函數以及 Focal Loss 的比較,來進一步解釋 GHM 的作用:

左圖為樣本梯度模長的分布。中圖為不同損失函數對樣本梯度產生的作用,橫坐標為在交叉熵(CE)損失函數下樣本的梯度模長,縱坐標為新的損失函數下同樣的樣本新的梯度模長,由於範圍較大所以依然採用對數坐標展示。其中淺藍色的線為交叉熵函數本身,作為參考線。

可以看到,Focal Loss 本質上是對簡單樣本進行相對的抑制,越簡單的樣本受抑制的程度越大,這一點和 GHM-C 所做的均衡是十分相似的。此外,GHM-C 還對一些離群樣本進行了相對的抑制,這可以使得模型訓練更具穩定性。

右圖為不同損失函數下,各種難度樣本的累計貢獻大小。由此可以看出,梯度均衡機制的作用就是讓各種難度類型的樣本有均衡的累計貢獻。

在分類之外,研究者還對於候選框的回歸問題做了類似的統計並設計了相應的 GHM-R Loss。

需要指出的是,由於常用的 Smooth L1 Loss 是個分段函數,在 L1 的這部分倒數的模長恆定為 1,也就是偏差超過臨界值的樣本都會落到 g=1 這一點上,沒有難度的區分,這樣的統計並不合理。為了解決這個問題,研究者引入了 ASL1 Loss:

在此基礎上對梯度模長的分布進行統計並實施均衡化的操作。

實驗結果

在 COCO 的 minival 集上,GHM-C Loss 與標準 Cross Entropy Loss,使用 OHEM 採樣下 Cross Entropy,以及 Focal Loss 的比較如下:

GHM-R 與 Smooth L1 Loss 以及 ASL1 Loss 的 baseline 比較如下:

在 COCO test 集上,GHM 與其他 state-of-the-art 的方法比較如下:

此外,在 AAAI 2019 的演示文稿中,研究者還展示了在 pascal voc 2007 這樣的小數據集上,GHM 相對於 Focal Loss 不需要過多的 warmup iteration 就可以保持訓練的穩定:

討論

這篇研究的主要貢獻是提供了一個新視角,較為深入地探討了單階段檢測中樣本分布不均衡所產生的影響及解決方案。

此研究對梯度模長的分布進行統計並劃分單位區域的方式,實際上可以看作是依據梯度貢獻大小對樣本進行聚類的過程。而這裡的梯度只是模型頂部獲得的偏導數的大小,並不是全部參數對應的梯度向量,所以聚類依據可能有更嚴謹更有區分度的選取方式,然而統計整體參數的梯度分布會極大增加計算量,所以本研究中的統計方式仍是一種快速且有效的選擇。

此研究進行均衡化操作實際上是以各梯度模長的樣本產生均勻的累計貢獻為目標的,但是這個目標是否就是最優的梯度分布,暫時無法給出理論上的證明。從實驗結果上,我們可以認為這個目標是明顯優於無均衡的分布的。然而研究者認為,真正的最優分布難以定義,並需要後續的深入研究。

本文為機器之心專欄,轉載請聯繫本公眾號獲得授權

相關焦點

  • AAAI 2019 | 把Cross Entropy梯度分布拉「平」,就能輕鬆超越Focal Loss
    直接把 cross entropy 產生的 gradient distribution 標準化到 uniform 就可以輕鬆訓練單階段物體檢測模型。該論文已經被 AAAI 2019 會議接受為 Oral 論文,基於 PyTorch+MMDet 的代碼已經放出。
  • 什麼是機器學習中的cross entropy
    entropy是用於表示二元分類器的誤差,而cross entropy則用於表示多元分類器的誤差。對於一個用的測試樣本的元分類器,那麼cross entropy的計算公式如下:比如一個三元分類問題,有兩個測試樣本,第一個樣本:預測出來的概率為,實際標籤為,寫成one-hot的形式是;第二個樣本:預測出來概率為
  • TensorFlow四種Cross Entropy算法實現和應用
    ➤TensorFlow的交叉熵函數TensorFlow針對分類問題,實現了四個交叉熵函數,分別是tf.nn.sigmoid_cross_entropy_with_logits、tf.nn.softmax_cross_entropy_with_logits、tf.nn.sparse_softmax_cross_entropy_with_logits
  • TensorFlow四種Cross Entropy算法的實現和應用
    sigmoid_cross_entropy_with_logits我們先看sigmoid_cross_entropy_with_logits,為什麼呢,因為它的實現和前面的交叉熵算法定義是一樣的,也是TensorFlow最早實現的交叉熵算法。
  • 可視化理解 Binary Cross-Entropy
    介紹如果你正在訓練一個二分類器,很有可能你正在使用的損失函數是二值交叉熵/對數(binary cross-entropy / log)。你是否想過使用此損失函數到底意味著什麼?問題是,鑑於如今庫和框架的易用性,很容易讓人忽略所使用損失函數的真正含義。
  • 語義分割之dice loss深度分析(梯度可視化)
    意味著某像素點的loss以及梯度值不僅和該點的label以及預測值相關,和其他點的label以及預測值也相關,這點和ce (交叉熵cross entropy) loss 不同。因此分析起來比較複雜,這裡我們簡化一下,首先從loss曲線和求導曲線對單點輸出方式分析。然後對於多點輸出的情況,利用模擬預測輸出來分析其梯度。
  • 「技術綜述」一文道盡softmax loss及其變種
    softmax loss實際上是由softmax和cross-entropy loss組合而成,兩者放一起數值計算更加穩定。這裡我們將其數學推導一起回顧一遍。令z是softmax層的輸入,f(z)是softmax的輸出,則單個像素i的softmax loss等於cross-entropy error如下:展開上式:在caffe實現中,z即bottom blob,l(y,z)是top blob,反向傳播時,就是要根據top blob diff得到bottom blob diff,所以要得到
  • 天生一對,硬核微分方程與深度學習的「聯姻」之路
    近日,北京智源人工智慧研究院開展了第一次論壇,其以「人工智慧的數理基礎」這一重大研究方向為主題,從數學、統計和計算等角度討論了智能系統應該怎樣融合數學系統。在論壇中,北京大學董彬副教授、林偉研究院和張志華教授等研究者從基礎出發介紹了「數學」眼中的機器學習是什麼樣的。
  • 「機器學習」機器學習算法優缺點對比(匯總篇)
    與決策樹、SVM相比,你還會得到一個不錯的概率解釋,你甚至可以輕鬆地利用新數據來更新模型(使用在線梯度下降算法-online gradient descent)。如果你需要一個概率架構(比如,簡單地調節分類閾值,指明不確定性,或者是要獲得置信區間),或者你希望以後將更多的訓練數據快速整合到模型中去,那麼使用它吧。
  • Science:AI領域那麼多引人注目的「進展」,竟是無用功
    「老話說得好,如果你無法衡量一件事,就很難讓它變得更好。」近年來,研究人員發現多個 AI 子領域的進展實則「搖搖欲墜」。2019 年,一項針對搜尋引擎所用信息檢索算法的元分析發現,「高水位線早在 2009 年就已確立」。2019 年的另一項研究在 18 種推薦算法中僅成功復現了 7 種,而且其中 6 個在性能上無法超越多年前開發的更簡單的非神經算法。
  • 訓練深度神經網絡失敗的罪魁禍首不是梯度消失,而是退化
    人們通常認為這種困難主要是(如果不全是)由於梯度消失問題(和/或梯度爆炸問題)。「梯度消失」指的是隨著網絡深度增加,參數的梯度範數指數式減小的現象。梯度很小,意味著參數的變化很緩慢,從而使得學習過程停滯,直到梯度變得足夠大,而這通常需要指數量級的時間。
  • 「九章」問世,超越谷歌「量子霸權」!潘建偉攜90後上Science
    【新智元導讀】實現「量子計算優越性」(即量子霸權),中國科學家取得裡程碑式進展——成功構建了76個光子的量子計算原型機「九章」。根據現有理論,其速度比目前最快的超級計算機快一百萬億倍,比去年穀歌發布的53個超導比特量子計算原型機「懸鈴木」快一百億倍。「量子霸權」再次被實現了嗎?
  • 陸月⑩佳球鞋|「怪獸」突襲
    球鞋「月度總結大會」,六月「球鞋攝影50張」準時出爐。但是隨著 NIKE 正式發布新科 MVP 「字母哥」個人第一代籤名鞋——Zoom Freak 1 的正式發布,並且即將在本月末 6月 30 日迎來首發配色「All Bros」的發售,我們立刻改變了本月十佳球鞋的排名。
  • 【第62期】(第34屆) AAAI-2019 Accept-paper List(673篇)
    Gmytrasiewicz,論文連結: https://doi.org/10.1609/aaai.v33i01.33016062[745].Runkler,論文連結: https://doi.org/10.1609/aaai.v33i01.33016513[800].
  • 「專題」狂歡的「城市客廳」:紫川河
    隨著傳統工業的衰落和人口的流失,北九州市在1988年提出了以「全球科技城市」為主題的城市更新計劃,開始大力整治河流汙染和開展河流綠化。此後的「我的城市和我的河流」工程,以及後續的商業開發,讓紫川煥然一新,從市民避而不談的汙水溝,一躍成為市民歡聚的「城市會客廳」。
  • 汽車加水就能跑?揭秘「水氫發動機」的吸金騙局
    加水就能跑的汽車來了,起碼在 2019 年,這是不科學的。5 月 23 日,《南陽日報》頭版的一篇報導《水氫發動機在南陽下線,市委書記點讚!》稱:水氫發動機在我市正式下線啦,這意味著車載水可以實時製取氫氣,車輛只需加水即可行駛。
  • 「電」的速度和光速相比哪個更快·電驅汽車究竟有什麼優勢
    內容概述:光速與電流速度的差距,在汽車領域「電」的應用。知識點1:光速標準為299792458m/s(一般認定為30萬公裡每秒),這是以目前人類科技等級絕對無法超越的速度。不過同樣被認定為非常快的音速已經被超越,然而在是標準大氣壓的環境中音速僅僅為【340m/s】秒而已;那麼除了因素以外還有其他速度可以超越嗎?比如「電」的速度?理論上奔跑的速度都可以超過「電子」運動的速度,因為電子的行速僅僅為2m/s!博爾特每秒都能奔跑超過10米。