1.簡介:
大型深度神經網絡是非常強大的,但其損耗巨大的內存以及對對抗樣本的敏感性一直不太理想。作者提出的mixup是一個簡單地減緩兩種問題的方案。本質上,mixup在成對樣本及其標簽的凸組合(convex combinations)上訓練神經網絡。這樣做,mixup規范神經網絡增強了訓練樣本之間的線性表達。作者分別在ImageNet-2012、CIFAR-10、CIFAR-100等數據集上進行試驗,研究結果表明,mixup可以改進當前最先進的神經網絡架構的泛化能力。我們還發現,mixup能夠減少對錯誤標簽的記憶,增加對抗樣本的魯棒性,並能夠穩定對生成對抗網絡的訓練過程。
2.背景:
大規模深度神經網絡近年來取得了重大的突破,他們具有兩點共性:
首先,它們進行訓練以將其訓練數據的平均誤差最小化,這種學習規則也被稱為經驗風險最小化(Empirical Risk Minimization,ERM)原則(Vapnik於1998年提出);其次,這些當前最先進的神經網絡的大小與訓練樣本的數量呈線性關系。
沖突的地方在於,經典機器學習理論告訴我們,只要學習機(如神經網絡)的規模不隨着訓練數據數量的增加而增加,那么ERM的收斂性就是可以得到保證的。其中,學習機的規模由參數數量,或其VC復雜度(Harvey等人於2017年提出)來衡量。
這一矛盾挑戰了ERM方法在當前神經網絡訓練中的適應性。
一方面,即使在強正則化情況下,或是在標簽隨機分配的分類問題中,ERM 也允許大規模神經網絡去記憶(而不是泛化)訓練數據。
另一方面,神經網絡使用ERM 方法訓練后,在訓練分布之外的樣本(對抗樣本)上驗證時會極大地改變預測結果。
這一證據表明,在測試分布與訓練數據略有不同時,ERM 方法已不具有良好的解釋和泛化性能。
因而,數據增強方法(Simard et al., 1998),在簡單但不同的樣本中去訓練數據以及 Vicinal Risk Minimization( VRM)領域風險最小化原則被提出。在VRM中,需要專業知識描述訓練數據中每個樣本的鄰域,從而可以從訓練樣本鄰域中提取附加的虛擬樣本以擴充對訓練分布的支持。數據增強可以提高泛化能力,但這一過程依賴於數據集,而且需要專門知識。其次,數據增強假定領域內樣本都是同一類,且沒有對不同類不同樣本之間領域關系進行建模。
3.貢獻:
受這些問題啟發,作者提出了一種簡單且數據無關的數據增強方式,被稱作 mixup 。簡而言之,mixup 構建了虛擬的訓練樣本。
其中,(xi,yi)和(xj,yj)是從訓練數據中隨機抽取的兩個樣本,且λ∈[0,1]。因此,mixup通過結合先驗知識,即特征向量的線性插值應導致相關標簽的線性插值,來擴展訓練分布。mixup僅需要幾行代碼即可實現,且引入了最小計算開銷。
方法:
論文的貢獻在於提出了一種通用的領域分布,稱作 mixup:
其中,λ∼Beta(α,α),α∈(0,∞)。
mixup超參數α控制了在特征-目標向量之間插值的強度,當α→0時恢復為 ERM 原則。
上圖展示了使用PyTorch 實現 mixup 訓練的幾行必要代碼。
可替換的設計選擇:
1).作者觀察了三個和三個以上從Dirichlet分布采樣的權重樣本的凸組合的性能表現也不錯,但計算成本增加;
2).當前實現使用單個數據加載獲取一個最小批量,然后 mixup 被用於隨機打亂后的同一最小批量。作者發現,減少 I/O 請求仍然能取得相同的效果;
3).僅在標簽相同的輸入中插值,並不能帶來 mixup 后續討論中的性能提升。
4.理解:
mixup究竟做了什么?mixup鄰域分布可以**被理解為一種數據增強方式,它令模型在處理樣本和樣本之間的區域時表現為線性。我們認為,這種線性建模減少了在預測訓練樣本以外的數據時的不適應性。**從奧卡姆剃刀的原理出發,線性是一個很好的歸納偏見,因為它是最簡單的可能的幾種行為之一。圖1顯示了mixup導致決策邊界從一個類到另一個類線性的轉變,提供了一個更平滑的不確定性估計。圖2顯示了在CIFAR-10數據集上用mixup和ERM兩個方法訓練的兩個神經網絡模型的平均表現。兩個模型有相同的結構,使用相同的訓練過程,在同一個從訓練數據里隨機抽樣而來的樣本上來評估。用mixup訓練的模型在預測訓練數據之間的數據時更穩定。 (對離散樣本空間進行連續化,提高鄰域內的平滑性)
Figure 1b 顯示了mixup 在類與類之間提供了更平滑的過渡線來估計不確定性。Figure 2 顯示了兩個神經網絡(using ERM and mixup)在訓練CIFAR-10 數據集上的平均表現。兩個模型有着同樣的結構,使用同樣的步驟訓練,在同樣的訓練數據中采樣相同的點進行評估。使用mixup訓練的模型在訓練樣本之間的模型預測和梯度模值更加穩定。
5.實驗結果:
ERM 和 mixup 方法在ImageNet-2012 數據集上驗證錯誤。
ERM 和 mixup 方法在CIFAR-10 數據集上測試錯誤。
6.討論:
在作者的實驗中,有以下一貫的趨勢:隨着α的增加,在真實數據中的訓練錯誤增加,同時泛化差距減小。這證明了作者的一個假設,mixup可以隱式地控制模型的復雜度。然而,作者並沒有找到一個很好的方法在偏差-方差的平衡中找到最佳位置。舉例來說,在CIFAR-10訓練中,即使當α→∞時,在真實數據上的訓練誤差會非常低。然而在ImageNet 分類任務中,真實數據的訓練誤差在α→∞時會有明顯上升。基於作者在ImageNet 和 Google commands 上使用不同網絡結構做的實驗,發現增大網絡容量,可以使訓練誤差對大的α值敏感性降低,這給mixup 帶來更多的優勢。
mixup 對更加深入研究還有一些可能性。
1)可不可能在其他類型的監督學習問題,比如回歸和結構化預測得到相似的理想效果?
2)能不能證明有相似的方法在監督學習(半監督,強化學習)之外也是很有效的?
7.總結:
在此研究中,作者提出了mixup,一個和數據無關的、簡單的數據增強原則。研究結果表明,mixup是鄰域風險最小化的一種形式,它在虛擬樣本(即構建為訓練集中的兩個隨機樣本及其標簽的線性插值)中進行訓練。將mixup集成到現有的訓練管道中僅需要幾行代碼,並且很少或幾乎沒有計算開銷。在廣泛的評估中,結果已經表明,mixup改進了當前最先進的模型在ImageNet、CIFAR、語音和表格數據集中的泛化誤差。此外,mixup有助於有助於消除對錯誤標簽的記憶、對對抗樣本的敏感性以及對抗訓練的不穩定性。
作者回答的一些問題:
作者:張宏毅
鏈接:https://www.zhihu.com/question/67472285/answer/256651581
來源:知乎
Q: 為什么data augmentation是理解為控制模型復雜度?
A: 准確地說,我覺得data augmentation既不能簡單地理解為增加training data,也不能簡單地理解為控制模型復雜度,而是兩種效果兼而有之。考慮圖像識別里常用的改變aspect ratio做data augmentation的方法,生成的圖像雖然和真實圖像相似,但是並不是來自於data distribution,更不是它的i.i.d.抽樣。而經典的supervised learning以及統計學習理論的基本假設就是訓練集和測試集都是data distribution的i.i.d.抽樣,所以這並不是經典意義上的增加training data。這些合成的training data的作用,流行的解釋是“增強模型對某種變換的invariance”。這句話反過來說,就是機器學習里經常提到的“減少模型估計的variance”,也就是控制了模型的復雜度。需要注意的是,L2正則化、dropout等等也都是在控制模型復雜度,只不過它們沒有考慮數據本身的分布,而data augmentation屬於更加機智的控制模型復雜度的方法。
其實反過來看,L2正則化和dropout也各自等價於某種data augmentation。參考Vicinal Risk Minimization 和 [1506.08700] Dropout as data augmentation。
Q: label線性加權后,不是得到了這兩個樣本中間的類別了嗎?
A: label用的是one-hot vector編碼,可以理解為對k個類別的每個類給出樣本屬於該類的概率。加權以后就變成了"two-hot",也就是認為樣本同時屬於混合前的兩個類別。
另一種視角是不混合label,而是用加權的輸入在兩個label上分別計算cross-entropy loss,最后把兩個loss加權作為最終的loss。由於cross-entropy loss的性質,這種做法和把label線性加權是等價的,大家可以自行思考一下。
mixup使用的x是raw input。在機器學習的語境里,進入分類器的輸入x通常稱為feature,這里feature並不是指神經網絡隱藏層的activation,抱歉給一些讀者造成了誤會。有朋友想到對神經網絡的中間層做插值,還想到在無標簽的數據上預測標簽然后進行混合——這都是非常吸引人的想法,我們其實也想到了而且進行了一些嘗試,但是實驗的效果不如mixup好。期待感興趣的朋友繼續探索。
意料之外但情理之中的嘗試。大道至簡。
讓 NN 學到一個復雜度更低的函數一直是一個提高 generalization 的方式。重要的就是在訓練數據中沒有覆蓋的空間上加上復雜度控制。這篇文章的想法直接做到了這一點,通過 data-augmentation 來讓 NN 在“空白區域”學到一個簡單的線性插值函數,大大降低了無數據覆蓋空間的復雜度,簡單有效的 idea,該點贊!
雖然是極其簡單的想法,但恰恰非常合適的完成降低復雜度的目標。
從統計學習理論的角度看,generalization error就是training error(在沒有經過data augmentation的訓練集上的錯誤率)和generalization gap兩部分。無論data augmentation還是regularization,都是通過控制模型復雜度減小generalization gap。如果同時又不明顯增大training error,那就有望減小generalization error。我們在CIFAR-10 corrupt label實驗上的結果表明,與dropout相比,mixup在random label上的training error相近(即overfitting或者說model complexity相近);但同時mixup可以比dropout在real label上達到明顯更低的training error。這或許是mixup有效的本質原因。
至於為什么mixup可以在control overfitting的同時達到更低的training error,這是一個非常有價值的問題,我目前還不知道答案。
如果單看錯誤率,和Google的NASNet、Momenta的SE-Net相比,我們的結果確實“好像沒有太驚艷”。如果想要得到驚艷的結果,可以嘗試把以上工作中使用的各種方法也加進來。比如說,以上結果基於320320或者331331的輸入(而我們的所有ImageNet實驗都使用了224*224的輸入),使用了更大的網絡、label smoothing、dropout,NASNet使用了auxiliary classifier和running average of parameters,SE-Net使用了random rotation的data augmentation等等。
而我們在所有的實驗中,只對baseline做了mixup這一個改動,而且采用了盡可能少的trick,目的是排除其他干擾因素,簡單直接地展示mixup本身的效果。
參考:https://blog.csdn.net/ly244855983/article/details/78938667
https://blog.csdn.net/sumangshang/article/details/78675724