【技術綜述】深度學習中的數據增強(下)

【技術綜述】深度學習中的數據增強(下)

來自專欄有三AI學院8 人贊了文章

今天帶來深度學習中的數據增強方法的下篇。我們將從以下幾個方向入手。1,介紹一下什麼是無監督的數據增強方法。2,簡單介紹一下GAN生成數據的應用。3,介紹一下AutoAugment為代表的網路自動學習數據增強策略的方法。4,總結。

00什麼是無監督數據增強方法

我們先看看什麼是有監督的數據增強方法。它指的是生成的圖片,是在已有的圖片上直接做簡單的幾何變換,像素變化,或者簡單的圖片融合,如下。

上面的增強方法,都是由使用者完全定義的。然而,不是所有的任務都適合所有的數據增強方法。

比如數字識別,就不適合做太大角度的旋轉。不然,9和6就分不開了。

人臉姿態,就不適合做翻轉,不然左右分不清。

那什麼是無監督的方法呢?

包括兩類:

(1)通過模型學習數據的分布,隨機生成與訓練數據集分布一致的圖片,代表方法,GAN【1】。

(2)通過模型,學習出適合當前任務的數據增強方法,代表方法,AutoAugment【2】。

下面分別講述。

01GAN

1.1 什麼是Gan

generative adversarial networks,譯名生成對抗網路 ,它包含兩個網路,一個是生成網路,一個是對抗網路,基本原理如下:

(1)G是一個生成圖片的網路,它接收隨機的雜訊z,通過雜訊生成圖片,記做G(z) 。

(2)D是一個判別網路,判別一張圖片是不是「真實的」,即是真實的圖片,還是由G生成的圖片。

如上圖,原理非常簡單,至於更多的數學,訓練等細節,留待以後專題,畢竟這裡主要介紹數據增強方法的使用。

1.2 Gan應用

DCGAN【3】作為第一個比較實用的Gan,生成手寫數字的效果還是不錯的。

它的生成器的網路結構也比較簡單,如下。

關於更多細節,以後再專門講。我們看看生成的一些嘴唇的數據,這是真實項目中使用的。

現在生成效果最驚艷的來自於nvidia【4】,利用從小解析度到大解析度逐步提升的辦法,看看結果吧。

Gan學習的是數據分布,下面我們講講另一種思路。

02AutoAugment

雖然這是一篇論文,但是也可以看作一個研究方向。

它的基本思路:使用增強學習從數據本身尋找最佳圖像變換策略,對於不同的任務學習不同的增強方法。

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等方法,是專門設計來限制模型的有效容量的,用於減少過擬合,它們是顯式的規整化方法。研究表明這一類方法可以提高泛化能力,但並非必要,且能力有限,而且參數高度依賴於網路結構等因素。

  • 數據增強則沒有降低網路的容量,也不增加計算複雜度和調參工程量,是隱式的規整化方法。實際應用中更有意義,所以我們常說,數據大於天。

更多,歡迎到知乎專欄去投稿與交流,配套資料將放出在github,可掃描二維碼進入。

zhuanlan.zhihu.com/c_15 (二維碼自動識別)

github.com/longpeng2008 (二維碼自動識別)

打一個小廣告,我的計算機視覺公開課《AI 圖像識別項目從入門到上線》上線了,將講述從零基礎到完成一個實際的項目到微信小程序上線的整個流程,歡迎交流捧場。

參考文獻:

[1] Goodfellow I J, Pouget-Abadie J, Mirza M, et al. GenerativeAdversarial Networks[J]. Advances in Neural InformationProcessing Systems, 2014, 3:2672-2680.

[2] AutoAugment: Learning Augmentation Policies from Data.

[3] Radford A, Metz L, Chintala S. Unsupervised RepresentationLearning with Deep Convolutional Generative AdversarialNetworks[J]. Computer Science, 2015.

[4] Karras T, Aila T, Laine S, et al. Progressive Growing of GANsfor Improved Quality, Stability, and Variation[J]. 2018.

[5] Lemley J, Bazrafkan S, Corcoran P. Smart AugmentationLearning an Optimal Data Augmentation Strategy[J]. IEEEAccess, 2017, 5(99):5858-5869.

如果想加入我們,後台留言吧

更多請移步

1,我的gitchat達人課

龍鵬的達人課?

gitbook.cn圖標

2,AI技術公眾號,《與有三學AI》

一文說說這十多年來計算機玩攝影的歷史?

mp.weixin.qq.com圖標

3,以及攝影號,《有三工作室》

【攝影大咖2】論自拍,我只服這位懸崖上的自拍狂?

mp.weixin.qq.com圖標
推薦閱讀:

TAG:機器學習 | 數據挖掘 | 深度學習DeepLearning |