---
title: "KL 散度（Kullback-Leibler Divergence）"
slug: kullback-leibler-divergence
language: zh-TW
source: https://aiterms.tw/terms/kullback-leibler-divergence
updated_at: 2026-06-22
tags: [資訊理論, 機率分佈, VAE, 生成模型, iPAS]
ipas_term: false
---

# KL 散度（Kullback-Leibler Divergence）

衡量兩個機率分佈之間差異程度的指標，常用於資訊理論、生成模型訓練與分佈比較。

## 完整說明

KL 散度（Kullback-Leibler Divergence，又稱相對熵）是衡量一個機率分佈相對於另一個參考分佈的差異量。值為 0 表示兩分佈完全相同，值越大差異越大。在深度學習中廣泛用於 VAE、強化學習與知識蒸餾等任務。

## 常見問題

### KL 散度和 JS 散度有什麼差別？應該用哪一個？

KL 散度不對稱（DKL(P||Q) ≠ DKL(Q||P)），且當 Q(x)=0 而 P(x)>0 時值為無限大，這在實際計算中可能造成數值不穩定。JS 散度（Jensen-Shannon Divergence）透過引入中間分佈 M=(P+Q)/2 解決了這兩個問題：它是對稱的，值域有界在 [0, log(2)] 之間，計算更穩定。選擇哪個取決於應用場景：VAE 訓練中通常用反向 KL 散度因為有良好的數學性質；GAN 的理論分析常用 JS 散度；而需要方向性資訊（知道哪個分佈是「真實」的）時，KL 散度更能反映這種不對等關係。

### KL 散度在 VAE（變分自動編碼器）中的作用是什麼？

在 VAE 中，KL 散度作為損失函數的正規化項，衡量編碼器學到的隱空間分佈（通常是條件常態分佈）與標準常態分佈之間的差距。這個 KL 項有兩個重要作用：第一，它迫使隱空間分佈盡量靠近標準常態分佈，使得整個隱空間中沒有「空洞」，可以從任意位置取樣生成合理圖片；第二，它讓不同輸入的隱空間表示彼此不過分分散，讓相似的輸入有相近的隱空間表示。當 KL 散度項的權重（beta）調整時，可以在重建品質與隱空間結構之間進行平衡。

### KL 散度的值大到什麼程度才算「兩分佈差異顯著」？

KL 散度沒有固定的「顯著差異」閾值，需要根據具體應用場景判斷。KL 散度為 0 代表兩分佈完全相同，但它沒有上限（可以趨近於無限大）。在模型監控中，通常做法是建立基準線：以訓練集與驗證集之間的 KL 散度作為正常基準，若生產資料的 KL 散度超過基準的數倍（例如 2 倍或設定閾值如 0.1），則觸發警報。在 VAE 訓練中，KL 散度損失項在訓練穩定後通常在個位數範圍內。最重要的是根據業務影響設定合理閾值，而非使用通用標準。

---

來源：https://aiterms.tw/terms/kullback-leibler-divergence
快查頁：https://aiterms.tw/terms/kullback-leibler-divergence
最後更新：2026/06/22
深度解說：https://aiterms.tw/learning/what-is-kullback-leibler-divergence