生成对抗网络(GAN)相比传统训练方法有什么优势?(一)
鏈接:https://www.zhihu.com/question/56171002/answer/148593584
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
自2014年Ian Goodfellow提出生成對抗網絡(GAN)的概念后,生成對抗網絡變成為了學術界的一個火熱的研究熱點,Yann LeCun更是稱之為”過去十年間機器學習領域最讓人激動的點子”.生成對抗網絡的簡單介紹如下,訓練一個生成器(Generator,簡稱G),從隨機噪聲或者潛在變量(Latent Variable)中生成逼真的的樣本,同時訓練一個鑒別器(Discriminator,簡稱D)來鑒別真實數據和生成數據,兩者同時訓練,直到達到一個納什均衡,生成器生成的數據與真實樣本無差別,鑒別器也無法正確的區分生成數據和真實數據.GAN的結構如圖1所示.
<img src="https://pic1.zhimg.com/v2-61e1b1a6d1feb23a7d3c52966d11be08_b.png" data-rawwidth="759" data-rawheight="420" class="origin_image zh-lightbox-thumb" width="759" data-original="https://pic1.zhimg.com/v2-61e1b1a6d1feb23a7d3c52966d11be08_r.png">圖1. 生成對抗網絡的基本架構
近兩年來學術界相繼提出了條件生成對抗網絡(CGAN),信息生成對抗網絡(InfoGAN)以及深度卷積生成對抗網絡(DCGAN)等眾多GAN的變種,下圖2來自于去年一篇Image-to-Image Translation with Conditional Adversarial Nets論文,我們可以看到GAN已經被引入到了各種以往深度神經網絡的任務中,例如從分割圖像恢復原圖像(左上角第一對),給黑白圖片上色(右上角第一對),根據紋理圖上色(右下角第一對),另外,GAN還可以做圖像超分辨率,動態場景生成等,關于GAN的更多應用請見另一篇博客深度學習在計算機視覺領域的前沿進展.
圖2.Image to image圖像翻譯
仔細想來,這些任務,其實都是傳統的深度神經網絡可以做的,例如自編碼器(AutoEncodor)和卷積反卷積架構可以做到的,我們不禁要想,GAN相比傳統的深度神經網絡,它的優勢在哪里?前段時間,我也一直比較迷惑,中文能查到的資料,就是Ian Goodfellow在生成對抗網絡(GAN)論文最后總結的幾點,如下:
優點
- 模型只用到了反向傳播,而不需要馬爾科夫鏈
- 訓練時不需要對隱變量做推斷
- 理論上,只要是可微分函數都可以用于構建D和G,因為能夠與深度神經網絡結合做深度生成式模型
- G的參數更新不是直接來自數據樣本,而是使用來自D的反向傳播(這也是與傳統方法相比差別最大的一條吧)
缺點
- 可解釋性差,生成模型的分布 Pg(G)沒有顯式的表達
- 比較難訓練,D與G之間需要很好的同步,例如D更新k次而G更新一次
上面只是一個比較簡單的解釋,很幸運,我在Quora上查到了兩個個類似問題,GAN與其他生成模型相比有什么優勢,這個問題只有一個人回答,很幸運的是,他就是Ian Goodfellow,GAN的發明人,他在Quora上的簽名就是”I invented generative adversarial networks”. 而另一個問題是GANs的優缺點是什么?, 良心大神Goodfellow也做了回答! 我把他的兩個回答翻譯如下:
分割線
—————————————————————————————————–
原問題1:What is the advantage of generative adversarial networks compared with other generative models?
生成對抗網絡相比其他生成模型的優點?
Ian Goodfellow回答:
—————————————————————————————————–
相比其他所有模型,我認為
- 從實際結果來看,GAN看起來能產生更好的生成樣本
- GAN框架可以訓練任何生成網絡(理論上,然而在實踐中,很難使用增強學習去訓練有離散輸出的生成器),大多數其他架構需要生成器有一些特定的函數形式,就像輸出層必須是高斯化的. 另外所有其他框架需要生成器整個都是非零權值(put non-zero mass everywhere),然而,GANs可以學習到一個只在靠近真實數據的地方(神經網絡層)產生樣本點的模型( GANs can learn models that generate points only on a thin manifold that goes near the data.)
- 沒有必要遵循任何種類的因子分解去設計模型,所有的生成器和鑒別器都可以正常工作
- 相比PixelRNN, GAN生成采樣的運行時間更短,GANs一次產生一個樣本,然而PixelRNNs需要一個像素一個像素的去產生樣本;
- 相比VAE, GANs沒有變分下界,如果鑒別器訓練良好,那么生成器可以完美的學習到訓練樣本的分布.換句話說,GANs是漸進一致的,但是VAE是有偏差的
- 相比深度玻爾茲曼機, GANs沒有變分下界,也沒有棘手的配分函數,樣本是一次生成的,而不是重復的應用馬爾科夫鏈來生成的
- 相比GSNs, GANs產生的樣本是一次生成的,而不是重復的應用馬爾科夫鏈來生成的;
- 相比NICE和Real NVE,GANs沒有對潛在變量(生成器的輸入值)的大小進行限制;
說實話, 我認為其他的方法也都是很了不起的,他們相比GANs也有相應的優勢.
—————————————————————————————————–
原問題2: What are the pros and cons of using generative adversarial networks (a type of neural network)?
生成對抗網絡(一種神經網絡)的優缺點是什么?
It is known that facebook has developed a means of generating realistic-looking images via a neural network. They used “GAN” aka “generative adversarial networks”. Could this be applied generation of other things, such as audio waveform via RNN? Why or why not?
facebook基于神經網絡開發了一種可以生成現實圖片的方法,他們使用GAN,又叫做生成對抗網絡,它能應用到其他事物的生成嗎,例如通過RNN生成音頻波形,可以嗎?為什么?
Ian Goodfellow回答:
—————————————————————————————————–
優勢
- GANs是一種以半監督方式訓練分類器的方法,可以參考我們的NIPS paper和相應代碼.在你沒有很多帶標簽的訓練集的時候,你可以不做任何修改的直接使用我們的代碼,通常這是因為你沒有太多標記樣本.我最近也成功的使用這份代碼與谷歌大腦部門在深度學習的隱私方面合寫了一篇論文
- GANs可以比完全明顯的信念網絡(NADE,PixelRNN,WaveNet等)更快的產生樣本,因為它不需要在采樣序列生成不同的數據.
- GANs不需要蒙特卡洛估計來訓練網絡,人們經常抱怨GANs訓練不穩定,很難訓練,但是他們比訓練依賴于蒙特卡洛估計和對數配分函數的玻爾茲曼機簡單多了.因為蒙特卡洛方法在高維空間中效果不好,玻爾茲曼機從來沒有拓展到像ImgeNet任務中.GANs起碼在ImageNet上訓練后可以學習去畫一些以假亂真的狗
- 相比于變分自編碼器, GANs沒有引入任何決定性偏置( deterministic bias),變分方法引入決定性偏置,因為他們優化對數似然的下界,而不是似然度本身,這看起來導致了VAEs生成的實例比GANs更模糊.
- 相比非線性ICA(NICE, Real NVE等,),GANs不要求生成器輸入的潛在變量有任何特定的維度或者要求生成器是可逆的.
- 相比玻爾茲曼機和GSNs,GANs生成實例的過程只需要模型運行一次,而不是以馬爾科夫鏈的形式迭代很多次.
劣勢
- 訓練GAN需要達到納什均衡,有時候可以用梯度下降法做到,有時候做不到.我們還沒有找到很好的達到納什均衡的方法,所以訓練GAN相比VAE或者PixelRNN是不穩定的,但我認為在實踐中它還是比訓練玻爾茲曼機穩定的多.
- 它很難去學習生成離散的數據,就像文本
- 相比玻爾茲曼機,GANs很難根據一個像素值去猜測另外一個像素值,GANs天生就是做一件事的,那就是一次產生所有像素, 你可以用BiGAN來修正這個特性,它能讓你像使用玻爾茲曼機一樣去使用Gibbs采樣來猜測缺失值,
我在伯克利大學的課堂上前二十分鐘講到了這個問題.課程鏈接,油管視頻,請自帶梯子~
—————————————————————————————————–
以上是Ian Goodfellow的原答案的翻譯,如有翻譯不妥的地方,請指正!
最近在一篇GAN生成圖片的論文中看到,作者提出使用GAN與普通的卷積反卷積相比,GAN能獲得更好的泛化結果. 這里不知道是不是把鑒別器D當做一個監控器,當D的精度接近50%了,就停止訓練,防止生成器過擬合.
GAN還有什么其他有點,希望知友們提出,然后我會加在文章中.謝謝~
總結
以上是生活随笔為你收集整理的生成对抗网络(GAN)相比传统训练方法有什么优势?(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 从PM到GAN——LSTM之父Schmi
- 下一篇: 关于“WireX Botnet”事件An