Mode Collapse(模式坍塌)
Mode collapse 是 Generative Adversarial Network, GAN 訓練時常見的失敗現象
生成器雖然能產生「看起來像真的」樣本,但多樣性不足,最後只會反覆生成少數幾種模式,無法覆蓋真實資料分布。
Summary
- 核心問題不是「不像真的」,而是「太像同一種東西」
- Generator 找到少數能騙過 Discriminator 的輸出後,會一直往那些解靠攏
- 結果是樣本品質可能不差,但分布覆蓋很差,多樣性明顯下降。
- Mode collapse 是 GAN 訓練不穩定的代表現象之一。
Key Points
- 真實資料通常有多個 mode,可以理解成多種常見型態、結構或群集。
- 如果 Generator 只學到其中一小部分,就會忽略其他 mode。
- 在影像任務中,常見表現是不同 noise 輸入卻生成非常相似的圖。
- 這代表模型不是完整學到資料分布,而是卡在局部有效的策略。
1. 什麼是 mode collapse
Mode collapse 指的是
Generator 的輸出缺乏變化,很多不同的 latent vector 最後映射到很接近的結果。
可以把它理解成:
- 真實資料有很多種類型。
- Generator 本來應該學會把這些類型都生成出來。
- 但實際上只抓住少數幾種最容易騙過 Discriminator 的樣本形式。
因此,模型看似有在生成資料,但其實只是在重複少量模式。

2. 為什麼會發生
GAN 的訓練是 Generator 和 Discriminator 的對抗過程
若這個平衡失衡,就容易出現 mode collapse
常見原因:
- Discriminator 太弱,無法有效區分多樣但不真實的樣本
- Generator 發現某幾種輸出特別容易拿到高分,便反覆使用
- 訓練過程震盪過大,導致 Generator 持續追逐短期有效的解
- Loss 雖然下降,但不代表分布覆蓋變好
簡單說,Generator 學到的是「怎麼騙過判別器」
不一定是「怎麼完整模仿真實分布」

3. 怎麼判斷模型發生了 mode collapse
觀察指標通常不是只看 loss,而是看輸出的多樣性。
可以從幾個角度判斷:
- 不同 noise 輸入產生的樣本非常相似。
- 生成結果反覆出現同一種構圖、姿態、顏色或局部特徵。
- 視覺品質不一定差,但內容變化很少。
- 真實資料的某些類型幾乎從未被生成出來。

4. 直觀例子
假設真實資料是手寫數字,資料裡同時有 0 到 9。
理想情況下:
- Generator 應該能生成各種數字。
若發生 mode collapse:
- 模型可能只會一直生成 3、8,或只生成某種固定筆跡風格。
- 即使圖片看起來像真的,仍然不代表它學會整個資料分布。
5. 常見緩解方向
常見做法是讓訓練更穩定,並提高對多樣性的約束。
- 改善 GAN 訓練目標,例如 Wasserstein GAN, WGAN。
- 使用 gradient penalty 等方法,讓判別器學習更平滑。
- 調整 Generator / Discriminator 的容量與更新步調。
- 監控生成樣本的多樣性,而不是只看單一 loss。
- 在架構或訓練技巧上加入避免 collapse 的設計。
Examples
- 人臉生成:輸入不同 noise,但產生的人臉幾乎都是相同角度與相似五官。
- 文字生成:模型反覆輸出高度重複的句型,缺少內容變化。
- 圖像生成:資料集中明明有多種物件顏色,但模型只生成最常見的顏色組合。