深度學習中的噪聲數據該如何處理?
孔子云:“性能不夠,數據來湊”。可是如果數據中有噪聲標簽(Noisy Labels)怎么辦?本文借鑒Google AI的最新工作[1]來回答這個問題。
以下我們盡量避免使用專業術語,希望對非專業的讀者也會有所幫助。
深度神經網絡的成功依賴于高質量標記的訓練數據。訓練數據中存在標記錯誤(標記噪聲,即Noisy Labels)會大大降低[2]模型在干凈測試數據上的準確性[3]。不幸的是,大型數據集幾乎總是包含帶有不正確或不準確的標簽。這導致了一個悖論:一方面,大型數據集對于深度網絡的訓練是非常必要的,而另一方面,深度網絡往往會記住訓練標簽噪聲,從而在實踐中導致較差的模型性能。
學界已經意識到這個問題的重要性,一直在試圖理解理解標簽噪聲,和發明新的魯棒學習方法來克服它們。在這個過程中,受控實驗[4]扮演著至關重要的角色。好比研發一種新的****物,我們需要受控實驗來對影響實驗結果的無關因素加以控制。在本問題里,最重要的是研究不同的噪聲水平(即數據集中帶有錯誤標簽的樣本的百分比)對模型性能的影響。但是,當前的受控實驗僅局限在人工合成噪聲,而不是真實的噪聲。與實際經驗相比,人工合成噪音會導致研究結果大相徑庭。來看一個例子:“神經網絡是否對于人工噪音數據敏感?”,前人給出了截然相反的答案:
”Deep neural networks easily fit random labels” (Zhang et al. 2017)
VS
“Deep learning is robust to massive label noise” (Rolnick et al. 2017)
更重要的是,我們發現:在人工噪聲上表現良好的方法,在現實世界的噪聲數據集上效果可能并不理想。
在ICML 2020上發布的“Beyond Synthetic Noise: Deep Learning on Controlled Noisy Labels”中,我們做出了三點貢獻。首先,我們建立了第一個受控的噪聲數據集,一個來自真實世界的標簽噪聲(即Web標簽噪聲)[2]。其次,我們提出了一種簡單而有效的方法來克服真實和人工行合成的噪聲標簽。最后,我們進行了迄今為止最大的實驗,比較了人工和真實噪聲在各種訓練環境下的區別。
人工合成標簽噪聲與真實標簽噪聲的區別:
人工噪聲與真實標簽噪聲的分布之間存在許多差異,以圖像舉例:
1、首先,帶有真實標簽噪聲的圖像在視覺或語義上與干凈的正樣本更加一致。
2、其次,人工標簽噪聲處于類級別(即同一類中的所有樣本均同樣嘈雜),而現實世界中的標簽噪聲處于實例級(與相關類無關,某些圖片會比其他圖片更有可能被錯誤標注)。例如,“本田思域”和“本田雅閣”的側面圖片會比正面拍攝的圖片更容易混淆。
3、第三,帶有真實標簽噪聲的圖像來自開放的詞匯,這些詞匯可能不會與特定數據集的類詞匯重疊。例如,“ ladybug”的噪聲圖像包括諸如“ fly”之類的圖片,然而”fly"很可能是一個background class,也就是并不是我們訓練集合定義的class的一部分。
基于以上原因,一個受控標簽噪聲的數據集將有助于更好地定量研究人工合成和實際標簽噪聲之間的差異。
人工合成標簽噪音和Web標簽噪音的比較。從左到右的列是Mini-ImageNet或Stanford Cars數據集中的真實睜眼本,帶有人工合噪聲的圖像,以及帶有錯誤Web標簽的圖像(在本文中收集)。
為了區分,我們用紅色噪聲來指代Web標簽噪聲,而用藍色噪聲來指代人工合成標簽噪聲 (見黑客帝國中的紅色和藍色****丸)
Web上受控標簽噪聲
“如果選擇藍色****丸– 故事就此結束,你在自己床上醒來,繼續相信你愿意相信的一切。如果你吃下紅色****丸– 你將留在奇境,我會讓你看看兔子洞究竟有多深。” (黑客帝國 1999)
我們提出的Web噪聲數據集合建立在兩個公共數據集上:Mini-ImageNet(用于粗粒度圖像分類)和Stanford Cars(用于細粒度圖像分類)。遵循人工合成數據集的構建方法,我們逐漸將這些數據集中的干凈圖像替換為從網絡上收集的標簽錯誤的圖像。
為此,我們使用類名(例如“ ladybug”)作為關鍵字從網絡上收集圖像,這是一種自動方法來收集Web上帶有噪聲標簽的圖像,完全無需人工注釋。然后,我們使用Google Cloud Labeling Service的標注人員檢查每個檢索到的圖像,這些標注人員將識別給定的Web標簽是否正確。我們使用帶有錯誤標簽的Web圖像來替換原始Mini-ImageNet和Stanford Cars數據集中的一定比例的干凈訓練圖像。我們創建了10個不同的數據集,它們的標簽噪聲逐漸升高(從0%的完全干凈數據,到80%的帶有錯誤標簽的數據)。數據集已在我們的“ 受控噪聲網絡標簽”網站上開源。
MentorMix:一種簡單的魯棒學習方法
給定一個含有未知噪聲的數據集,我們的目標是訓練一個魯棒的模型,該模型可以很好地推廣到干凈的測試數據上。我們介紹了一種簡單有效的方法來處理噪聲標簽,稱為MentorMix,該方法是在本文提出的數據集上開發得到的。
MentorMix是一種基于MentorNet和Mixup兩種現有技術的迭代方法,包括四個步驟:加權,抽樣,混合和再加權。第一步,通過MentorNet網絡在mini-batch中為每個樣本計算權重,并將權重normalize為分布。在此處的示例中,MentorNet使用StudentNet訓練loss來確定分布中的權重。
MentorMix方法的四個步驟的圖示:加權,采樣,混合和再加權。
接下來,對于每個樣本,我們使用重要性采樣根據分布在同一個mini-batch中選擇另一個樣本。由于權重較高的樣本往往帶有正確的標簽,因此在采樣過程中會受到青睞。然后,我們使用Mixup混合原始樣本和采樣得到的樣本,以便模型在兩者之間進行插值,并避免過度擬合噪聲。最后,我們可以為混合的樣本計算一個新的權重,來計算最終的example loss。對于高噪聲水平,上述二次加權的影響變得更加明顯。
上面的動畫演示了MentorMix中的四個關鍵步驟,其中StudentNet是要在噪聲標簽數據上進行訓練的模型。正如Jiang等人所述,我們采用了非常簡單的MentorNet版本,以計算每個樣本的權重。
模型性能
我們在五個數據集上驗證了MentorMix的有效性。其中WebVision 1.0是一個包含有現實噪聲標簽的220萬張圖像的大型數據集。MentorMix在WebVision數據集上獲得最佳的結果,就ImageNet ILSVRC12驗證集的top-1分類準確性而言,將以前的最佳方法提高了約3%。
Web噪聲標簽的新發現
這項工作代表了迄今為止最大的研究,目的是了解在噪聲標簽上訓練的深度神經網絡。我們提出了三個有關Web標簽噪聲的新發現:
· 深度神經網絡可以更好地泛化在Web標簽噪聲
· 在神經網絡標簽噪聲上,深度神經網絡可能不會率先學習模式 (Learning the early patterns first)
· 當神經網絡在噪聲數據上微調時,更先進的ImageNet架構會在帶有噪聲的訓練數據集上表現的更好。
基于我們的發現,我們有以下針對在噪聲數據上訓練深度神經網絡的實用建議:
1、處理噪聲標簽的一種簡單方法是fine-tune在干凈的數據集(如ImageNet)上預訓練的模型。預訓練的模型越好,則可以更好地推廣到下游含有噪聲的訓練任務上。
2、提前停止 (Early Stopping)可能對網絡上的實際的標簽噪音無效。
3、在人工噪聲上表現良好的方法,在現實世界的噪聲數據集上效果可能并不理想
4、Web標簽噪聲似乎危害較小,但是對于我們當前的robust Learning的學習方法而言,解決起來卻更加困難。這個發現鼓勵更多的未來研究。
5、建議的MentorMix可以更好地克服人工合成和現實噪音標簽。
MentorMix的代碼可在GitHub上獲得,數據集在我們的數據集網站上,鏈接如下:
GitHub:https://github.com/google-research/google-research/tree/master/mentormix
數據集:https://google.github.io/controlled-noisy-web-labels/index.html
來自 | 知乎 作者 | 蔣路
*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。