生成對抗網絡(GAN)系列(二)——GAN存在的問題


生成網絡的優化目標

the -logD alternative

稱生成器的目標函數:

\[\mathop{min}_{\theta } \mathbb{E}_{\boldsymbol z \sim p(\boldsymbol z)}\left [ log(1 - D \left (G (\boldsymbol z; \theta ) ;\phi \right )) \right ] \]

為“the -logD alternative”
將GAN的目標函數寫成一個統一的形式:

\[\mathop{min}_{\theta }\mathop{max}_{\phi } \mathbb{E}_{\boldsymbol x \sim p_{r}(\boldsymbol x)}\left [ logD(\boldsymbol x ;\phi ) \right ] + \mathbb{E}_{\boldsymbol z \sim p(\boldsymbol z )}\left [ log\left ( 1 - D(G(\boldsymbol z ;\theta ) ;\phi ) \right ) \right ] \]

在生成對抗網絡中,當判別網絡接近最優時,生成網絡的優化目標是最小化真實分布和模型分布之間的JS散度。當兩個網絡的分布相同時,JS散度為0,生成網絡對應的損失為-2log2。在實際情況中,真實分布和模型分布有較大的重疊的可能性是微乎其微的,因此我們可以認為真實數據分布和模型的分布是不重疊的,即使重疊,那么重疊的部分也是可以忽略的,在這種情況下,兩個分布之間的JS散度恆為常數log2,判別器對所有的生成數據的判定輸出都為0,生成網絡的損失也為0,導致生成網絡無法更新(如圖1所示)。

圖1 梯度消失問題
圖2 JS散度衡量距離存在的問題

不僅如此,JS散度衡量距離還存在一個問題,從圖2可以看到,只要兩個分布不重疊,那么兩者的JS散度都是一樣的,而實際上q和r與p的距離是不一樣的,JS散度無法捕捉這種差異。

the -logD trick

針對原始生成網絡目標函數存在的問題,GAN之父提出了一種改進的方法,即將生成網絡的目標函數修改為:

\[\mathop{min}_{\theta } \mathbb{E}_{\boldsymbol z \sim p(\boldsymbol z)}\left [- logD \left (G (\boldsymbol z; \theta ) ;\phi \right ) \right ] \]

我們稱之為“the -logD trick”。
但是這樣的修改仍然存在問題,即會存在梯度不穩定(圖3)和模式崩塌問題。

圖3 梯度不穩定問題


免責聲明!

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



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