GAN 的產生器部分會納入歧視者的意見回饋,藉此學習如何建立假資料。同時,這個做法會學習如何讓歧視器將輸出內容分類為真實類別。
與訓練器訓練相比,產生器訓練器必須整合產生器和歧視器。訓練產生器的 GAN 部分包括:
- 隨機輸入
- 產生器網路,可將隨機輸入內容轉換為資料執行個體
- 歧視網路,可將產生的資料分類
- 歧視輸出內容
- 發電機損失,導致發射器無法剝離歧視者
圖 1:產生器訓練中的反向傳播問題。
隨機輸入
類神經網路需要某種形式的輸入。我們通常會輸入要處理的資料,例如想要分類或進行預測的執行個體。不過,我們使用哪個網路做為輸入內容,以輸出全新的資料執行個體?
在最基本的格式中,GAN 會隨機輸入噪音。產生器會將此雜訊轉換為有意義的輸出內容。藉由導入噪音,我們便可讓 GAN 產生各種資料,並從目標分佈的不同位置取樣。
實驗顯示,噪音的分配並不重要,因此我們可以選擇易於取樣的內容,例如統一分佈。為方便起見,取樣雜訊的空間通常小於輸出空間的尺寸。
使用離散器訓練產生器
為了訓練類神經網路,我們修改了淨權重,以減少輸出的錯誤或損失。不過,在 GAN 中,產生器不會直接連線至我們影響的損失。產生器會傳入歧視網路中的網路,而磁碟化工具會產生我們試圖影響的輸出。發電機損失會對發電機產生懲處,以產生歧視器網路歸類為假的樣本。
此額外的網路區塊必須包含在反向傳播中。「反向傳播」會計算權重對輸出內容的影響,以正確的方向調整每個權重,變更權重後,輸出內容會有什麼變化。但產生器權重會受到其影響的權重影響的影響。因此,反向傳播作業從輸出開始,然後透過歧視器送回產生器。
同時,我們並不希望歧視者在產生器訓練期間有所變更。如果試著達到移動目標,產生器的硬性問題就更難了。
因此,我們是透過下列程序訓練產生器:
- 隨機噪音樣本。
- 從取樣的隨機雜訊產生產生器輸出內容。
- 取得歧視器「真實」或「假」分類機制。
- 計算歧視者分類的損失。
- 透過反向歧視和產生器通過反向傳播,以取得漸層。
- 使用梯度僅變更產生器的權重。
這是產生器產生器的疊代作業。在下一節中,我們會說明如何切換產生器和歧視器的訓練。