iT邦幫忙

2025 iThome 鐵人賽

DAY 2
0
生成式 AI

AI創世紀:生成式智慧的無限想像系列 第 2

生成對抗網路(GAN)的運作方式

  • 分享至 

  • xImage
  •  

生成式對抗網路 (GAN) 是一種深度學習架構,由 Ian Goodfellow 在 2014 年提出。它的核心想法是讓兩個神經網路 互相對抗,透過這種「競爭合作」的方式,學會產生幾乎可以以假亂真的資料(例如圖片、聲音或文字)。
—————————————————————————————————————————
GAN 的兩個角色
1. 生成器(Generator, G)
• 就像一個「偽造者」
• 它的目標是 從隨機雜訊中生成逼真的資料,讓人(或電腦)分不出真假。
• 例如:給它一堆亂數,它就能生出一張「看起來像真的人臉」的圖片。
2. 判別器(Discriminator, D)
• 就像一個「檢查員」
• 它的工作是 判斷輸入的資料是真的(來自真實世界)還是假的(生成器產的)。
• 例如:它要分辨「這張人臉是拍攝的照片,還是 G 編出來的」。

G與D 會產生較新的改進版假資料值,直至預測網路無法再區分虛假資料與原始資料。
—————————————————————————————————————————
以下為生成器及判別器的運作原理:

  1. 整體架構

GAN 由兩個神經網路組成:
• 生成器 (Generator, G):將隨機噪聲 z \sim p_z(z) 轉換成類似真實資料的輸出 G(z)。
• 判別器 (Discriminator, D):輸入資料 x,輸出一個機率值 D(x),代表「此資料是真實的」的可能性。

他們的目標是透過 對抗訓練 (Adversarial Training) 達到 minimax 遊戲:
\min_G \max_D V(D, G) = \mathbb{E}{x \sim p{data}(x)} [\log D(x)] + \mathbb{E}_{z \sim p_z(z)} [\log (1 - D(G(z)))]

  1. 運作流程

    1. 輸入噪聲
      生成器接收一個隨機向量 z(例如來自高斯分布或均勻分布),試著生成一筆假資料 G(z)。
    2. 判別器判斷
      判別器同時接收:
      • 真實資料 x \sim p_{data}(x)
      • 生成資料 G(z)
      然後輸出 D(x) 與 D(G(z)),代表「真實」的機率。
    3. 損失函數
      • 判別器希望 最大化:
      L_D = \mathbb{E}{x \sim p{data}(x)} [\log D(x)] + \mathbb{E}{z \sim p_z(z)} [\log (1 - D(G(z)))]
      → 也就是盡量把真實資料分對,把生成資料識破。
      • 生成器希望 最小化:
      L_G = \mathbb{E}
      {z \sim p_z(z)} [\log (1 - D(G(z)))]
      → 讓判別器「分不出來」,逼近真實分布。
      在實務中,常把生成器的目標改成 最大化 \log D(G(z)),以避免梯度消失。
    4. 交替訓練
      • 先固定 G,更新 D,使它更會分辨真假。
      • 再固定 D,更新 G,使它更會騙過 D。
      • 如此反覆,直到達到 Nash Equilibrium(理想狀態是 p_g = p_{data},生成器分布和真實資料分布一致)。
      (Nash Equilibrium 納許均衡是指互相制衡的平衡狀態)
  2. 運作本質

GAN 的核心就是一種 分布匹配:
• 真實資料服從分布 p_{data}(x)。
• 生成器產生的資料服從分布 p_g(x)。
• 對抗訓練的目標是讓 p_g \approx p_{data}。

數學上,可以證明 GAN 等價於 最小化 Jensen–Shannon 散度 (JSD),即:
\min_G \max_D V(D, G) \approx \min_G JS(p_{data} || p_g)


上一篇
生成式 AI 的基本概念與原理
下一篇
Transformer 的核心技術
系列文
AI創世紀:生成式智慧的無限想像3
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言