KL散度 是什麼?

KL Divergence — KL散度 的完整解釋

KL散度(Kullback-Leibler Divergence)衡量兩個機率分佈的差異,數值越大代表分佈差異越大,常用於評估模型預測分佈與真實分佈的接近程度。

容易混淆

交叉熵 交叉熵常在訓練時直接用,和 KL 散度只差一個與模型無關的常數。

JS 散度 JS 散度是對稱版本,KL 散度是不對稱版本,方向一換數字就可能不同。

記住這句就好

越小越像,但方向不能亂換。

實際案例

語言模型訓練 模型輸出的下一個字分佈越接近真實語料,KL 散度就越低。

變分自編碼器 VAE 會用 KL 把潛在分佈拉回設定的先驗分佈,避免空間太亂。

算法與應用

KL 散度不是距離,因為它不對稱,也不符合三角不等式。實務上,它最常出現在分類損失、分佈對齊、知識蒸餾和變分推斷裡。當某一邊的機率為 0 時,數值可能爆大,這也是為什麼常要做平滑。

情境判斷

Q1(直覺題): 如果你現在遇到一個 語言模型訓練 的場景,這個概念會是第一個想到的工具嗎? → 看情況,但如果任務目標和這個概念的用途一致,就很可能是。核心還是先確認你要解決的是分類、分群、壓縮、檢索,還是最佳化。

Q2(判斷題): 如果你把它和 JS 散度 一起用,結果反而變不穩,通常該怎麼想? → 看情況。先檢查資料分布、特徵定義和模型假設是否相容,很多時候不是概念本身有問題,而是使用條件不對,像距離尺度沒對齊、標註規則不一致,或輸入格式不合。

相關術語

常見問題

KL散度 最容易跟 交叉熵 混淆嗎?

交叉熵常在訓練時直接用,和 KL 散度只差一個與模型無關的常數。

什麼情況會用到 KL散度?

你可以把它想成拿真實分佈當標準,算另一個分佈偏離了多少資訊。 實務上只要你要處理和這個概念相符的任務,就會用到它。

初學者最常錯在哪裡?

JS 散度是對稱版本,KL 散度是不對稱版本,方向一換數字就可能不同。