【GAN】GAN設計與訓練集錦


以下內容純屬經驗之談,無公式推斷!部分內容源自其他博客或課程,並已標注來源。

問題篇[1]

1.模式崩潰 

在某個模式(mode)下出現大量重復樣本,如左圖中,生成的樣本分布靠得很近,較聚集,可視化如右圖,表現為生成多個相同或相似度很高的樣本,缺乏多樣性。

 

2.模式丟失

顧名思義,某些模式(mode)沒有,同樣缺乏多樣性,雖然生成的樣本已經盡可能擬合真實分布,分布也不聚集,但是存在某些模式的丟失,例如下圖中人物,除了膚色變化,人物沒有任何變化。

 

 

設計篇

1.在上采樣階段,慎用transpose2d,推薦使用upsample + conv2d組合,如下圖所以,利用transpose2d上采樣得到的生成圖像,存在“方形格子”,生成的圖像不平滑。

     

(a)輸入圖像     (b)transpose2d上采樣生成圖像

2.一些博客提到輸入網絡前將圖像縮放到(-1,1),最后一次添加Tanh()激活層將輸出映射到(-1,1),在保存結果和可視化時需要(image+1)/2縮放到(0,1).【2】

3. 采樣cycleGAN類似結構可以學到圖像的解耦的表示,可用於表情編輯、圖像風格遷移等(異父異母的三胞胎:CycleGAN, DiscoGAN, DualGAN[3])。

 

 4.[4]中提到的(1)利用推土機距離替代JS散度;(2)TTUR:低速(小學習率)更新生成器,高速更新判別器;(3)梯度懲罰;(4)譜歸一化;(5)單側標簽平滑等

 

訓練篇

1.當生成器損失從很大的值迅速變為0,而判別器損失維持不變。

有可能時生成器生成能力較弱,因此一種可行的方法是增加生成器的層數來增加非線性。

2.某些文獻采用生成器與判別器交叉訓練的方法,即先訓練判別器,再訓練生成器,其目的是先訓練判別器並更新其參數,先讓其具有較好判別能力,而在訓練生成器時因為判別器已具有一定判定能力,生成器的目的是盡可能騙過判別器,所以生成器會朝着生成更真實的圖像前進;也可以采用先訓練生成器,再訓練判別器,但是此種訓練方法不推薦;同時也可以采用先更新生成器或判別器多次,再更新另一個一次的方法。

3. 生成器損失、判別器損失,其中一個很大或者逐漸變大,另一個很小或者逐漸變小。

 

為什么GAN的Loss一直降不下去。GAN到底什么時候才算收斂?其實,作為一個訓練良好的GAN,其Loss就是降不下去的。衡量GAN是否訓練好了,只能由人肉眼去看生成的圖片質量是否好。不過,對於沒有一個很好的評價是否收斂指標的問題,也有許多學者做了一些研究,后文提及的WGAN就提出了一種新的Loss設計方式,較好的解決了難以判斷收斂性的問題。下面我們分析一下GAN的Loss為什么降不下去?​

生成器和判別器的目的相反,也就是說兩個生成器網絡和判別器網絡互為對抗,此消彼長。不可能Loss一直降到一個收斂的狀態。[5]

對於生成器,其Loss下降快,很有可能是判別器太弱,導致生成器很輕易的就"愚弄"了判別器。

對於判別器,其Loss下降快,意味着判別器很強,判別器很強則說明生成器生成的圖像不夠逼真,才使得判別器輕易判別,導致Loss下降很快。

也就是說,無論是判別器,還是生成器。loss的高低不能代表生成器的好壞。一個好的GAN網絡,其GAN Loss往往是不斷波動的。
————————————————
版權聲明:本文為CSDN博主「alanjia163」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_35290785/article/details/90247938

 

  

 

 

 

參考

[1] 李宏毅GAN開放課程

[2]GAN訓練心得

https://blog.csdn.net/q1242027878/article/details/84452902?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase

[3] 異父異母的三胞胎:CycleGAN, DiscoGAN, DualGAN

https://zhuanlan.zhihu.com/p/26332365

[4] GAN性能不穩?這九大技術可“鎮住”四類缺陷

https://blog.csdn.net/dQCFKyQDXYm3F8rB0/article/details/87871048?utm_medium=distribute.pc_relevant.none-task-blog-searchFromBaidu-12.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-searchFromBaidu-12.nonecase

[5] https://blog.csdn.net/qq_35290785/article/details/90247938

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM