AI時代系列(2) 機器學習三部曲: 🔹 第二部:《深度學習 —— 神經網路的革命》
42/100 第五週:📌 生成對抗網路 GAN
42.生成器與判別器架構 🏗 你生成,我辨別,一場博弈!
______________________________________
🎯 單元核心概念:
在 GAN(生成對抗網路)中,兩個最重要的主角就是:
• 生成器(Generator):試圖「以假亂真」地生成資料。
• 判別器(Discriminator):努力「識破偽裝」分辨真假資料。
這兩者的網路架構設計,直接決定了 GAN 的訓練效果與最終成果。本單元將深入探討這兩個模組的具體架構與設計原則。
________________________________________
🧭 一、生成器(Generator)架構設計
🔍 功能目標:
生成器的目標是將隨機雜訊(通常是標準常態分布向量)轉換為逼真的資料樣本(例如圖像)。
🏗 常見架構設計:
生成器通常是一個反卷積(轉置卷積)神經網路,類似影像「逐步放大」的過程。
典型步驟:
1. 輸入:雜訊向量 z(例如 100 維的高斯雜訊)
2. 全連接層:將向量轉換為初始張量
3. 多層轉置卷積(ConvTranspose2D):逐層上採樣
4. 批次正規化(BatchNorm)與 ReLU 激活
5. 輸出層:使用 Tanh 激活輸出影像(值介於 -1 ~ 1)
📘 範例(影像輸出大小 64x64):
z (100維) → FC(4x4x1024) → reshape →
→ ConvT(512) → ConvT(256) → ConvT(128) → ConvT(3) → Output: 64x64 RGB圖像
這種從「隨機向量 → 高維特徵 → 逐層放大」的流程,是典型的 DCGAN(Deep Convolutional GAN)生成器架構。它能夠學習將隨機噪聲轉換為具有真實感的圖像,廣泛應用於圖像生成、臉部合成、藝術風格創作等任務中。
________________________________________
🕵️♂️ 二、判別器(Discriminator)架構設計
🔍 功能目標:
判別器的目標是從輸入的資料中判斷它是真實資料(來自訓練集)還是生成資料(來自生成器)。
🏗 常見架構設計:
判別器是典型的卷積神經網路(CNN),不斷壓縮輸入圖像資訊以進行分類判斷。
典型步驟:
1. 輸入:圖像(例如 64x64x3)
2. 多層卷積(Conv2D):逐層萃取特徵,搭配 LeakyReLU 激活
3. 批次正規化(可選)
4. 最終輸出:一個 sigmoid 值,代表「真」的概率(0~1)
📘 範例:
Input: 64x64x3 → Conv(128) → Conv(256) → Conv(512) → FC(1) → Sigmoid
這是一個典型的 GAN 判別器架構,用於判斷 64×64 彩色影像是真實圖還是由生成器產生的假圖。模型透過三層卷積逐步提取特徵並進行空間降維(Conv128 → Conv256 → Conv512),再將特徵圖攤平成向量輸入全連接層,最終以 sigmoid 輸出一個機率值,表示圖像為真(1)或假(0)的信心程度。這種結構是對抗生成網路中不可或缺的一部分,負責與生成器互相博弈、提升模型生成圖像的真實度。
________________________________________
🔁 三、訓練策略與細節補充
✅ 1. 激活函數使用差異:
· Generator(生成器)
· 隱藏層激活:ReLU 或 LeakyReLU
· 輸出層激活:Tanh
· Discriminator(判別器)
· 隱藏層激活:LeakyReLU
· 輸出層激活:Sigmoid
✅ 2. 初始化技巧:
• 使用 Xavier 或 He 初始化提升穩定性。
• DCGAN 建議所有卷積與反卷積層的初始權重設為 Normal(0, 0.02)。
✅ 3. 正規化技巧:
• BatchNorm 可用於生成器,幫助梯度穩定。
• 判別器的 BatchNorm 可以視情況省略,以防過度規則化。
________________________________________
🧠 肆、小結與學習啟示:
• GAN 就像一場數學與結構設計的博弈遊戲。
• 生成器的任務是「造假」越擬真越好,判別器的任務是「抓假」越精準越好。
• 架構設計必須兼顧深度、輸出解析度、穩定性與效率。
________________________________________
💬 問題思考:
1️⃣ 🧠 如果生成器太強,判別器無法辨別,會發生什麼問題?
🔹 判別器無法分辨真假,損失變得無意義,整體模型可能停止學習,GAN 收斂失敗。
2️⃣ ⚠️ 若判別器太強,生成器無法學習,該如何調整訓練策略?
🔧 可採取以下策略平衡對抗:
減少判別器訓練次數或學習率
使用 label smoothing(標籤平滑)
為判別器輸入添加噪聲
使用 WGAN 或改進型對抗架構提升穩定性
3️⃣ 🌐 在非圖像領域(如語音、文字),生成器與判別器應如何設計?
📢 語音:生成器可用 1D CNN 或 WaveNet 結構,判別器評估時域或頻譜資訊。
✍️ 文字:生成器使用 RNN、LSTM 或 Transformer 生成語句;判別器評估語法、語意連貫性。常結合預訓練語言模型提升效果。










