【技术综述】深度学习中的数据增强方法都有哪些?
很多實(shí)際的項(xiàng)目,我們都難以有充足的數(shù)據(jù)來完成任務(wù),要保證完美的完成任務(wù),有兩件事情需要做好:(1)尋找更多的數(shù)據(jù)。(2)充分利用已有的數(shù)據(jù)進(jìn)行數(shù)據(jù)增強(qiáng),今天就來說說數(shù)據(jù)增強(qiáng)。
作者 | 言有三
編輯 | 言有三
?
1 什么是數(shù)據(jù)增強(qiáng)?
數(shù)據(jù)增強(qiáng)也叫數(shù)據(jù)擴(kuò)增,意思是在不實(shí)質(zhì)性的增加數(shù)據(jù)的情況下,讓有限的數(shù)據(jù)產(chǎn)生等價(jià)于更多數(shù)據(jù)的價(jià)值。
比如上圖,第1列是原圖,后面3列是對(duì)第1列作一些隨機(jī)的裁剪、旋轉(zhuǎn)操作得來。
每張圖對(duì)于網(wǎng)絡(luò)來說都是不同的輸入,加上原圖就將數(shù)據(jù)擴(kuò)充到原來的10倍。假如我們輸入網(wǎng)絡(luò)的圖片的分辨率大小是256×256,若采用隨機(jī)裁剪成224×224的方式,那么一張圖最多可以產(chǎn)生32×32張不同的圖,數(shù)據(jù)量擴(kuò)充將近1000倍。雖然許多的圖相似度太高,實(shí)際的效果并不等價(jià),但僅僅是這樣簡單的一個(gè)操作,效果已經(jīng)非凡了。
如果再輔助其他的數(shù)據(jù)增強(qiáng)方法,將獲得更好的多樣性,這就是數(shù)據(jù)增強(qiáng)的本質(zhì)。
數(shù)據(jù)增強(qiáng)可以分為,有監(jiān)督的數(shù)據(jù)增強(qiáng)和無監(jiān)督的數(shù)據(jù)增強(qiáng)方法。其中有監(jiān)督的數(shù)據(jù)增強(qiáng)又可以分為單樣本數(shù)據(jù)增強(qiáng)和多樣本數(shù)據(jù)增強(qiáng)方法,無監(jiān)督的數(shù)據(jù)增強(qiáng)分為生成新的數(shù)據(jù)和學(xué)習(xí)增強(qiáng)策略兩個(gè)方向。
?
2 有監(jiān)督的數(shù)據(jù)增強(qiáng)
有監(jiān)督數(shù)據(jù)增強(qiáng),即采用預(yù)設(shè)的數(shù)據(jù)變換規(guī)則,在已有數(shù)據(jù)的基礎(chǔ)上進(jìn)行數(shù)據(jù)的擴(kuò)增,包含單樣本數(shù)據(jù)增強(qiáng)和多樣本數(shù)據(jù)增強(qiáng),其中單樣本又包括幾何操作類,顏色變換類。
2.1. 單樣本數(shù)據(jù)增強(qiáng)
所謂單樣本數(shù)據(jù)增強(qiáng),即增強(qiáng)一個(gè)樣本的時(shí)候,全部圍繞著該樣本本身進(jìn)行操作,包括幾何變換類,顏色變換類等。
(1) 幾何變換類
幾何變換類即對(duì)圖像進(jìn)行幾何變換,包括翻轉(zhuǎn),旋轉(zhuǎn),裁剪,變形,縮放等各類操作,下面展示其中的若干個(gè)操作。
水平翻轉(zhuǎn)和垂直翻轉(zhuǎn)
隨機(jī)旋轉(zhuǎn)
隨機(jī)裁剪
變形縮放
翻轉(zhuǎn)操作和旋轉(zhuǎn)操作,對(duì)于那些對(duì)方向不敏感的任務(wù),比如圖像分類,都是很常見的操作,在caffe等框架中翻轉(zhuǎn)對(duì)應(yīng)的就是mirror操作。
翻轉(zhuǎn)和旋轉(zhuǎn)不改變圖像的大小,而裁剪會(huì)改變圖像的大小。通常在訓(xùn)練的時(shí)候會(huì)采用隨機(jī)裁剪的方法,在測試的時(shí)候選擇裁剪中間部分或者不裁剪。值得注意的是,在一些競賽中進(jìn)行模型測試時(shí),一般都是裁剪輸入的多個(gè)版本然后將結(jié)果進(jìn)行融合,對(duì)預(yù)測的改進(jìn)效果非常明顯。
以上操作都不會(huì)產(chǎn)生失真,而縮放變形則是失真的。
很多的時(shí)候,網(wǎng)絡(luò)的訓(xùn)練輸入大小是固定的,但是數(shù)據(jù)集中的圖像卻大小不一,此時(shí)就可以選擇上面的裁剪成固定大小輸入或者縮放到網(wǎng)絡(luò)的輸入大小的方案,后者就會(huì)產(chǎn)生失真,通常效果比前者差。
(2) 顏色變換類
上面的幾何變換類操作,沒有改變圖像本身的內(nèi)容,它可能是選擇了圖像的一部分或者對(duì)像素進(jìn)行了重分布。如果要改變圖像本身的內(nèi)容,就屬于顏色變換類的數(shù)據(jù)增強(qiáng)了,常見的包括噪聲、模糊、顏色變換、擦除、填充等等。
基于噪聲的數(shù)據(jù)增強(qiáng)就是在原來的圖片的基礎(chǔ)上,隨機(jī)疊加一些噪聲,最常見的做法就是高斯噪聲。更復(fù)雜一點(diǎn)的就是在面積大小可選定、位置隨機(jī)的矩形區(qū)域上丟棄像素產(chǎn)生黑色矩形塊,從而產(chǎn)生一些彩色噪聲,以Coarse Dropout方法為代表,甚至還可以對(duì)圖片上隨機(jī)選取一塊區(qū)域并擦除圖像信息。
添加Coarse Dropout噪聲
顏色變換的另一個(gè)重要變換是顏色擾動(dòng),就是在某一個(gè)顏色空間通過增加或減少某些顏色分量,或者更改顏色通道的順序。
顏色擾動(dòng)
還有一些顏色變換,本文就不再詳述。
幾何變換類,顏色變換類的數(shù)據(jù)增強(qiáng)方法細(xì)致數(shù)來還有非常多,推薦給大家一個(gè)git項(xiàng)目:
https://github.com/aleju/imgaug
預(yù)覽一下它能完成的數(shù)據(jù)增強(qiáng)操作吧。
2.2. 多樣本數(shù)據(jù)增強(qiáng)
不同于單樣本數(shù)據(jù)增強(qiáng),多樣本數(shù)據(jù)增強(qiáng)方法利用多個(gè)樣本來產(chǎn)生新的樣本,下面介紹幾種方法。
(1) SMOTE[1]
SMOTE即Synthetic Minority Over-sampling Technique方法,它是通過人工合成新樣本來處理樣本不平衡問題,從而提升分類器性能。
類不平衡現(xiàn)象是很常見的,它指的是數(shù)據(jù)集中各類別數(shù)量不近似相等。如果樣本類別之間相差很大,會(huì)影響分類器的分類效果。假設(shè)小樣本數(shù)據(jù)數(shù)量極少,如僅占總體的1%,則即使小樣本被錯(cuò)誤地全部識(shí)別為大樣本,在經(jīng)驗(yàn)風(fēng)險(xiǎn)最小化策略下的分類器識(shí)別準(zhǔn)確率仍能達(dá)到99%,但由于沒有學(xué)習(xí)到小樣本的特征,實(shí)際分類效果就會(huì)很差。
SMOTE方法是基于插值的方法,它可以為小樣本類合成新的樣本,主要流程為:
第一步,定義好特征空間,將每個(gè)樣本對(duì)應(yīng)到特征空間中的某一點(diǎn),根據(jù)樣本不平衡比例確定好一個(gè)采樣倍率N;
第二步,對(duì)每一個(gè)小樣本類樣本(x,y),按歐氏距離找出K個(gè)最近鄰樣本,從中隨機(jī)選取一個(gè)樣本點(diǎn),假設(shè)選擇的近鄰點(diǎn)為(xn,yn)。在特征空間中樣本點(diǎn)與最近鄰樣本點(diǎn)的連線段上隨機(jī)選取一點(diǎn)作為新樣本點(diǎn),滿足以下公式:
第三步,重復(fù)以上的步驟,直到大、小樣本數(shù)量平衡。
該方法的示意圖如下。
在python中,SMOTE算法已經(jīng)封裝到了imbalanced-learn庫中,如下圖為算法實(shí)現(xiàn)的數(shù)據(jù)增強(qiáng)的實(shí)例,左圖為原始數(shù)據(jù)特征空間圖,右圖為SMOTE算法處理后的特征空間圖。
(2) SamplePairing[2]
SamplePairing方法的原理非常簡單,從訓(xùn)練集中隨機(jī)抽取兩張圖片分別經(jīng)過基礎(chǔ)數(shù)據(jù)增強(qiáng)操作(如隨機(jī)翻轉(zhuǎn)等)處理后經(jīng)像素以取平均值的形式疊加合成一個(gè)新的樣本,標(biāo)簽為原樣本標(biāo)簽中的一種。這兩張圖片甚至不限制為同一類別,這種方法對(duì)于醫(yī)學(xué)圖像比較有效。
經(jīng)SamplePairing處理后可使訓(xùn)練集的規(guī)模從N擴(kuò)增到N×N。實(shí)驗(yàn)結(jié)果表明,因SamplePairing數(shù)據(jù)增強(qiáng)操作可能引入不同標(biāo)簽的訓(xùn)練樣本,導(dǎo)致在各數(shù)據(jù)集上使用SamplePairing訓(xùn)練的誤差明顯增加,而在驗(yàn)證集上誤差則有較大幅度降低。
盡管SamplePairing思路簡單,性能上提升效果可觀,符合奧卡姆剃刀原理,但遺憾的是可解釋性不強(qiáng)。
(3) mixup[3]
mixup是Facebook人工智能研究院和MIT在“Beyond Empirical Risk Minimization”中提出的基于鄰域風(fēng)險(xiǎn)最小化原則的數(shù)據(jù)增強(qiáng)方法,它使用線性插值得到新樣本數(shù)據(jù)。
令(xn,yn)是插值生成的新數(shù)據(jù),(xi,yi)和(xj,yj)是訓(xùn)練集隨機(jī)選取的兩個(gè)數(shù)據(jù),則數(shù)據(jù)生成方式如下
λ的取指范圍介于0到1。提出mixup方法的作者們做了豐富的實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明可以改進(jìn)深度學(xué)習(xí)模型在ImageNet數(shù)據(jù)集、CIFAR數(shù)據(jù)集、語音數(shù)據(jù)集和表格數(shù)據(jù)集中的泛化誤差,降低模型對(duì)已損壞標(biāo)簽的記憶,增強(qiáng)模型對(duì)對(duì)抗樣本的魯棒性和訓(xùn)練生成對(duì)抗網(wǎng)絡(luò)的穩(wěn)定性。
SMOTE,SamplePairing,mixup三者思路上有相同之處,都是試圖將離散樣本點(diǎn)連續(xù)化來擬合真實(shí)樣本分布,不過所增加的樣本點(diǎn)在特征空間中仍位于已知小樣本點(diǎn)所圍成的區(qū)域內(nèi)。如果能夠在給定范圍之外適當(dāng)插值,也許能實(shí)現(xiàn)更好的數(shù)據(jù)增強(qiáng)效果。
?
3 無監(jiān)督的數(shù)據(jù)增強(qiáng)
無監(jiān)督的數(shù)據(jù)增強(qiáng)方法包括兩類:
(1) 通過模型學(xué)習(xí)數(shù)據(jù)的分布,隨機(jī)生成與訓(xùn)練數(shù)據(jù)集分布一致的圖片,代表方法GAN[4]。
(2) 通過模型,學(xué)習(xí)出適合當(dāng)前任務(wù)的數(shù)據(jù)增強(qiáng)方法,代表方法AutoAugment[5]。
3.1 GAN
關(guān)于GAN(generative adversarial networks),我們已經(jīng)說的太多了。它包含兩個(gè)網(wǎng)絡(luò),一個(gè)是生成網(wǎng)絡(luò),一個(gè)是對(duì)抗網(wǎng)絡(luò),基本原理如下:
(1) G是一個(gè)生成圖片的網(wǎng)絡(luò),它接收隨機(jī)的噪聲z,通過噪聲生成圖片,記做G(z) 。
(2) D是一個(gè)判別網(wǎng)絡(luò),判別一張圖片是不是“真實(shí)的”,即是真實(shí)的圖片,還是由G生成的圖片。
GAN的以假亂真能力就不多說了。
3.2 Autoaugmentation[5]
AutoAugment是Google提出的自動(dòng)選擇最優(yōu)數(shù)據(jù)增強(qiáng)方案的研究,這是無監(jiān)督數(shù)據(jù)增強(qiáng)的重要研究方向。它的基本思路是使用增強(qiáng)學(xué)習(xí)從數(shù)據(jù)本身尋找最佳圖像變換策略,對(duì)于不同的任務(wù)學(xué)習(xí)不同的增強(qiáng)方法,流程如下:
(1) 準(zhǔn)備16個(gè)常用的數(shù)據(jù)增強(qiáng)操作。
(2) 從16個(gè)中選擇5個(gè)操作,隨機(jī)產(chǎn)生使用該操作的概率和相應(yīng)的幅度,將其稱為一個(gè)sub-policy,一共產(chǎn)生5個(gè)sub-polices。
(3) 對(duì)訓(xùn)練過程中每一個(gè)batch的圖片,隨機(jī)采用5個(gè)sub-polices操作中的一種。
(4) 通過模型在驗(yàn)證集上的泛化能力來反饋,使用的優(yōu)化方法是增強(qiáng)學(xué)習(xí)方法。
(5) 經(jīng)過80~100個(gè)epoch后網(wǎng)絡(luò)開始學(xué)習(xí)到有效的sub-policies。
(6) 之后串接這5個(gè)sub-policies,然后再進(jìn)行最后的訓(xùn)練。
總的來說,就是學(xué)習(xí)已有數(shù)據(jù)增強(qiáng)的組合策略,對(duì)于門牌數(shù)字識(shí)別等任務(wù),研究表明剪切和平移等幾何變換能夠獲得最佳效果。
而對(duì)于ImageNet中的圖像分類任務(wù),AutoAugment學(xué)習(xí)到了不使用剪切,也不完全反轉(zhuǎn)顏色,因?yàn)檫@些變換會(huì)導(dǎo)致圖像失真。AutoAugment學(xué)習(xí)到的是側(cè)重于微調(diào)顏色和色相分布。
除此之外還有一些數(shù)據(jù)增強(qiáng)方法,篇幅有限不做過多解讀,請(qǐng)持續(xù)關(guān)注。
?
4 思考
數(shù)據(jù)增強(qiáng)的本質(zhì)是為了增強(qiáng)模型的泛化能力,那它與其他的一些方法比如dropout,權(quán)重衰減有什么區(qū)別?
(1) 權(quán)重衰減,dropout,stochastic depth等方法,是專門設(shè)計(jì)來限制模型的有效容量的,用于減少過擬合,這一類是顯式的正則化方法。研究表明這一類方法可以提高泛化能力,但并非必要,且能力有限,而且參數(shù)高度依賴于網(wǎng)絡(luò)結(jié)構(gòu)等因素。
(2) 數(shù)據(jù)增強(qiáng)則沒有降低網(wǎng)絡(luò)的容量,也不增加計(jì)算復(fù)雜度和調(diào)參工程量,是隱式的規(guī)整化方法。實(shí)際應(yīng)用中更有意義,所以我們常說,數(shù)據(jù)至上。
我們總是在使用有限的數(shù)據(jù)來進(jìn)行模型的訓(xùn)練,因此數(shù)據(jù)增強(qiáng)操作是不可缺少的一環(huán)。從研究人員手工定義數(shù)據(jù)增強(qiáng)操作,到基于無監(jiān)督的方法生成數(shù)據(jù)和學(xué)習(xí)增強(qiáng)操作的組合,這仍然是一個(gè)開放的研究領(lǐng)域,感興趣的同學(xué)可以自行了解更多。
參考文獻(xiàn)
[1] Chawla N V, Bowyer K W, Hall L O, et al. SMOTE: synthetic minority over-sampling technique[J]. Journal of Artificial Intelligence Research, 2002, 16(1):321-357.
[2] Inoue H. Data Augmentation by Pairing Samples for Images Classification[J]. 2018.
[3] Zhang H, Cisse M, Dauphin Y N, et al. mixup: Beyond Empirical Risk Minimization[J]. 2017.
[4] Goodfellow I J, Pouget-Abadie J, Mirza M, et al. Generative Adversarial Networks[J]. Advances in Neural Information Processing Systems, 2014, 3:2672-2680.
[5] Cubuk E D, Zoph B, Mane D, et al. AutoAugment: Learning Augmentation Policies from Data.[J]. arXiv: Computer Vision and Pattern Recognition, 2018.
?
總結(jié)
我們總是在使用有限的數(shù)據(jù)來進(jìn)行模型的訓(xùn)練,因此數(shù)據(jù)增強(qiáng)操作是不可缺少的一環(huán)。從研究人員手工定義數(shù)據(jù)增強(qiáng)操作,到基于無監(jiān)督的方法生成數(shù)據(jù)和學(xué)習(xí)增強(qiáng)操作的組合,這仍然是一個(gè)開放的研究領(lǐng)域,感興趣的同學(xué)可以自行了解更多。
想聽視頻課程?網(wǎng)易云等你來
轉(zhuǎn)載文章請(qǐng)后臺(tái)聯(lián)系
侵權(quán)必究
技術(shù)交流請(qǐng)移步知識(shí)星球
感謝各位看官的耐心閱讀,不足之處希望多多指教。后續(xù)內(nèi)容將會(huì)不定期奉上,歡迎大家關(guān)注有三公眾號(hào) 有三AI!
與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的【技术综述】深度学习中的数据增强方法都有哪些?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【杂谈】GitHub上有哪些好用的爬虫(
- 下一篇: 【完结】优秀的深度学习从业者都有哪些优秀