生成對抗網絡(GAN)自 2014 年提出以來,已成為生成模型領域的重要基石。它的基 本思想看似簡單,卻面臨著諸如訓練不穩定、模式崩潰、梯度消失或爆炸等一系列問 題。本文將聚焦于兩個近年來被廣泛研究的提升穩定性的關鍵技術 —— 譜歸一化
(Spectral Normalization) 和 梯度懲罰( Gradient Penalty) ,并探討它們如何 協同工作以增強GAN的訓練穩定性與生成質量。
一、 問題背景: 為什么GAN難以訓練?
傳統GAN訓練時,判別器 D 和生成器 G 是一種零和博弈的關系。理想情況下 D 和 G 會在競爭中不斷進步,但在實際訓練中卻常常出現以下問題:
判別器過強或過弱導致梯度信息缺失 訓練過程中不平衡,判別器過擬合
模式崩潰( Mode Collapse)
損失函數不再反映模型質量
因此,研究者們提出了多種正則化方法來控制判別器的“行為”,使得訓練過程更加平 穩。
二、譜歸一化(Spectral Normalization)
冷 原理簡介
譜歸一化是一種通過約束判別器每一層權重的最大奇異值(譜范數) ,從而控制網絡 Lipschitz 常數的技術。
簡而言之,它通過將每一層的權重 W 歸一化為:
$W_ {SN} = \frac{W}{\sigma(W)} $ 其中 σ(W) 是矩陣 W 的最大奇異值。
✅ 優點
控制判別器的 Lipschitz 常數,防止梯度爆炸 收斂更快,訓練更穩定
無需額外的超參數(與梯度懲罰不同)
圓 應用代表:SN-GAN
譜歸一化首次由 Miyato 等人在 2018 年的論文中提出,并應用于 SN-GAN 中,效果顯 著優于傳統 GAN。
三、梯度懲罰(Gradient Penalty)
冷 原理簡介
梯度懲罰的核心思想是: 約束判別器對輸入的梯度不能太大,從而保持 Lipschitz 連 續性。
在 WGAN-GP 中,懲罰項被添加到了損失函數中:
LGP = λ ⋅ (∥∇D()∥ 2 − 1)2
其中 x^ 是真實樣本與生成樣本之間的插值點, λ 是權重系數。
✅ 優點
可以控制判別器的梯度行為 適用于各種 GAN 架構
能有效緩解模式崩潰問題
⚠ 缺點
增加了計算復雜度
梯度估計可能不穩定,需選好 λ
四、譜歸一化 vs 梯度懲罰
五、聯合策略:譜歸一化 + 梯度懲罰
在實際中,兩者結合使用可以取長補短。譜歸一化控制網絡整體尺度,而梯度懲罰則精 細約束輸入輸出的敏感度。
爨 聯合策略核心思路:
1. 在判別器中使用譜歸一化來約束每一層的 Lipschitz 常數
2. 在損失函數中添加梯度懲罰項對輸入輸出變化進行額外約束
3. 通過適當調整梯度懲罰的權重 λ , 進一步增強訓練魯棒性
實踐效果
模型在初期收斂更平穩
判別器不過擬合,生成器更易于優化
在 CIFAR-10、Ce lebA 等數據集上,FID 得分有顯著下降
六、PyTorch 示例(偽代碼)
七、總結
譜歸一化與梯度懲罰本質上都是為了實現判別器的平滑控制,它們分別從“參數空間” 和“輸入空間”兩個角度解決 GAN 的訓練不穩定性問題。聯合使用這兩種技術可以有 效:
提高 GAN 訓練穩定性 緩解模式崩潰
提升生成樣本質量
在今后的 GAN 架構設計中,這種 “雙保險式”的正則化策略 將成為提高模型可靠性的有 效手段。