GAN原理
轉載自:https://blog.csdn.net/Sakura55/article/details/81512600
- 一、原理部分
- 1.1、 GAN的原理:
- 1.2、架構
- 1.3、 GAN 的特點及優缺點:
- 二、為什么GAN中的優化器不常用SGD
- 三、為什么GAN不適合處理文本數據
- 四、訓練GAN的一些技巧
- 五、GAN的廣泛應用
一、原理部分
首先附上一張流程圖
1.1、 GAN的原理:
????????????????GAN的主要靈感來源于博弈論中零和博弈的思想,應用到深度學習神經網絡上來說,就是通過生成網絡G(Generator)和判別網絡D(Discriminator)不斷博弈,進而使G學習到數據的分布,如果用到圖片生成上,則訓練完成后,G可以從一段隨機數中生成逼真的圖像。G, D的主要功能是:
????????????????● G是一個生成式的網絡,它接收一個隨機的噪聲z(隨機數),通過這個噪聲生成圖像
????????????????● D是一個判別網絡,判別一張圖片是不是“真實的”。它的輸入參數是x,x代表一張圖片,輸出D(x)代表x為真實圖片的概率,如果為1,就代表100%是真實的圖片,而輸出為0,就代表不可能是真實的圖片
????????????????訓練過程中,生成網絡G的目標就是盡量生成真實的圖片去欺騙判別網絡D。而D的目標就是盡量辨別出G生成的假圖像和真實的圖像。這樣,G和D構成了一個動態的“博弈過程”,最終的平衡點即納什均衡點.
1.2、架構
????????????通過優化目標,使得我們可以調節概率生成模型的參數\theta,從而使得生成的概率分布和真實數據分布盡量接近。
????????????那么怎么去定義一個恰當的優化目標或一個損失?傳統的生成模型,一般都采用數據的似然性來作為優化的目標,但GAN創新性地使用了另外一種優化目標。首先,它引入了一個判別模型(常用的有支持向量機和多層神經網絡)。其次,它的優化過程就是在尋找生成模型和判別模型之間的一個納什均衡。
????????????GAN所建立的一個學習框架,實際上就是生成模型和判別模型之間的一個模仿游戲。生成模型的目的,就是要盡量去模仿、建模和學習真實數據的分布規律;而判別模型則是要判別自己所得到的一個輸入數據,究竟是來自于真實的數據分布還是來自于一個生成模型。通過這兩個內部模型之間不斷的競爭,從而提高兩個模型的生成能力和判別能力。
??????????????當一個判別模型的能力已經非常強的時候,如果生成模型所生成的數據,還是能夠使它產生混淆,無法正確判斷的話,那我們就認為這個生成模型實際上已經學到了真實數據的分布。
1.3、 GAN 的特點及優缺點:
特點
????????????????????● 相比較傳統的模型,他存在兩個不同的網絡,而不是單一的網絡,并且訓練方式采用的是對抗訓練方式
????????????????????● GAN中G的梯度更新信息來自判別器D,而不是來自數據樣本
優點
(以下部分摘自ian goodfellow 在Quora的問答)
????????????????????● GAN是一種生成式模型,相比較其他生成模型(玻爾茲曼機和GSNs)只用到了反向傳播,而不需要復雜的馬爾科夫鏈
????????????????????● 相比其他所有模型, GAN可以產生更加清晰,真實的樣本
????????????????????● GAN采用的是一種無監督的學習方式訓練,可以被廣泛用在無監督學習和半監督學習領域
????????????????????● 相比于變分自編碼器, GANs沒有引入任何決定性偏置( deterministic bias),變分方法引入決定性偏置,因為他們優化對數似然的下界,而不是似然度本身,這看起來導致了VAEs生成的實例比GANs更模糊
????????????????????● 相比VAE, GANs沒有變分下界,如果鑒別器訓練良好,那么生成器可以完美的學習到訓練樣本的分布.換句話說,GANs是漸進一致的,但是VAE是有偏差的
????????????????????● GAN應用到一些場景上,比如圖片風格遷移,超分辨率,圖像補全,去噪,避免了損失函數設計的困難,不管三七二十一,只要有一個的基準,直接上判別器,剩下的就交給對抗訓練了。
缺點
????????????????????● 訓練GAN需要達到納什均衡,有時候可以用梯度下降法做到,有時候做不到.我們還沒有找到很好的達到納什均衡的方法,所以訓練GAN相比VAE或者PixelRNN是不穩定的,但我認為在實踐中它還是比訓練玻爾茲曼機穩定的多
????????????????????● GAN不適合處理離散形式的數據,比如文本
????????????????????● GAN存在訓練不穩定、梯度消失、模式崩潰的問題(目前已解決)
附:模式崩潰(model collapse)原因
????????????????????一般出現在GAN訓練不穩定的時候,具體表現為生成出來的結果非常差,但是即使加長訓練時間后也無法得到很好的改善。
????????????????????GAN采用的是對抗訓練的方式,G的梯度更新來自D,所以G生成的好不好,得看D怎么說。具體就是G生成一個樣本,交給D去評判,D會輸出生成的假樣本是真樣本的概率(0-1),相當于告訴G生成的樣本有多大的真實性,G就會根據這個反饋不斷改善自己,提高D輸出的概率值。但是如果某一次G生成的樣本可能并不是很真實,但是D給出了正確的評價,或者是G生成的結果中一些特征得到了D的認可,這時候G就會認為我輸出的正確的,那么接下來我就這樣輸出肯定D還會給出比較高的評價,實際上G生成的并不怎么樣,但是他們兩個就這樣自我欺騙下去了,導致最終生成結果缺失一些信息,特征不全。
??????????????????????????????????????????????????????????????????????????????????局部極小值點
??????????????????????????????????????????鞍點
二、為什么GAN中的優化器不常用SGD
SGD容易震蕩,容易使GAN訓練不穩定,
GAN的目的是在高維非凸的參數空間中找到納什均衡點,GAN的納什均衡點是一個鞍點,但是SGD只會找到局部極小值,因為SGD解決的是一個尋找最小值的問題,GAN是一個博弈問題。
三、為什么GAN不適合處理文本數據
文本數據相比較圖片數據來說是離散的,因為對于文本來說,通常需要將一個詞映射為一個高維的向量,最終預測的輸出是一個one-hot向量,假設softmax的輸出是(0.2, 0.3, 0.1,0.2,0.15,0.05)那么變為onehot是(0,1,0,0,0,0),如果softmax輸出是(0.2, 0.25, 0.2, 0.1,0.15,0.1 ),one-hot仍然是(0, 1, 0, 0, 0, 0),所以對于生成器來說,G輸出了不同的結果但是D給出了同樣的判別結果,并不能將梯度更新信息很好的傳遞到G中去,所以D最終輸出的判別沒有意義。
另外就是GAN的損失函數是JS散度,JS散度不適合衡量不想交分布之間的距離。
(WGAN雖然使用wassertein距離代替了JS散度,但是在生成文本上能力還是有限,GAN在生成文本上的應用有seq-GAN,和強化學習結合的產物)
四、訓練GAN的一些技巧
輸入規范化到(-1,1)之間,最后一層的激活函數使用tanh(BEGAN除外)
使用wassertein GAN的損失函數,
如果有標簽數據的話,盡量使用標簽,也有人提出使用反轉標簽效果很好,另外使用標簽平滑,單邊標簽平滑或者雙邊標簽平滑
使用mini-batch norm, 如果不用batch norm 可以使用instance norm 或者weight norm
避免使用RELU和pooling層,減少稀疏梯度的可能性,可以使用leakrelu激活函數
優化器盡量選擇ADAM,學習率不要設置太大,初始1e-4可以參考,另外可以隨著訓練進行不斷縮小學習率,
給D的網絡層增加高斯噪聲,相當于是一種正則
GAN的變種
自從GAN出世后,得到了廣泛研究,先后幾百篇不同的GANpaper橫空出世,國外有大神整理了一個GAN zoo(GAN動物園),鏈接如下,感興趣的可以參考一下:
https://github.com/hindupuravinash/the-gan-zoo
GitHub上已經1200+star了,順便附上一張GAN的成果圖,可見GAN的研究火熱程度:
五、GAN的廣泛應用
GAN本身是一種生成式模型,所以在數據生成上用的是最普遍的,最常見的是圖片生成,常用的有DCGAN WGAN,BEGAN,個人感覺在BEGAN的效果最好而且最簡單。
GAN本身也是一種無監督學習的典范,因此它在無監督學習,半監督學習領域都有廣泛的應用
不僅在生成領域,GAN在分類領域也占有一席之地,簡單來說,就是替換判別器為一個分類器,做多分類任務,而生成器仍然做生成任務,輔助分類器訓練。
GAN可以和強化學習結合,目前一個比較好的例子就是seq-GAN
目前比較有意思的應用就是GAN用在圖像風格遷移,圖像降噪修復,圖像超分辨率了,都有比較好的結果。
目前也有研究者將GAN用在對抗性攻擊上,具體就是訓練GAN生成對抗文本,有針對或者無針對的欺騙分類器或者檢測系統等等,但是目前沒有見到很典范的文章。
參考文獻:
https://github.com/hindupuravinash/the-gan-zoo
https://blog.csdn.net/qq_25737169/article/details/78857724#t0
https://www.jianshu.com/p/80bd4d4c2992
總結