---
# System prepended metadata

title: Generative Adversarial Nets

---

# Generative Adversarial Nets
Ian J. Goodfellow, Jean Pouget-Abadie, Mehdi Mirza, Bing Xu, David Warde-Farley, Sherjil Ozair, Aaron Courville, Yoshua Bengio, ( NeurIPS 2014)
https://arxiv.org/abs/1406.2661

## 1. 摘要

本研究提出一種透過對抗過程訓練生成模型的新框架，同時訓練兩個模型：

* 生成器（Generator, G）：學習資料分佈，生成與真實資料相似的樣本。
* 鑑別器（Discriminator, D）：判斷輸入樣本來自真實資料還是生成器。

訓練過程構成一個極小化極大化遊戲（minimax game），生成器試圖讓鑑別器判斷錯誤，鑑別器則試圖正確分辨真假資料。當兩者達到平衡時，生成器的分佈會與真實資料分佈一致，而鑑別器的輸出為 0.5，意即真假機率各為 50%。

訓練與生成時均不需使用馬可夫鏈或近似推論網路，並可用反向傳播直接訓練。

## 2. 研究目的

舊生成網路進展緩慢，原因有二：

* 難以利用分段線性單元（ReLU 等）的優勢。
* 最大似然估計需要近似處理許多不可解的機率計算，

本研究提出一種無需顯式定義機率分佈、無需馬可夫鏈即可訓練的生成模型框架。建立一個理論上可證明收斂至真實資料分佈的生成方法。

## 3. 研究方法

### 3.1. 對抗訓練框架

![螢幕擷取畫面 2025-08-27 221929](https://hackmd.io/_uploads/HJOc49htee.png)

>圖 1. 生成對抗網路（GAN）的訓練過程示意：判別器分佈 $D$（藍色虛線）被不斷更新，用來區分來自資料分佈 $p_{data}$（黑色虛線）與生成分佈 $p_g$（綠色實線，生成器 $G$ 的輸出）的樣本。下方水平線表示潛在變數 $z$ 的取樣空間（此處為均勻分佈），上方水平線則屬於資料空間 $x$ 的一部分。向上的箭頭代表映射 $x = G(z)$，將均勻分佈轉換為生成分佈 $p_g$。在 $p_g$ 的高密度區域，映射收縮；在低密度區域，映射擴張。( a ). 接近收斂時，$p_g \approx p_{data}$，而 $D$ 僅能做出部分正確的分類。( b ). 在演算法的內循環中，$D$ 學會區分資料與生成樣本，收斂至最優解：$D^*(x) = \frac{p_{data}(x)}{p_{data}(x) + p_g(x)}$( c ). 更新 $G$ 後，$D$ 的梯度引導 $G(z)$ 朝更可能被分類為真實資料的區域移動。( d ). 經過多次更新後，如果 $G$ 與 $D$ 具有足夠的容量，它們將達到平衡：$p_g = p_{data}$。此時判別器無法再分辨兩者，輸出 $D(x) = 0.5$。

對輸入雜訊 $z$（來自先驗分佈 $p_z$）使用生成器 $G(z;θ_g)$ 生成假資料。鑑別器 $D(x;θ_d)$ 輸出樣本來自真實資料的機率。

* GAN 的極小極大目標函數：
$\min_G \max_D V(D,G) = \mathbb{E}_{x \sim p_{data}}[\log D(x)] + \mathbb{E}_{z \sim p_z}[\log (1 - D(G(z)))]$。

* 參數說明：

| 符號／術語                                     | 名稱      | 定義／意義                                                                                            | 型別／範圍                              | 備註（訓練直覺）                 |
| ----------------------------------------- | ------- | ------------------------------------------------------------------------------------------------ | ---------------------------------- | ------------------------ |
| $\min_G \max_D V(D,G)$                    | 對抗式極小極大 | 零和博弈的總目標                                                                                         | —                                  | $D$ 盡力區分真／假、$G$ 盡力騙過 $D$ |
| $V(D,G)$                                  | 價值函數    | $\displaystyle \mathbb{E}_{x\sim p_{data}}[\log D(x)] + \mathbb{E}_{z\sim p_z}[\log(1-D(G(z)))]$ | $\mathbb{R}$                       | 大代表對 $D$ 有利；小代表對 $G$ 有利  |
| $G$（$\theta_g$）                           | 生成器     | 將噪聲 $z$ 映射為樣本 $\hat x=G(z)$ 的可微模型                                                                | NN/可微函數                            | 想讓 $D(G(z))$ 接近 1        |
| $D$（$\theta_d$）                           | 判別器     | 對輸入樣本輸出為真的機率 $D(x)\in(0,1)$                                                                      | NN/可微函數                            | 想讓真樣本機率大、假樣本機率小          |
| $x$                                       | 真實樣本    | 來自資料空間的觀測                                                                                        | 例：$\mathbb{R}^{H\times W\times C}$ | 由 $p_{data}$ 生成          |
| $\hat x=G(z)$                             | 生成樣本    | 由 $G$ 產生的擬真資料                                                                                    | 同 $x$ 的空間                          | 目標是以假亂真                  |
| $z$                                       | 潛在向量／噪聲 | $G$ 的隨機輸入                                                                                        | $\mathbb{R}^{d_z}$                 | 提供多樣性與隨機性                |
| $p_{data}$                                | 資料分佈    | 真實但未知的資料機率分佈                                                                                     | —                                  | 僅能透過樣本近似                 |
| $p_z$                                     | 噪聲先驗    | 生成 $z$ 的分佈                                                                                       | 常用 $\mathcal N(0,I)$ 或均勻分佈         | 訓練時先抽 $z\sim p_z$        |
| $D(x)$                                    | 真實機率評分  | 判別器認為「真實」的機率                                                                                     | $(0,1)$                            | 真樣本希望大、假樣本希望小            |
| $\mathbb{E}_{x\sim p_{data}}[\log D(x)]$  | 真實項     | 鼓勵 $D$ 對真實樣本輸出高機率                                                                                | $\mathbb{R}$                       | 提升辨識真樣本能力                |
| $\mathbb{E}_{z\sim p_z}[\log(1-D(G(z)))]$ | 假樣本項    | 鼓勵 $D$ 把生成樣本判為假                                                                                  | $\mathbb{R}$                       | 提升識別假樣本能力                |
| $\log$                                    | 對數      | 對數似然的度量                                                                                          | —                                  | 使用自然對數                   |

### 3.2. 訓練策略

訓練策略採用交替更新，使用小批量隨機梯度下降（SGD）與動量更新。對鑑別器進行 $k$ 次梯度上升（最大化其分類正確率），再對生成器進行一次梯度下降。

### 3.3. 理論分析

證明在非參數情況下，該最小最大遊戲的全域最優解為 $p_g=p_{data}$。若生成器與鑑別器容量足夠，且每步鑑別器達到最優，則生成器分佈可收斂至真實資料分佈。

## 4. 實驗設計與結果

### 4.1. 實驗設計

* 資料集：MNIST、Toronto Face Database (TFD)、CIFAR-10。
* 網路結構：生成器採用 ReLU 與 sigmoid，鑑別器採用 maxout + dropout。
* 評估方法：以高斯 Parzen 視窗對生成樣本估計 log-likelihood。

### 4.2. 實驗結果

 ![螢幕擷取畫面 2025-08-27 224051](https://hackmd.io/_uploads/HkXRYqhKxg.png)

>圖 2. 來自模型的樣本視覺化：最右邊一欄顯示與相鄰生成樣本最近的訓練樣本，用來證明模型並沒有單純記憶訓練集。這些樣本是隨機抽取的，而非特意挑選。與多數其他深度生成模型的視覺化不同，這些圖像是真實由模型分布產生的樣本，而不是根據隱藏單元條件平均得到的影像。此外，這些樣本之間互不相關，因為生成過程不依賴於 Markov chain 的混合。( a ). MNIST( b ). TFD( c ). CIFAR-10（全連接模型）( d ). CIFAR-10（卷積式判別器與「反卷積」生成器）

![螢幕擷取畫面 2025-08-27 224712](https://hackmd.io/_uploads/HkVp9cntxx.png)

>圖3. 由完整模型的 $z$ 空間座標進行線性插值所獲得的數字影像：在潛在變數 $z$ 的空間中，選取兩個點進行線性插值。接著將插值點送入生成器 $G(z)$，得到的數字圖像會連續變化，從一個數字平滑過渡到另一個數字。

無需馬可夫鏈採樣，生成過程快速且樣本獨立。可透過在 $z$ 空間插值，生成平滑過渡的樣本。證明 GAN 學到「連續的生成分布」，而不是記下樣本。

####  > 定量結果（Parzen 視窗 log-likelihood）

![螢幕擷取畫面 2025-08-27 223456](https://hackmd.io/_uploads/B131_92Ygg.png)

>圖4. 基於 Parzen window 的對數似然估計:在 MNIST 上報告的數值為測試集樣本的平均對數似然，並且計算了跨樣本的平均標準誤差。在 TFD 上，標準誤差是依據資料集的不同折數（folds）計算的，每個折數的 σ 參數都透過驗證集進行交叉驗證，並在每個折數上計算平均對數似然。對於 MNIST，我們比較的是實值版本（real-valued）資料集，而不是二值化版本。

* MNIST：225 ± 2（優於 DBN、Stacked CAE、Deep GSN 等比較模型）
* TFD：2057 ± 26（與最佳模型接近）

####  > 生成樣本品質

* MNIST 與 TFD 的樣本具高真實感，且非簡單記憶訓練資料。
* CIFAR-10 的全連接與卷積版本均能生成有結構的影像。

## 5. 結論

本研究證明了對抗生成的可行性，並在多個資料集上獲得有競爭力的結果。

####  > 優點

* 不需馬可夫鏈，僅用反向傳播即可訓練。
* 不需顯式機率分佈或推論過程，模型設計彈性高。
* 可生成高解析度且清晰的樣本。

####  > 缺點

* 無法直接計算 $p_g(x)$（生成分佈機率密度）。
* 訓練時需維持生成器與鑑別器的平衡，避免模式崩塌（mode collapse）。

####  > 未來方向

* 條件式 GAN（Conditional GAN）。
* 半監督學習應用。
* 改進生成器與鑑別器協調的訓練方法。
* 加速收斂與改進隨機取樣策略。


