基於深度神經網絡的噪聲標籤學習

摘要:介紹帶噪學習領域前沿方法,解決不完美場景下的神經網絡優化策略,旨在提高模型性能。

本文分享自華爲雲社區《Learning from Noisy Labels with Deep Neural Networks》,原文做者:猜溝。git

Introduction

神經網絡的成功創建在大量的乾淨數據和很深的網絡模型基礎上。可是在現實場景中數據和模型每每不會特別理想,好比數據層面有誤標記的狀況,像小狗被標註成狼,並且實際的業務場景講究時效性,神經網絡的層數不能特別深。咱們嘗試不斷迭代數據和模型缺陷狀況下神經網絡的有效訓練方法,經過noisy label learning技術,解決網絡訓練過程當中noisy data的問題,該技術已經在團隊實際業務場景中落地,經過從損失函數、網絡結構、模型正則化、損失函數調整、樣本選擇、標籤糾正等多個模塊的優化,不侷限於全監督、半監督和自監督學習方法,提高整個模型的魯棒性web

Framework

【Robust Loss Function】

主要是從損失函數去修改,核心思路是當數據總體是乾淨的時候,傳統的交叉熵損失函數學習到少許的負樣本,能夠提高模型的魯棒性;當數據噪聲比較大時,CE會被噪聲數據帶跑偏,咱們要修改損失函數使其在訓練中每一個樣本的權重都是同樣重要的,所以不難想到採用GCE Loss,控制超參數,結合了CE Loss和MAE Loss算法

  • A. Ghosh, H. Kumar, and P. Sastry,「Robust loss functions under label noise for deep neural networks,」 in Proc. AAAI, 2017
  • Generalized Cross Entropy Loss for Training Deep Neural Networks with Noisy Labels, NeurlPS 2018

另外,還有從KL散度想法借鑑過來的,做者認爲在計算熵的時候,原始q, p表明的真實數據分佈和預測值在較爲乾淨的數據上沒有問題,可是在噪聲比較大的數據上,可能q並不能表明真實數據分佈,相反的是否是p能夠表示真實數據分佈,所以提出基於對稱的交叉熵損失函數(Symmetric cross entropy )網絡

  • Y. Wang, X. Ma, Z. Chen, Y. Luo, J. Yi, and J. Bailey, 「Symmetric cross entropy for robust learning with noisy labels,」 in Proc. ICCV, 2019, pp. 322–330

【Robust Architecture】

這一部分主要經過借鑑巧妙的網絡結構,在模型訓練過程當中,經過模型對數據進行挑選,選擇一批較爲乾淨的數據,逐步提高模型的魯棒性。首先要介紹的就是coteaching framework,首先是基於兩個模型相互挑選數據輸入給對方計算loss,傳遞給對方網絡的數據是每一個min-batch裏面loss最低的一些數據,隨着epoch增長,數據量有所變化,另外每一輪epoch結束,會shuffle數據,保證數據不會被永久遺忘ide

  • How does Disagreement Help Generalization against Label Corruption? ICML 2019
  • Co-teaching: Robust Training of Deep Neural Networks with Extremely Noisy Labels, NeurlPS 2018

還有一種思路,是基於attention注意力機制給乾淨樣本和噪聲數據進行打分,文章叫作Attention Feature Mixup,在計算最終loss的時候有兩部分,一部分是同一個類的每張圖和標籤計算的交叉熵損失;另一個損失是數據mixup獲得的新的數據x'和標籤y'計算的loss函數

【Robust Regularization】

這一部分主要是經過一些添加正則ticks,防止模型過擬合到噪聲數據上,經常使用的正則方法包含:label smooth、l一、l二、MixUp等性能

【Loss Adjustment】

這一部分其實也是一些訓練的ticks,其實和loss function改進是密不可分的,這裏不作詳細ticks的介紹學習

【Sample Selection】

這一模塊主要是從如何挑選出更好的數據爲出發點,一種方法,叫作Area Under the Margin metric (AUM),是咱們去年參加CVPR WebVision 2020(圖像識別領域最高級別的比賽,接替ImageNet)取得冠軍的方案。該方案是一種在訓練過程當中一邊訓練一邊篩選數據的方式,具體思想是在一個min-batch利用模型計算每張圖片的logits值和其它類中最大的logits求差值當作area,這樣多輪epoch求平均,獲得每張圖的aum值。試驗發現若是這個數據是較爲乾淨的數據area的值會比較大,若是是存在mis-label的數據area值比較小,甚至是負值,做者就是經過這個思想將一個類的乾淨數據和噪聲數據分離開的。固然論文在最後也指出,乾淨數據和噪聲數據佔比99%的閾值是最優的。優化

  • Pleiss, Geoff, et al. "Identifying mislabeled data using the area under the margin ranking.「, NeurlPS 2020.

另一篇,數據劃分是經過密度聚類的思路,將一個類的數據分紅easy dataset、smi-hard dataset和hard dataset,通常噪聲數據是較爲困難訓練的數據,對於每張圖分配一個權重,文中建議1.0、0.5和0.5;模型的訓練借鑑了課程學習的思路url

  • Guo, Sheng, et al. "Curriculumnet: Weakly supervised learning from large-scale web images." Proceedings of the European Conference on Computer Vision (ECCV). 2018.

【Semi-supervised Learning】

基於半監督學習的帶噪學習算法,首先介紹一篇DivideMix方法,其實仍是co-teaching的思路,可是在挑出乾淨樣本和噪音樣本後,把噪音樣本當作無標籤樣本,經過 FixMatch 的方法進行訓練,目前半監督圖像分類的 SOTA 應該仍是 FixMatch,其在 90% 的無標籤樣本下都能取得接近有監督的結果...因此如今取得高準確率的思路基本都是朝着半監督和如何完整區分出噪音這個大方向走的

總體pipline分爲兩大部分:Co-Divide和基於semi-supervised learning

Co-Divide部分借鑑pre-trained model對N個樣本計算loss,這裏有個假設,這N個變量是由兩個高斯分佈的混合分佈產生的,其中均值較大的那個分佈是噪聲樣本,均值較小的是乾淨樣本,那麼接下來基於該設定,咱們就能夠根據每一個樣本的loss,分別求出它屬於乾淨樣本的機率wi,獲得閾值就能夠按照設定的閾值將訓練數據分爲有標籤和無標籤兩類,而後借鑑SSL方法進行訓練。

須要注意爲了讓模型收斂,咱們須要在劃分數據以前,先用所有的數據對模型訓練幾個epochs,以達到「預熱」的目的。然而「預熱」過程會致使模型對非對稱噪聲樣本過擬合從而使得噪聲樣本也具備較小的loss,這樣GMM就很差判別了,會影響到後面的訓練。爲了解決這個問題,咱們在「預熱」訓練時的,能夠在原先交叉熵損失的基礎上加入額外的正則項-H,這個正則項就是一個負熵,懲罰預測機率分佈比較尖銳的樣本,令機率分佈平坦一些,這樣就能夠防止模型過於「自信」。

對訓練數據進行劃分以後,咱們就能夠利用一些現成的半監督學習方法來訓練模型,論文中採用的是目前經常使用的MixMatch方法,不過再用MixMatch以前,論文還作了co-refinement與co-guess的改進

  • DivideMix: Learning with Noisy Labels as Semi-supervised Learning. ICLR 2020

【Label correction】

標籤糾正方法思路很簡單就是至關因而一個從新打一個僞標籤的概念,可是徹底放棄原始的標籤也過於暴力,ICCV2019的這篇文章在「label correction phase」經過一個pre-trained模型獲得隨機選擇每一個類中的幾張圖採用聚類的方法獲得Prototype樣本的每一個類的聚類中心,對輸入圖片獲得的特徵向量和各種聚類中心計算距離,獲得圖片的僞標籤,最後的loss是原始標籤計算的交叉熵損失和僞標籤計算的僞標籤的求和

  • Han, Jiangfan, Ping Luo, and Xiaogang Wang. "Deep self-learning from noisy labels.「, ICCV 2019

Result and Conclusion:

帶噪學習領域的研究是十分有意義的,咱們在咱們的場景進行了驗證,都有不錯的提高,最低有2~3個點的提高,最高有10個點的提高,固然在一個場景的驗證不可以徹底說明方法的有效性,咱們也發現多種方法的組合有時候並不能起到一個double性能的提高,反而有可能下降最終的結果。

咱們但願可以採用AutoML的思路來選擇最優的組合方式,另外但願帶噪學習的方法遷移性可以強一些,畢竟如今大部分還都集中在分類任務當中,後期咱們也會探究一下Meta Learning在帶噪學習領域的方法,同時會不斷更新每一個模塊的最新方法,完善在mmclassification當中,歡迎一塊兒交流

 learning with noisy label.pptx  8.51MB 

點擊關注,第一時間瞭解華爲雲新鮮技術~

相關文章
相關標籤/搜索