摘要:介紹帶噪學習領域前沿方法,解決不完美場景下的神經網絡優化策略,旨在提升模型性能。
Introduction:
神經網絡的成功建立在大量的干凈數據和很深的網絡模型基礎上。但是在現實場景中數據和模型往往不會特別理想,比如數據層面有誤標記的情況,像小狗被標注成狼,而且實際的業務場景講究時效性,神經網絡的層數不能特別深。我們嘗試不斷迭代數據和模型缺陷情況下神經網絡的有效訓練方法,通過noisy label learning技術,解決網絡訓練過程中noisy data的問題,該技術已經在團隊實際業務場景中落地,通過從損失函數、網絡結構、模型正則化、損失函數調整、樣本選擇、標簽糾正等多個模塊的優化,不局限於全監督、半監督和自監督學習方法,提升整個模型的魯棒性
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數據,保證數據不會被永久遺忘
- 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、l1、l2、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;模型的訓練借鑒了課程學習的思路
- 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
本文分享自華為雲社區《Learning from Noisy Labels with Deep Neural Networks》,原文作者:猜溝。