1. 程式人生 > >GAN不穩定原因

GAN不穩定原因

生成對抗神經網路由兩部分組成:生成器和判別器。判別器儘可能使D(G(Z))接近0,而生成器儘可能生成同分布高質量的樣本使D(G(Z))接近1。當生成器和判別器的效能訓練得足夠好時,達到納什均衡(生成器生成的G(Z)與訓練資料有相同的分佈,對於判別器的每個輸入x, D(x)=0.5)
生成器生成樣本G(z)的損失函式取決於判別器的反饋。判別器判定樣本為真的概率越高,生成器的損失函式越低。當樣本趨向於為假,minimax 博弈和最大似然博弈的損失函式的梯度很小。對於最大似然GAN,每個miniBatch中只有少量的樣本可以計算梯度。
生成對抗神經網路訓練不穩定有如下三點原因:
(1)很難使一對模型(G和D同時)收斂,這也會造成以下第(2)點提到的模式崩潰。大多深度模型的訓練都使用優化演算法尋找損失函式比較低的值。優化演算法通常是個可靠的“下山”過程。生成對抗神經網路要求雙方在博弈的過程中達到勢均力敵(均衡)。每個模型在更新的過程中(比如生成器)成功的“下山”,但同樣的更新可能會造成博弈的另一個模型(比如判別器)“上山”。甚至有時候博弈雙方雖然最終達到了均衡,但雙方在不斷的抵消對方的進步並沒有使雙方同時達到一個有用的地方。對所有模型同時梯度下降使得某些模型收斂但不是所有模型都達到收斂最優。
(2)生成器G發生模式崩潰:對於不同的輸入生成相似的樣本,最壞的情況僅生成一個單獨的樣本,判別器的學習會拒絕這些相似甚至相同的單一樣本。在實際應用中,完全的模式崩潰很少,區域性的模式崩潰很常見。區域性模式崩潰是指生成器使不同的圖片包含相同的顏色或者紋理主題,或者不同的圖片包含同一只狗的不同部分。MinBatch GAN緩解了模式崩潰的問題但同時也引發了counting, perspective和全域性結構等問題,這些問題通過設計更好的模型框架有可能解決。
(3)生成器梯度消失問題:當判別器非常準確時,判別器的損失很快收斂到0,從而無法提供可靠的路徑使生成器的梯度繼續更新,造成生成器梯度消失。GAN的訓練因為一開始隨機噪聲分佈,與真實資料分佈相差距離太遠,兩個分佈之間幾乎沒有任何重疊的部分,這時候判別器能夠很快的學習把真實資料和生成的假資料區分開來達到判別器的最優,造成生成器的梯度無法繼續更新甚至梯度消失。