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