什麼是 KL散度(KL Divergence)?
KL散度(Kullback-Leibler Divergence)衡量兩個機率分佈的差異,數值越大代表分佈差異越大,常用於評估模型預測分佈與真實分佈的接近程度。
核心概念
KL散度(Kullback-Leibler Divergence),或稱相對熵(Relative Entropy),是資訊理論中的一個重要概念,用於衡量兩個機率分佈之間的差異。更精確地說,KL散度衡量的是當我們使用一個近似的分佈Q來代替真實分佈P時,所損失的信息量。KL散度並非一個真正的距離度量,因為它不滿足對稱性,即D_KL(P||Q) ≠ D_KL(Q||P)。
KL散度的數學定義如下:
對於離散分佈:
D_KL(P||Q) = Σ P(x) * log(P(x) / Q(x))
對於連續分佈:
D_KL(P||Q) = ∫ P(x) * log(P(x) / Q(x)) dx
其中,P(x) 是真實分佈,Q(x) 是近似分佈。log 通常以 2 為底,此時 KL 散度的單位是 bits;如果以 e 為底,則單位是 nats。
KL散度的值越大,表示兩個分佈之間的差異越大;KL散度的值越小,表示兩個分佈之間的差異越小。當 P(x) = Q(x) 對於所有 x 成立時,KL散度為 0。
重要性質
- 非負性: KL散度永遠是非負的,即 D_KL(P||Q) >= 0。
- 非對稱性: KL散度不滿足對稱性,即 D_KL(P||Q) ≠ D_KL(Q||P)。這意味著用 P 來近似 Q 和用 Q 來近似 P 所損失的信息量通常是不同的。
- 無界性: KL散度沒有上界,可以趨向於無窮大。當 Q(x) = 0 但 P(x) > 0 時,log(P(x) / Q(x)) 會趨向於無窮大。
運作原理
KL散度的運作原理基於資訊理論中的熵的概念。熵衡量的是一個隨機變數的不確定性。KL散度可以被理解為從分佈 Q 的角度來看,分佈 P 的額外不確定性。換句話說,如果我們使用分佈 Q 來編碼來自 P 的樣本,KL散度衡量的是我們需要額外多少 bits 才能正確編碼這些樣本。
KL散度的計算涉及對數函數,這使得它對分佈之間的微小差異非常敏感。當 P(x) 和 Q(x) 非常接近時,log(P(x) / Q(x)) 的值接近於 0。但是,當 P(x) 和 Q(x) 差異很大時,log(P(x) / Q(x)) 的值會迅速增大。
在實際應用中,我們通常需要估計 KL散度,因為我們可能無法直接訪問真實分佈 P。這可以通過從 P 中採樣,然後使用這些樣本來估計 KL散度來完成。常用的估計方法包括蒙特卡羅方法和變分推斷。
實際應用
KL散度在機器學習和深度學習中有廣泛的應用,包括:
- 變分推斷: 在變分推斷中,我們使用一個簡單的分佈 Q 來近似一個複雜的後驗分佈 P(z|x)。我們的目標是最小化 D_KL(Q(z)||P(z|x)),從而找到一個最接近真實後驗分佈的近似分佈。
- 生成模型: 在生成對抗網路(GANs)中,生成器試圖生成與真實數據分佈相似的數據。判別器試圖區分生成器生成的數據和真實數據。KL散度可以用於衡量生成器生成的分佈與真實數據分佈之間的差異。
- 模型壓縮: KL散度可以用於知識蒸餾,其中一個大型的預訓練模型(教師模型)用於指導一個較小的模型(學生模型)的訓練。學生模型試圖模仿教師模型的輸出分佈,從而學習到教師模型的知識。
- 自然語言處理: 在自然語言處理中,KL散度可以用於衡量兩個文本分佈之間的差異。例如,可以用於評估機器翻譯的質量,或者用於比較不同主題的文本。
- 推薦系統: 在推薦系統中,KL散度可以用於衡量用戶的偏好分佈與推薦物品的分佈之間的差異。目標是推薦那些與用戶偏好分佈最接近的物品。
- 異常偵測: KL散度可以用於衡量一個數據點與正常數據分佈之間的差異。如果一個數據點的 KL散度遠大於其他數據點,則可以認為它是一個異常點。
常見誤區
- KL散度是距離度量: 這是最常見的誤區。KL散度不滿足對稱性,因此不是一個真正的距離度量。在選擇距離度量時,需要根據具體應用選擇合適的度量。
- KL散度越小越好: 雖然在許多應用中,我們試圖最小化 KL散度,但並非總是如此。在某些情況下,我們可能更關心其他指標,例如準確性或召回率。此外,最小化 KL散度可能會導致過擬合。
- KL散度可以處理所有分佈: KL散度對於某些分佈可能沒有定義。例如,如果 Q(x) = 0 但 P(x) > 0,則 KL散度會趨向於無窮大。在這種情況下,需要使用其他方法來衡量分佈之間的差異。
- KL散度對所有差異都敏感: KL散度對分佈之間的微小差異非常敏感,但可能對某些類型的差異不敏感。例如,如果兩個分佈具有相同的均值和方差,但形狀不同,則 KL散度可能很小。因此,在使用 KL散度時,需要仔細考慮其局限性。
相關術語
常見問題
延伸學習
想看 KL散度 的完整影片教學?前往 美第奇 AI 學院