1. 程式人生 > >DATA AUGMENT--GAN綜述

DATA AUGMENT--GAN綜述

生成式對抗模型GAN (Generativeadversarial networks)

  1. 原理 

一個生成器 (Generator)和一個判別器 (Discriminator),

生成器的目的是儘量去學習和捕捉真實資料樣本的潛在分佈,並生成新的資料樣本;

判別器是一個二分類器,目的是儘量正確判別輸入資料是來自真實資料還是來自生成器

不斷優化,各自提高自己的生成能力和判別能力。

這個學習優化過程就是一個極小極大博弈(Minimax game)問題,目的是尋找二者之間的一個納什均衡,使生成器估測到資料樣本的分佈  

1.2 GAN的數學模型    GAN 的優化問題是一個極小極大化問題

在給定G的前提下,能夠使得V(D)取得最大值的D,將D代回原來的V(G,D)

 即為使兩個KL散度最大,即使PG(x)與Pdata(x)的差異最大,而取,即使PG(x)與Pdata(x)的差異最小,從而形成對抗博弈效果,實現GAN原理

實際訓練時可以採用交替優化的方法:先固定生成器G,優化判別器D,使得D的判別準確率最大化;然後固定判別器D,優化生成器G,使得D的判別準確率最小化。當且僅當pdata = pG時達到全域性最優解。訓練GAN時,同一輪引數更新中,一般對D的引數更新k次再對 G的引數更新1次。

2 GAN的優點與缺陷

GAN是一種以半監督方式訓練分類器的方法,可以幫助解決帶標籤訓練集樣本少的問題,模型訓練時不需要對隱變數做推斷, G的引數更新不是直接來自資料樣本,而是來自D的反向傳播。理論上,只要是可微分函式都可以用於構建D和G(雖然在實踐中,很難使用增強學習去訓練有離散輸出的生成器),從而能夠與深度神經網路結合做深度生成式模型。 從實際結果來看,GAN看起來能產生更好的生成樣:相比完全明顯的信念網路(NADE, Pixel RNN, WaveNet等),GAN因為不需要在取樣序列生成不同的資料能更快的產生樣本;相比依賴於蒙特卡洛估計和對數配分函式的玻爾茲曼,GAN不需要蒙特卡洛估計訓練網路,更簡單(蒙特卡洛方法在高維空間中效果不好,玻爾茲曼機從來沒有拓展到像ImgeNet任務中,而GAN在ImageNet上訓練後可以學習去畫一些以假亂真的狗);相比於變分自編碼器, GAN沒有引入任何決定性偏置( deterministicbias)是漸進一致的,變分方法引入了決定性偏置是有偏差的,他們優化的是對數似然的下界,而不是似然度本身,從而導致VAE生成的例項比GAN更模糊;相比非線性ICA(NICE, Real NVE等),GAN不要求生成器輸入的潛在變數有任何特定的維度或者要求生成器是可逆的;相比深度玻爾茲曼機和GSNs, GAN沒有變分下界,也沒有棘手的配分函式,樣本是一次生成的,而不是重複的應用馬爾科夫鏈來生成[3] [4]。 GAN雖然解決了生成式模型的一些問題,並且對其他方法的發展具有一定的啟發意義,但是 GAN並不完美,它在解決已有問題的同時也引入了一些新的問題。 GAN 最突出的優點同時也是它最大的問題根源。GAN採用對抗學習的準則,理論上還不能判斷模型的收斂性和均衡點的存在性。訓練過程需要保證兩個對抗網路的平衡和同步,否則難以得到很好的訓練效果。而實際過程中兩個對抗網路的同步不易把控,訓練過程可能不穩定。同時,GAN很難學習生成如文字的離散資料,相比玻爾茲曼機,GAN只能一次產生所有畫素,難以根據一個畫素值猜測另一個畫素值(雖然可以用BiGAN來修正這個特性,它能像玻爾茲曼機一樣去使用Gibb取樣來猜測缺失值)。而作為以神經網路為基礎的生成式模型, GAN也存在神經網路類模型的一般性缺陷,即可解釋性差,生成模型的分佈 PG(x)沒有顯式的表達。最後GAN生成的樣本雖然具有多樣性,但是存在崩潰模式 (Collapse mode)現象,可能生成多樣的,但對於人類來說差異不大的樣本[3] [4]。