-
GAN為什么難以訓練?
大多深度模型的訓練都使用優化算法尋找損失函數比較低的值。優化算法通常是個可靠的“下山”過程。生成對抗神經網絡要求雙方在博弈的過程中達到勢均力敵(均衡)。每個模型在更新的過程中(比如生成器)成功的“下山”,但同樣的更新可能會造成博弈的另一個模型(比如判別器)“上山”。甚至有時候博弈雙方雖然最終達到了均衡,但雙方在不斷的抵消對方的進步並沒有使雙方同時達到一個有用的地方。對所有模型同時梯度下降使得某些模型收斂但不是所有模型都達到收斂最優。 -
生成器梯度消失問題
生成器梯度消失問題:當判別器非常准確時,判別器的損失很快收斂到0,從而無法提供可靠的路徑使生成器的梯度繼續更新,造成生成器梯度消失。GAN的訓練因為一開始隨機噪聲分布,與真實數據分布相差距離太遠,兩個分布之間幾乎沒有任何重疊的部分,這時候判別器能夠很快的學習把真實數據和生成的假數據區分開來達到判別器的最優,造成生成器的梯度無法繼續更新甚至梯度消失. -
模型坍塌
模型坍塌是指生成器坍塌到了一個極狹小的分布內,生成的樣本不在變化。通俗來說就是生成器在某種情況下重復生成完全一致的圖像。這就與博弈論中的啟動相關了。如果在生成器最小化之前,判別器已經完全最大化(這里的最小化和最大化是指生成網絡和鑒別網絡是同一個損失函數,但是他們的目標不同,生成網絡需要最小化損失函數,鑒別網絡需要最大化損失函數),這樣所有工作還能進行;但是如果先最小化了生成器,接下來再嘗試最大化鑒別器,這樣網絡是訓練不成功的。原因在於若剛開始變保持鑒別器落后於生成器,鑒別器會錯誤的將空間中某些點標記為最有可能是真的而不是 假的,這樣生成器就會選擇將所有噪聲輸入映射到最可能為真的點.