GAN 訓練

由於 GAN 包含兩個經過個別訓練的網路,因此訓練演算法必須解決兩個複雜問題:

  • GAN 必須同時進行兩種訓練 (產生器和鑑別器)。
  • 很難找出 GAN 收斂的情況。

交替訓練

生成器和判別器的訓練程序不同。那麼,我們要如何訓練 GAN 整體?

GAN 訓練會在交替的時間段中進行:

  1. 判別器會訓練一或多個迴圈。
  2. 產生器會訓練一或多個迴圈。
  3. 重複執行步驟 1 和 2,繼續訓練產生器和判別器網路。

我們會在鑑別器訓練階段保持產生器的常數。辨別器訓練會嘗試找出如何區分真實資料和假資料,因此必須學會如何辨識產生器的缺陷。對於經過完整訓練的產生器而言,這與產生隨機輸出的未訓練產生器所產生的問題不同。

同樣地,我們會在產生器訓練階段中保持鑑別器的常數。否則產生器會嘗試命中移動中的目標,且可能永遠無法收斂。

正是這種來回的過程,讓 GAN 能夠解決原本難以解決的生成問題。我們從簡單的分類問題開始,逐步解決複雜的生成問題。反之,如果您無法訓練分類器來判斷真實資料和產生資料的差異 (即使是初始隨機產生器的輸出內容),就無法開始 GAN 訓練。

收斂

隨著產生器在訓練過程中改善,判別器的效能會變差,因為判別器無法輕易分辨真假圖片。如果產生器順利完成,鑑別器的準確度為 50%。鑑別器會擲硬幣來做出預測。

這種進展會導致 GAN 整體收斂的問題:區別器的回饋隨著時間流逝而變得越來越不具意義。如果 GAN 繼續訓練,超過鑑別器提供完全隨機意見回饋的時間點,產生器就會開始訓練垃圾意見回饋,而其品質可能會降低。

對於 GAN 而言,收斂通常是短暫的狀態,而非穩定狀態。