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 散度是不對稱版本,方向一換數字就可能不同。