生成式 AI · 生成模型

變分自編碼器 VAE

不只是壓縮,而是把資料學成一片「平滑的機率地圖」——之後在地圖上任選一點,就能解碼出一張全新、卻很真實的圖。

編碼成分布潛在空間重參數化重建 + KL可取樣生成

💡一句話定義

VAE(變分自編碼器)是一種生成模型:編碼器把輸入壓成一個機率分布(潛在空間),解碼器再從中取樣重建;訓練後就能從潛在空間隨機取樣,生成訓練集裡沒有但看起來很真實的新資料。

🎮互動:拖動 μ,看臉即時生成

中間是潛在空間 $z$:拖動紫色點 μ(或點一下)移動位置——X 軸控制嘴型(哭↔笑)、Y 軸控制眼睛與眉毛。紅色小點是實際取樣值 $z=\mu+\sigma\varepsilon$,會在 μ 附近抖動;拉大 σ 抖得更遠、生成更多變化。

🧬 變分自編碼器 (VAE) 互動演示
Encoder (編碼器)
🖼️ Input Data (X)
Latent Space (潛在空間 $z$)
拖動紫色圓點 ($\mu$) 或點擊區域
Decoder (解碼器) -> Output
0.5
* X軸控制嘴型 (Sad ↔ Happy),Y軸控制眼睛開合/眉毛。
* 紅點是實際採樣給 Decoder 的值 ($z = \mu + \sigma \cdot \epsilon$)。

⚖️Autoencoder vs VAE

面向一般自編碼器 (AE)變分自編碼器 (VAE)
編碼成一個固定向量(點)一個分布(均值 μ、變異 σ²)
潛在空間可能有空洞、不連續平滑連續(被 KL 規整)
能否生成難,隨機取點常是雜訊能,任取一點都能解出合理結果
目標只求重建重建 + 讓分布規整

🧮損失=重建 + KL(ELBO)

$$ Loss = \underbrace{\| X - \hat{X} \|^2}_{\text{重建誤差}} + \underbrace{KL\big(N(\mu,\sigma^2)\,\|\,N(0,1)\big)}_{\text{KL 散度}} $$ 重建誤差讓輸出像原圖;KL 散度把潛在分布拉近標準常態 N(0,1),讓空間連續、可取樣、可插值。兩者權衡即 ELBO。

KL 太強會「後驗崩潰」(潛在變數被忽略、生成沒變化);太弱則空間不規整、難生成——要平衡。

🎲重參數化技巧

「隨機取樣」不可微分,梯度過不去。VAE 把隨機性搬到一個獨立雜訊 ε 上:

$$ z = \mu + \sigma \cdot \varepsilon, \qquad \varepsilon \sim N(0,1) $$ 這樣梯度能通過 μ 與 σ 反向傳播,模型才訓練得起來。demo 裡紫色大點是 μ、紅色小點就是抖動的 z。

🌫️為什麼 VAE 生成常比較模糊?

VAE 最佳化的是像素層級的重建(常用 MSE)加 KL 約束,傾向產生「平均化」的結果,於是細節偏糊。相較之下,GAN 用對抗目標逼真度更高、細節更銳利——這也是 VAE 與 GAN 最常被拿來對比的差異。

🎯應用場景

① 生成新樣本:潛在空間隨機選點交給 Decoder,生成不在訓練集裡的人臉、角色、分子結構。
② 去噪與修復(Inpainting):學到資料分布,能過濾雜訊、補全缺失部分。
③ 異常偵測:某張圖重建誤差很大 → 不符「正常分布」,可能是瑕疵品或惡意流量。

自我檢測

Q1. VAE 是什麼?
一種生成模型:編碼器把輸入壓成機率分布(潛在空間),解碼器從中取樣重建;訓練後可從潛在空間取樣生成新資料。
Q2. VAE 和一般自編碼器(AE)差在哪?
AE 把輸入壓成固定向量、只求重建;VAE 編成分布(均值與變異)並要求潛在空間平滑連續,因此能生成而非只壓縮。
Q3. 損失函數由哪兩部分組成?
重建誤差(讓輸出接近原輸入)+ KL 散度(讓潛在分布接近標準常態、空間規整可取樣),兩者權衡即 ELBO。
Q4. 什麼是重參數化技巧?
取樣不可微分,改寫成 z = μ + σ·ε(ε 來自標準常態),把隨機性移到 ε,讓梯度能通過 μ 與 σ,模型才能訓練。

🎯重點整理

📝 iPAS 考點提醒

VAE(變分自編碼器)是經典生成模型,iPAS 生成式 AI 考點(中級科目一)。重點:編碼器把輸入壓成潛在分布、解碼器還原,訓練最大化 ELBO(重建項加 KL 散度項),可從先驗取樣生成新資料。易混點:VAE 學分布可平滑取樣,與 GAN(對抗)、Diffusion(去噪)路線不同;KL 太強會後驗崩潰。情境:生成、表示學習、異常偵測。

想練情境題與詳解 → AI 學習與考證地圖

❓ 常見問題

VAE 是什麼?

變分自編碼器,一種生成模型:編碼器把輸入壓成一個機率分布(潛在空間),解碼器再從中取樣重建;訓練後可從潛在空間取樣生成新資料。

VAE 和一般自編碼器(AE)差在哪?

AE 把輸入壓成固定向量、只求重建;VAE 把輸入編成分布(均值與變異)並要求潛在空間平滑連續,因此能生成而非只壓縮。

損失函數由哪兩部分組成?

重建誤差(讓輸出接近原輸入)加上 KL 散度(讓潛在分布接近標準常態、使空間規整可取樣),兩者權衡即 ELBO。

什麼是重參數化技巧?

取樣不可微分、無法反傳;改寫成 z = 均值 + 標準差 × ε(ε 來自標準常態),把隨機性移到 ε,讓梯度能通過均值與變異,模型才能訓練。

VAE 生成為什麼常較模糊?

它最佳化像素層級的重建(常用 MSE)與 KL 約束,傾向產生平均化結果;相較之下 GAN 的對抗目標較能產生銳利細節。

🧭 相關主題

← 返回 AI 學習與考證地圖