走進生成對抗式網絡(GAN)摘記

自從OpenAI的Ian J.Goodfellow大神發的開創性文章GAN以後,GAN的發展是膨脹式的,工業界的各個大牛也隨之加入GAN蓬勃發展的大軍中。除了OpenAI之外,工業界好多公司都參與到了GAN的研究中,包括了Facebook、Google、Apple等公司。其中一個發表比較的多的就是Facebook的Soumith Chintala,他參與發表了DCGANLPGANWGAN以及SSGAN,其中WGAN也是得到了大量的關注,該文詳細的對GAN的缺陷進行了深入解析,然後提出了具有里程碑式的改進,個人認爲這對後續GAN的發展起到了很關鍵的作用;另外Google也是在GAN相關方向上發表了4篇以上的論文,G家的工程能力再一次凸顯出來,一上來就結合adboostunrolledautoencoder等方向發表了幾篇文章;除此之外就連Apple也將自己對外發表的第一篇AI論文SUGAN獻給了GAN領域,該SUGAN文章講述如何利用合成圖像而不是隨機向量作爲輸入結合GAN對合成圖像的質量進行無監督的改善提升然後用於訓練。


       隨着GAN在目標優化上的不斷持續改進,目前應用方向也得到了一些擴展,涉及的方向包括但不限於如下:圖像生成文本生成圖像根據場景生成視頻骨架圖檢索圖像超分辨率通訊保護等。由於GAN的生成對抗特性,它特別適用於不同域上的特徵映射,這個想象空間就會非常大,結合之前DL的一些常見應用可以展望如下結合域上的一些應用:圖像文本結合,圖像語音結合,圖像視頻結合等。另外它可以天然的去做無監督學習、半監督學習等。


在觀察了工業界以及應用上的一些動向後,需要來看下到底GAN的目標函數是怎樣的?在調研中發現,生成對抗式網絡的目標函數也是經過了很多輪的改進。首先GAN文章提出了生成對抗式網絡,其基本公式如下:


其中D函數代表判別網絡,G代表生成網絡,整個優化目標需要最大化判別網絡D判別正確的概率(公式第一項)同時需要最小化G生成的樣本被判別出來的概率(公式第二項)。在實際的訓練過程中:1)早期G網絡很弱,D網絡總是能判別出來G生成的樣本,這時候公式第二項的梯度會很弱,所以早期的時候會採用最大化log D(G(z))的方式來獲取更強的梯度;2)訓練過程中會訓練k步D網絡,然後再訓練一步G網絡,總是讓D網絡足夠強。論文中提到的實際訓練中的第一個技巧也預示着在後續的訓練中只要D網絡特別強,那麼論文公式一中的第二項會讓G網絡的梯度變很弱,這時候訓練過程就進行不下去了,所以在訓練GAN的時候別把D網絡訓練得太強。WGAN文章提出在訓練集樣本概率密度函數與生成樣本概率密度函數兩者分佈的可重疊部分很少時,GAN中優化公式一的損失函數就會變爲一個常數,從而梯度就會消失,網絡也就訓練不下去了。除此之外,WGAN基於GAN文章中的內容將目標函數轉化了下,從拉進生成樣本的概率密度分佈與訓練集樣本的概率密度分佈爲目標提出瞭如下損失函數用來度量兩個概率密度分佈的距離(WGAN公式一):


接着文章將其轉化成了WGAN公式二:


再接着轉化成WGAN公式三:


由於公式三中的f函數必須滿足論文中提出的K-Lipschitz條件,所以在實際訓練WGAN網絡的時候,可以通過限制網絡參數在某一固定取值空間內即,然後每次更新完網絡參數w,都將其裁剪到上述的固定取值空間。在WGAN解決了原始GAN的梯度消失問題後,接着在實踐中,大家又發現了其他的問題那就是LSGAN文章中提出的modecollapse現象,在WGAN的公式三中,可能會出現生成的樣本和一部分真實樣本已經非常相近,但該公式三還會一直在這部分真實樣本上持續不斷的產生梯度,當這部分樣本佔很大多數時,網絡就會一直陷入這批真實樣本上的持續優化中,另一部分少數真實樣本的概率分佈可能就會學不到。基於上述觀察LSGAN提出了LSGAN公式六:


在實際訓練中文章顯示LSGAN方法在生成網絡梯度方面具有更加魯棒的特性,另外


部分採用像素級別的L1距離。MRGAN論文觀察到之前GAN的方法大多采用將隨機向量z映射到一個樣本空間,這樣可能會增加GANs網絡的學習難度,文中提出讓 z 從一個樣本空間先映射過來,也就是有一個 z = encoder(X) 的過程,從而再,G(encoder(X))。這樣可以讓生成樣本儘可能靠譜點,也就是讓G生成網絡能力盡可能強些,這樣整個訓練也會更加平穩,並且這裏也同時可以更好的解決mode collapse問題,因爲通過讓z = encoder(X),該方法RGAN已經顯示的讓生成網絡能覆蓋所有的樣本空間。MRGAN的目標函數如下:


在實際訓練中,會迭代地去訓練MRGAN公式二與RGAN公式一。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章