【技术综述】深度学习中的数据增强(下)
文章首發于微信公眾號《有三AI》
【技術綜述】深度學習中的數據增強(下)
今天帶來深度學習中的數據增強方法的下篇。我們將從以下幾個方向入手。1,介紹一下什么是無監督的數據增強方法。2,簡單介紹一下GAN生成數據的應用。3,介紹一下AutoAugment為代表的網絡自動學習數據增強策略的方法。4,總結。
?
00什么是無監督數據增強方法
我們先看看什么是有監督的數據增強方法。它指的是生成的圖片,是在已有的圖片上直接做簡單的幾何變換,像素變化,或者簡單的圖片融合,如下。
上面的增強方法,都是由使用者完全定義的。然而,不是所有的任務都適合所有的數據增強方法。
比如數字識別,就不適合做旋轉。不然,9和6就分不開了。
人臉姿態,就不適合做翻轉,不然左右分不清。
那什么是無監督的方法呢?
包括兩類:
(1)通過模型學習數據的分布,隨機生成與訓練數據集分布一致的圖片,代表方法,GAN【1】。? ? ??
(2)通過模型,學習出適合當前任務的數據增強方法,代表方法,AutoAugment【2】。
下面分別講述。
?
01 GAN
1.1 什么是Gan
generative adversarial networks,譯名生成對抗網絡 ,它包含兩個網絡,一個是生成網絡,一個是對抗網絡,基本原理如下:
(1)G是一個生成圖片的網絡,它接收隨機的噪聲z,通過噪聲生成圖片,記做G(z) 。? ? ??
(2)D是一個判別網絡,判別一張圖片是不是“真實的”,即是真實的圖片,還是由G生成的圖片。
如上圖,原理非常簡單,至于更多的數學,訓練等細節,留待以后專題,畢竟這里主要介紹數據增強方法的使用。
1.2 Gan應用
DCGAN【3】作為第一個比較實用的Gan,生成手寫數字的效果還是不錯的。
它的生成器的網絡結構也比較簡單,如下。
關于更多細節,以后再專門講。我們看看生成的一些嘴唇的數據,這是真實項目中使用的。
現在生成效果最驚艷的來自于nvidia【4】,利用從小分辨率到大分辨率逐步提升的辦法,看看結果吧。
Gan學習的是數據分布,下面我們講講另一種思路。
?
02 AutoAugment
雖然這是一篇論文,但是也可以看作一個研究方向。
它的基本思路:使用增強學習從數據本身尋找最佳圖像變換策略,對于不同的任務學習不同的增強方法。
1.1 原理
我們直截了當,流程如下。
1:準備16個數據增強操作。
2 : 從16個中選擇5個操作,隨機產生使用該操作的概率和幅度,將其稱為一個sub-policy,一共產生5個sub-polices。
3:每一個batch中的圖片,隨機采用5個sub-polices操作中的一種。
4:通過childmodel在驗證集上的泛化能力來反饋,使用增強學習方法。
5:經過80~100個epoch后開始有效果,能學習到sub-policies。
6:串接這5個sub-policies,然后再進行最后的訓練。
文章中用到的16個操作如下:
大致原理就是這樣,數據增強都是已有的操作,學習到的就是組合的策略,更多訓練細節可以看原文。
1.2 實際效果
我們看兩個例子。
第一個是SVHN門牌圖像識別,下面是學習到的圖像增強操作。
從上面可以知道,AutoAugment學到了側重于剪切和平移等幾何變換,同時學會了顏色反轉。
再看一個imagenet的分類任務。
從上面可以看出,AutoAugment不使用剪切,也不完全反轉顏色,因為這些變換會導致圖像失真。相反,AutoAugment 側重于微調顏色和色相分布。
效果還不錯對吧。還有沒有其他的一些方法呢?有的,我們再舉一個例子吧。
Smart Augmentation【5】,它學習到的就是組合多張圖片的策略,框架如下:
下面是一個具體的例子,第一張圖是后面兩張圖的組合。
針對具體任務進行自適應數據增強,這是一個很好的研究方向,期待后續的研究。
?
03 總結
下面對數據增強這兩次的分享做一個總結,數據增強是為了增強模型的泛化能力,那它與dropout,weight decay有什么區別?
-
weight decay,dropout,stochastic depth等方法,是專門設計來限制模型的有效容量的,用于減少過擬合,它們是顯式的規整化方法。研究表明這一類方法可以提高泛化能力,但并非必要,且能力有限,而且參數高度依賴于網絡結構等因素。
-
數據增強則沒有降低網絡的容量,也不增加計算復雜度和調參工程量,是隱式的規整化方法。實際應用中更有意義,所以我們常說,數據大于天。
參考文獻:
[1] Goodfellow I J, Pouget-Abadie J, Mirza M, et al. Generative Adversarial Networks[J]. Advances in Neural Information Processing Systems, 2014, 3:2672-2680.
[2]?AutoAugment: Learning Augmentation Policies from Data.
[3] Radford A, Metz L, Chintala S. Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks[J]. Computer Science, 2015.
[4]?Karras T, Aila T, Laine S, et al. Progressive Growing of GANs for Improved Quality, Stability, and Variation[J]. 2018.
[5]?Lemley J, Bazrafkan S, Corcoran P. Smart Augmentation Learning an Optimal Data Augmentation Strategy[J]. IEEE Access, 2017, 5(99):5858-5869.
感謝各位看官的耐心閱讀,不足之處希望多多指教。后續內容將會不定期奉上,歡迎大家關注有三公眾號 有三AI!
?
?
?
總結
以上是生活随笔為你收集整理的【技术综述】深度学习中的数据增强(下)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【github干货】主流深度学习开源框架
- 下一篇: 【资源总结】“十大深度学习方向” 专栏