第二部:《深度學習》43/100 損失函數與訓練技巧 🎯 抓住平衡,避免模式崩潰!

更新 發佈閱讀 8 分鐘

AI時代系列(2) 機器學習三部曲: 🔹 第二部:《深度學習 —— 神經網路的革命》

43/100 第五週:📌 生成對抗網路 GAN

43.損失函數與訓練技巧 🎯 抓住平衡,避免模式崩潰!

______________________________________

🎯 單元導讀:

GAN(生成對抗網路)的成功訓練極度仰賴「損失函數設計」與「穩定訓練技巧」。

如果兩個對手失衡,就可能導致整個訓練過程崩潰,無法產出有意義的結果。

本單元將說明 GAN 的基本損失函數、常見問題(如模式崩潰),以及業界常用的訓練穩定化技巧。

________________________________________

🔢 一、GAN 的基本損失函數(Minimax Loss)

GAN 透過「極小極大博弈」進行訓練:

在生成對抗網路(GAN)中,生成器與判別器透過極小極大的對抗訓練機制彼此博弈:生成器試圖產生以假亂真的資料以欺騙判別器,而判別器則致力於識破生成器產出的假資料。這場對抗以基本的 Minimax 損失函數為核心,公式中一部分鼓勵判別器正確辨識真實資料,另一部分則懲罰其誤判生成資料。訓練過程中,兩者輪流優化,最終理想狀態是判別器無法區分真假資料(輸出接近 0.5)。雖然這種原始結構概念清晰,但實務上可能導致訓練不穩定,因此後續如 WGAN、LSGAN 等改良版本被提出以提升訓練效率與穩定性。

________________________________________

🧮 二、實務中的兩種替代寫法

由於原始 GAN 的 Minimax Loss 在訓練早期容易出現梯度消失或收斂不穩定的問題,研究者提出了兩種常見且實用的替代損失設計:

1️⃣ 非飽和損失(Non-saturating Loss)

🎯 目的:避免生成器在初期訓練時獲得過小的梯度,讓學習更穩定。

🔧 改法:

原始生成器目標: max(G) log D(G(z))

改寫為非飽和版本(通常效果更好):min(G) - log D(G(z))

原始生成器的目標是讓生成的資料被判別器判為真,但在訓練初期容易遇到梯度消失,導致生成器學不動。為了解決這個問題,改採非飽和損失的設計,重新調整訓練目標,使即使在判別器很強的情況下,生成器仍能獲得有效的學習訊號,提升整體訓練穩定性與生成效果。

📌 說明:這種寫法鼓勵生成器直接最大化判別器對假圖的「真實信心」,實作時更容易優化,不容易出現梯度過小的情況。

2️⃣ 最小平方損失(Least Squares GAN,LSGAN)

🎯 目的:減少生成圖與真實圖在判別器輸出空間的距離,使生成圖更逼真。

🔧 損失設計:

判別器損失:1/2(D(x)−1) ^2 + 1/2( D(G(z))) ^2

生成器損失:1/2( D(G(z)) -1) ^2

這組損失函數來自 Least Squares GAN(LSGAN),以平方誤差取代原始 GAN 的交叉熵,讓訓練更穩定。判別器的目標是讓真實資料的輸出接近 1、假資料的輸出接近 0;而生成器則希望讓假資料的輸出也接近 1,以騙過判別器。透過這種方式,避免了梯度消失問題,提升了生成品質與訓練效果。

📌 說明:LSGAN 不再用 log 機率,而是讓判別器輸出靠近 1(真)或 0(假),用最小平方差來衡量真假區分,訓練過程更穩定,生成結果品質也常較平滑自然。

________________________________________

⚠️ 三、訓練常見問題與對應技巧

📉 問題一:模式崩潰(Mode Collapse)

現象:

生成器只學會產出一小部分固定模式(如一直生出同一張臉),失去多樣性。

解法:

增加模型多樣性監控

使用 Mini-batch Discrimination:判別器學會識別樣本間差異

使用 Unrolled GAN 或 WGAN

________________________________________

📈 問題二:訓練不穩定、震盪

現象:

生成器與判別器互相壓制,訓練過程震盪或收斂困難。

解法:

使用 Gradient Penalty 或 Spectral Normalization

調整 學習率(lr):D 通常學習率可略高於 G

使用 Label Smoothing:將真實標籤設為 0.9 而非 1,增加彈性

________________________________________

問題三:梯度消失問題(Vanishing Gradient Problem)

現象:

生成器梯度幾乎為 0,無法更新。

解法:

• 調整訓練頻率(如 G:D = 1:5)

 讓判別器不要訓練得太快,避免壓制生成器,平衡兩者的學習進度。

 例如:判別器訓練 5 次後,生成器才訓練 1 次。

• 使用 Wasserstein GAN(WGAN)

 將原本的交叉熵損失改為 Wasserstein 距離(又稱 Earth Mover 距離),提供穩定且連續的梯度,即使生成器性能很差時也能學習。

 此外,WGAN 引入「權重裁剪」或「gradient penalty」以確保 Lipschitz 條件成立,有助於解決梯度消失與模式崩壞問題。

不再使用 Sigmoid,讓判別器輸出為實數,有助於穩定學習。

________________________________________

📋 四、訓練技巧總整理表

技巧名稱 用途說明

非飽和損失 解決梯度消失問題

Label Smoothing 緩解過擬合、提升泛化力

Gradient Penalty 強化平滑性與穩定性,防止梯度爆炸

Wasserstein 距離 改善收斂品質與樣本多樣性

Spectral Normalization 協助收斂,改善訓練不穩

________________________________________

🔚 五、小結與啟示

GAN 的訓練是一場「精準控制與策略博弈」的過程。

損失函數的選擇與訓練穩定化技巧,決定模型是否能有效學習。

學會抓住平衡點,是讓 GAN 跨入真實世界應用的關鍵。

________________________________________

💬 問題討論:

1. 你認為「判別器強」比較好,還是「生成器強」比較好?為什麼?

 🔁 答案:兩者需平衡。

 判別器太強 → 生成器學不到

 生成器太強 → 判別器無效

 📌 勢均力敵才能推動彼此成長。

2. 在面對模式崩潰時,你會採用哪種策略優先處理?

 ✅ 優先策略:使用 WGAN 或 Minibatch Discrimination

 WGAN 提供穩定梯度

 Minibatch Discrimination 增加樣本多樣性

3. 如果你要設計一個訓練穩定又快速的 GAN,你會怎麼組合以上技巧?

 📦 推薦組合:

 • WGAN-GP 架構

 • 非飽和損失

 • 訓練比例 G:D = 1:5

 • Adam 優化器(β₁ = 0.5)

 • 加入 BatchNorm、Dropout 穩定學習


留言
avatar-img
留言分享你的想法!
avatar-img
Hansen W的沙龍
8會員
248內容數
AIHANS沙龍是一個結合AI技術實戰、產業策略與自我成長的知識平台,主題涵蓋機器學習、生成式AI、創業經驗、財務規劃及哲學思辨。這裡不只提供系統化學習資源與實作案例,更強調理性思維與行動力的結合。無論你是AI初學者、創業者,還是追求人生升維的行者,都能在這裡找到前進的方向與志同道合的夥伴。
Hansen W的沙龍的其他內容
2025/09/09
GAN 由生成器與判別器組成,形成對抗式訓練。生成器學習產生以假亂真的數據,判別器則判斷輸入真假,雙方不斷博弈提升能力。最終生成器能產出極具真實感的影像或資料,廣泛應用於影像生成、風格轉換與資料增強。
2025/09/09
GAN 由生成器與判別器組成,形成對抗式訓練。生成器學習產生以假亂真的數據,判別器則判斷輸入真假,雙方不斷博弈提升能力。最終生成器能產出極具真實感的影像或資料,廣泛應用於影像生成、風格轉換與資料增強。
2025/09/09
生成對抗網路(GAN)由生成器與判別器組成,如同騙子與警察的對抗遊戲。生成器負責產生逼真數據,判別器則學習分辨真假,雙方在競爭中不斷提升,最終能生成極具真實感的影像或資料,展現強大生成能力。
2025/09/09
生成對抗網路(GAN)由生成器與判別器組成,如同騙子與警察的對抗遊戲。生成器負責產生逼真數據,判別器則學習分辨真假,雙方在競爭中不斷提升,最終能生成極具真實感的影像或資料,展現強大生成能力。
2025/09/09
透過 LSTM 的長短期記憶特性,模型能延續上下文脈絡,逐步生成合理的故事片段。此應用展示了 RNN 在自然語言生成中的潛力,能創造具連貫性與想像力的文字內容,適合用於創意寫作、對話系統與教育練習,並以測驗形式加深學習理解。
2025/09/09
透過 LSTM 的長短期記憶特性,模型能延續上下文脈絡,逐步生成合理的故事片段。此應用展示了 RNN 在自然語言生成中的潛力,能創造具連貫性與想像力的文字內容,適合用於創意寫作、對話系統與教育練習,並以測驗形式加深學習理解。
看更多
你可能也想看
Thumbnail
蝦皮分潤計畫讓我在分享旅遊文章時,也能透過推薦好物累積被動收入,貼補旅行基金。這篇文章,除了介紹計畫的操作亮點與心得,也分享我最常應用的案例:「旅行必備小物 TOP5」,包含行李鎖、免洗內衣褲、分裝瓶、折疊衣架與真空壓縮袋,幫助出國打包更輕鬆。想同時記錄旅行、分享好物又創造額外收入的你,千萬別錯過!
Thumbnail
蝦皮分潤計畫讓我在分享旅遊文章時,也能透過推薦好物累積被動收入,貼補旅行基金。這篇文章,除了介紹計畫的操作亮點與心得,也分享我最常應用的案例:「旅行必備小物 TOP5」,包含行李鎖、免洗內衣褲、分裝瓶、折疊衣架與真空壓縮袋,幫助出國打包更輕鬆。想同時記錄旅行、分享好物又創造額外收入的你,千萬別錯過!
Thumbnail
想增加被動收入?加入蝦皮分潤計畫是輕鬆上手的好方法!本文提供完整教學,包含申請流程、賺取分潤技巧,以及實際使用心得分享,助你輕鬆獲得額外收入。
Thumbnail
想增加被動收入?加入蝦皮分潤計畫是輕鬆上手的好方法!本文提供完整教學,包含申請流程、賺取分潤技巧,以及實際使用心得分享,助你輕鬆獲得額外收入。
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 129 中說,Bidirectional Encoder Representations from Transformers (BER
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 129 中說,Bidirectional Encoder Representations from Transformers (BER
Thumbnail
前言 讀了許多理論,是時候實際動手做做看了,以下是我的模型訓練初體驗,有點糟就是了XD。 正文 def conv(filters, kernel_size, strides=1): return Conv2D(filters, kernel_size,
Thumbnail
前言 讀了許多理論,是時候實際動手做做看了,以下是我的模型訓練初體驗,有點糟就是了XD。 正文 def conv(filters, kernel_size, strides=1): return Conv2D(filters, kernel_size,
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 繼 AI說書 - 從0開始 - 82 與 xxx ,我們談論了衡量 AI 模型的方式,那當你訓練的模型比 State-of-the-Art 還要好並想要進行宣稱時,需要
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 繼 AI說書 - 從0開始 - 82 與 xxx ,我們談論了衡量 AI 模型的方式,那當你訓練的模型比 State-of-the-Art 還要好並想要進行宣稱時,需要
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 延續 xxx 提到,既然提到訓練,就表示要有一套衡量基準供大家遵守,有鑑於此,以下繼續介紹幾類衡量方式: MCC: 首先介紹 True (T) Positive (
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 延續 xxx 提到,既然提到訓練,就表示要有一套衡量基準供大家遵守,有鑑於此,以下繼續介紹幾類衡量方式: MCC: 首先介紹 True (T) Positive (
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Transformer 可以透過繼承預訓練模型 (Pretrained Model) 來微調 (Fine-Tune) 以執行下游任務。 Pretrained Mo
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Transformer 可以透過繼承預訓練模型 (Pretrained Model) 來微調 (Fine-Tune) 以執行下游任務。 Pretrained Mo
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Transformers for Natural Language Processing and Computer Vision, 2024 這本書中講 Trainin
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Transformers for Natural Language Processing and Computer Vision, 2024 這本書中講 Trainin
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 再度回到 Transformer 架構中的 Encoder 部分,如下圖所示: 我現在手上有的素材如下: Embedding 訓練方式:AI說書 - 從0開始
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 再度回到 Transformer 架構中的 Encoder 部分,如下圖所示: 我現在手上有的素材如下: Embedding 訓練方式:AI說書 - 從0開始
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 在AI說書 - 從0開始 - 41中,我們提及 Transformer 的 Encoder 架構如下圖所示,同時我們羅列幾個要點於圖示右邊: 原始 Transform
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 在AI說書 - 從0開始 - 41中,我們提及 Transformer 的 Encoder 架構如下圖所示,同時我們羅列幾個要點於圖示右邊: 原始 Transform
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 首先先展示 Transformer 的架構圖: 可以看到架構中不再出現 RNN 、 LSTM 、 CNN 等物件,因為 Recurrence 已被摒棄。
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 首先先展示 Transformer 的架構圖: 可以看到架構中不再出現 RNN 、 LSTM 、 CNN 等物件,因為 Recurrence 已被摒棄。
Thumbnail
這篇文章探討了生成式對抗網路中機率分佈的使用與相關的訓練方式,包括Generator不同的點、Distriminator的訓練過程、生成圖片的條件設定等。此外,也提到了GAN訓練的困難與解決方式以及不同的learning方式。文章內容豐富且詳細,涵蓋了GAN的各個相關面向。
Thumbnail
這篇文章探討了生成式對抗網路中機率分佈的使用與相關的訓練方式,包括Generator不同的點、Distriminator的訓練過程、生成圖片的條件設定等。此外,也提到了GAN訓練的困難與解決方式以及不同的learning方式。文章內容豐富且詳細,涵蓋了GAN的各個相關面向。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News