【AutoML】如何选择最合适的数据增强操作
大家好,歡迎來到專欄《AutoML》。在這個專欄中,我們會講述AutoML技術(shù)在深度學(xué)習(xí)中的應(yīng)用。這一期講述在數(shù)據(jù)增強中的應(yīng)用,這也是AutoML技術(shù)最早期的應(yīng)用之一。
作者&編輯 | 言有三
1 數(shù)據(jù)增強的重要性
大家都知道數(shù)據(jù)增強很重要,是深度學(xué)習(xí)必備良藥,寫論文刷比賽提指標的大殺器。
論文中的數(shù)據(jù)我們就不多說了,如果大家想驗證一下數(shù)據(jù)增強的強大,可以去我們的GitHub項目中找到一個二分類的圖像任務(wù),它的數(shù)據(jù)集大小只有1000張圖。
https://github.com/longpeng2008/yousan.ai
https://github.com/longpeng2008/Caffe_Long
如果不使用任何數(shù)據(jù)增強操作,測試集無法達到90%以上的精度。如果使用了裁剪+顏色變換等數(shù)據(jù)增強操作,測試集精度可以達到96%以上。
以下是不使用數(shù)據(jù)增強,固定裁剪,自由裁剪,裁剪+對比度擾動,裁剪+對比度擾動+顏色擾動的結(jié)果,由于使用的模型和數(shù)據(jù)集非常小,使用CPU都可以快速完成驗證。
如果不會使用Caffe可以閱讀公眾號的教程。
傳統(tǒng)的數(shù)據(jù)增強方法以各類通過參數(shù)控制的預(yù)設(shè)幾何變換和顏色變換為主,可以閱讀往期綜述文章如下。
這便是大家熟知的數(shù)據(jù)增強操作,它成就了深度學(xué)習(xí)里程碑模型AlexNet,與深度學(xué)習(xí)一直同在,技術(shù)也在不斷演進。
2 自動學(xué)習(xí)數(shù)據(jù)增強策略
如果讓模型針對具體的任務(wù)自動學(xué)習(xí)數(shù)據(jù)增強,理論上會更加智能,這便是我們這要說的基于AutoML的數(shù)據(jù)增強技術(shù),它主要是用于自動學(xué)習(xí)數(shù)據(jù)增強策略。還有一類方法如GAN等生成式模型可以直接偽造新的數(shù)據(jù),這不在本文闡述的范圍內(nèi)。
2.1 AutoAugment[1]
AutoAugment是Google提出的自動選擇最優(yōu)數(shù)據(jù)增強方案的研究,也是最早的使用AutoML技術(shù)來搜索數(shù)據(jù)增強策略的研究。
它的基本思路是使用增強學(xué)習(xí)從數(shù)據(jù)本身尋找最佳圖像變換策略,對于不同的任務(wù)學(xué)習(xí)不同的增強方法,流程如下:
(1) 準備16個常用的數(shù)據(jù)增強操作。
(2) 從16個中選擇5個操作,隨機產(chǎn)生使用該操作的概率和相應(yīng)的幅度,將其稱為一個sub-policy,一共產(chǎn)生5個sub-polices。
(3) 對訓(xùn)練過程中每一個batch的圖片,隨機采用5個sub-polices操作中的一種。
(4) 通過模型在驗證集上的泛化能力來反饋,使用的優(yōu)化方法是增強學(xué)習(xí)方法。
(5) 經(jīng)過80~100個epoch后網(wǎng)絡(luò)開始學(xué)習(xí)到有效的sub-policies。
(6) 之后串接這5個sub-policies,然后再進行最后的訓(xùn)練。
總的來說,就是學(xué)習(xí)已有數(shù)據(jù)增強的組合策略,比如對于門牌數(shù)字識別等任務(wù),研究表明剪切和平移等幾何變換能夠獲得最佳效果,
官方開源實現(xiàn)如下:
https://github.com/DeepVoltaire/AutoAugment
隨著在圖像分類任務(wù)中AutoAugment取得成功后,該論文的作者們又將該技術(shù)應(yīng)用于目標檢測任務(wù)[2]。
核心方法沒有太大的改變,搜索空間中共包含22種操作,分別為:
(1) 顏色操作:顏色擾動類,如調(diào)節(jié)亮度,對比度等。
(2) 幾何操作:旋轉(zhuǎn)、剪切等。
(3) 邊界框操作:對框內(nèi)的目標進行顏色和幾何類操作。
之后的搜索策略和訓(xùn)練方法與AutoAugment一致,在COCO數(shù)據(jù)集上的mAP提升超過2個點,并且可以直接遷移到其他目標檢測數(shù)據(jù)集上。
下圖展示了在不同樣本數(shù)量時的提升,樣本越少提升越明顯。
2.2 Population Based Augmentation
AutoAugment計算成本非常高昂,伯克利AI研究院提出的Population Based Augmentation[3]方法成本要低很多(三個數(shù)量級),它也可以學(xué)習(xí)到數(shù)據(jù)增強策略。
與AutoAugment不同之處在于,Population Based Augmentation學(xué)習(xí)的是策略的使用順序而不是一組最優(yōu)策略,當(dāng)然所使用的15個策略都來自于AutoAugment。
這個方法的核心思想是:
(1) 并行訓(xùn)練多個小模型,這些小模型組成了種群。
(2) 種群中每一個小模型都會學(xué)習(xí)到不同的候選超參數(shù),周期性地將性能最佳的一些模型的參數(shù)遷移到性能較差的一些模型上(文中是25%),同時再加上隨機擾動操作。
最終得到的是一系列按照時間排序的增強操作,取得了與AutoAugment性能相當(dāng)?shù)怯?xùn)練代價小很多的效果,開源代碼如下:
https://github.com/arcelien/pba
目前還有一些其他研究也在致力于加快搜索速度,比如Fast autoaugment[4]等,我們會在知識星球中做連續(xù)更新,感興趣的可以持續(xù)關(guān)注。
添加有三微信Longlongtogo加入知識星球可以立減30,星球介紹如下:
參考文獻
[1] Cubuk E D, Zoph B, Mane D, et al. Autoaugment: Learning augmentation policies from data[J]. arXiv preprint arXiv:1805.09501, 2018.
[2] Zoph B, Cubuk E D, Ghiasi G, et al. Learning Data Augmentation Strategies for Object Detection[J]. arXiv preprint arXiv:1906.11172, 2019.
[3]?Ho D, Liang E, Stoica I, et al. Population Based Augmentation: Efficient Learning of Augmentation Policy Schedules[J]. arXiv preprint arXiv:1905.05393, 2019.
[4]?Lim S, Kim I, Kim T, et al. Fast autoaugment[J]. arXiv preprint arXiv:1905.00397, 2019.
總結(jié)
如何做機器學(xué)習(xí)任務(wù)中做好數(shù)據(jù)增強是每一個從業(yè)人員必須認真面對的問題,如今已經(jīng)發(fā)展到了使用AutoML技術(shù)來代替人工設(shè)計策略,請大家持續(xù)關(guān)注。
下期預(yù)告:AutoML與激活機制。
有三AI夏季劃
有三AI夏季劃進行中,歡迎了解并加入,系統(tǒng)性成長為中級CV算法工程師。
轉(zhuǎn)載文章請后臺聯(lián)系
侵權(quán)必究
往期精選
總結(jié)
以上是生活随笔為你收集整理的【AutoML】如何选择最合适的数据增强操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【NLP】 NLP领域最具影响力的国内外
- 下一篇: 【知识星球】模型量化从1bit到8bit