詹森-夏農散度 是什麼?

Jensen-Shannon Divergence:詹森-夏農散度 的完整解釋

詹森-夏農散度(Jensen-Shannon Divergence, JSD)是一種衡量兩個機率分布相似程度的對稱指標,以 KL 散度為基礎改良,輸出範圍為 [0, 1](使用以 2 為底的對數時),

核心概念

JSD 源自資訊理論,解決了 KL 散度(Kullback-Leibler Divergence)的兩個主要缺陷:非對稱性和無界性。

KL 散度的問題:

  • KL(P‖Q) ≠ KL(Q‖P),導致「P 到 Q 的距離」和「Q 到 P 的距離」不等,不符合直觀上的距離概念
  • 當 Q(x) = 0 但 P(x) > 0 時,KL 散度趨向無窮大,導致數值不穩定

JSD 的解法:

引入中間分布 M(P 和 Q 的算術平均),分別計算 P 和 Q 對 M 的 KL 散度並取平均:

M = (P + Q) / 2
JSD(P‖Q) = (1/2) × KL(P‖M) + (1/2) × KL(Q‖M)

由於 M 在 P 或 Q 為零的位置也不為零(另一個分布不為零時),消除了 KL 散度的無界問題。

運作原理

數學性質

JSD 具備以下關鍵性質:

  1. 對稱性:JSD(P‖Q) = JSD(Q‖P)
  2. 有界性:0 ≤ JSD(P‖Q) ≤ log 2(以 2 為底時上界為 1 bit)
  3. 非負性:JSD ≥ 0,兩分布相同時為 0
  4. 平方根是距離:√JSD(P‖Q) 滿足三角不等式,可作為真正的度量(Metric)

與 KL 散度的關係

當兩個分布完全不重疊(支撐集不相交)時:

  • KL 散度:趨向無窮大(數值爆炸)
  • JSD:達到最大值 1(有界,數值穩定)

這使得 JSD 在比較支撐集差異大的分布時,仍能提供有意義的梯度信號。

離散與連續版本

離散版本(類別分布比較):直接套用上述公式,對每個類別計算 log 比值後求和。

連續版本:將求和替換為積分,實務上常透過採樣或核密度估計(KDE)近似計算。

實際應用

生成對抗網路(GAN)訓練

原始 GAN(Ian Goodfellow, 2014)的訓練目標在最優判別器下等價於最小化生成分布與真實資料分布之間的 JSD。這也解釋了早期 GAN 訓練困難的原因:當生成器和真實資料分布不重疊時,JSD 梯度消失,生成器無法從判別器獲得有效的訓練信號。Wasserstein GAN 正是為解決此問題而改用 Wasserstein 距離。

資料漂移偵測(Label Drift)

生產環境中,可定期計算訓練集特徵分布與線上推論資料分布的 JSD,若超過閾值則觸發模型再訓練警報。JSD 的有界性使得跨不同特徵、不同時期的漂移程度具有可比性。

語言模型評估

比較語言模型生成文字的 token 分布(n-gram 分布)與參考文本的 JSD,可衡量模型輸出的多樣性和覆蓋率,補充 BLEU 等基於精確匹配的指標的不足。

聯邦學習中的客戶端分布分析

聯邦學習場景下,可用 JSD 量化不同客戶端本地資料分布的異質性程度(Non-IID 程度),從而決定聚合策略或個人化聯邦學習方案。

常見誤區

誤區一:JSD 和 KL 散度可以互換使用

KL 散度是非對稱的,表達的是「用分布 Q 去近似 P 所額外需要的資訊量」,具有方向性語意。JSD 是對稱的相似度指標,適合需要中立地比較兩個分布的場景。兩者應根據任務需求選擇,不能任意互換。

誤區二:JSD 值越小代表模型越好

JSD 衡量的是分布相似度,在生成模型評估中,生成分布與真實分布的 JSD 小確實代表更好的分布匹配。但 JSD 不捕捉生成樣本的語意品質、多樣性或新穎性,需搭配其他指標(如 FID、IS、人工評估)綜合判斷。

誤區三:JSD 適用於高維連續分布的直接計算

對高維連續資料(如影像像素分布)直接計算 JSD 在計算上不可行。實務上使用的 FID(Fréchet Inception Distance)等指標是在特徵空間(Inception 網路的中間層特徵)而非像素空間比較分布,因此更具計算可行性和語意相關性。

與相關技術的比較

指標 對稱 值域 分布不重疊 適用場景
KL 散度 [0, ∞) 發散(無窮大) 最大概似估計、變分推論
JSD [0, log 2] 最大有界值 分布比較、GAN 分析、漂移偵測
Wasserstein 距離 [0, ∞) 有意義的有限值 GAN(WGAN)、分布匹配
Total Variation [0, 1] 最大值 1 統計假設檢定
Hellinger 距離 [0, 1] 最大值 1 統計推論、假設檢定

常見問題