KL散度不對稱。如果分布P和Q,KL(P||Q)很大而KL(Q||P)很小表示什麼現象?

大家都知道KL散度不對稱。如果分布有兩個模型相比較分別得到的概率分布P和Q的相似性,想讓P和Q盡量接近。但是發現KL(P||Q)值很大,而KL(Q||P)值很小。這說明什麼現象?


還是看定義吧。

KL(P||Q) = sum_i P(i) log left(P(i) over Q(i)
ight)

直觀來說,這是對隨機變數的每個取值上,log(P(i)/Q(i))這個值的加權平均。這裡加權的權值是P(i) (其實就是算了個期望)。

P(i)
大的地方,想讓KL散度小,我們需要讓Q(i)
的值盡量也大;而當P(i)
本身小的時候,Q(i)對整個KL的影響卻沒有那麼大(因為log項本身因為分子就很小,再加上乘以了很小的P(i)
)。直觀來說就是,在P的概率密度大的地方,它應該盡量和Q概率密度大的區域保持一致以保證KL散度小,而在P概率密度很小的地方,P和Q的差別對KL的影響很小。

畫圖來說(懶得畫了),就是P高的地方應該和Q的形狀盡量一致,但P低的地方就無所謂了。 @Earthson Lu 的解釋可能更接近資訊理論受眾的理解,我這裡試著給一個概率的理解:

* KL(P||Q) 很大,意味著在P事件大概率時,Q事件不一定有大概率;

* KL(Q||P) 很小,意味著當Q事件有大概率時,P事件同樣有大概率。

造成這種現象的一種可能的成因是:Q是造成P的多種原因之一,所以當Q發生時(高概率),P也發生(高概率);而P還有其他的成因,所以當P發生時,Q不一定會發生。當然理解成從屬/包含關係也是另一種可行的思路:Q是P的子集,所以Q發生時P一定發生,而P發生時,有可能是PQ中的某些事件發生了,所以Q不一定發生。


這種有向性包含了一些類別的蘊含關係信息。

拿描述音樂的文本來說吧。我們分別按照類別「音樂」(P)和類別「古典音樂」(Q)統計兩類文本中的詞分布。

  • KL(Q||P)。我們用音樂這個類別的編碼來編碼古典音樂,因為音樂包含了古典音樂,所以我們可以期望得到不是那麼大的額外代價(也就是KL散度)
  • KL(P||Q)。我們用古典音樂類別的編碼來編碼音樂,因為這個類別沒有包含其它類型的音樂信息,所以我們會得到一個相對來說比較大的額外代價。

我們可以從這種不對稱的差異中獲得一些父子類的信息。

- - -

KL散度,也就是相對熵。如果我們把熵看成是編碼的期望代價的話(近似於最優符號碼的期望表示長度),相對熵就是如果我用一個分布來近似另一個分布,那麼額外會產生的期望代價。它是不對稱的,上面的例子說明了一個比較有意思的現象,這種不對稱往往表示了一些蘊含的關係(如果兩個值都足夠小,而某一個更甚)


根據定義:

	ext{KL}(P||Q) = sum_i P(i) logfrac{P(i)}{Q(i)}

如果	ext{KL}(P||Q)很大而	ext{KL}(Q||P)很小,那就說明:

1) 在模型P下概率比較大的事件中,有一些在模型Q下概率很小;

2) 在模型Q下概率比較大的事件,在模型P下的概率也都比較大。

如果題主認為這種現象不應該發生,那麼下一步就應該去找出是哪些事件在模型P下的概率大而在模型Q下的概率小,並想辦法讓它們在兩個模型下的概率盡量一致。


這個問題和KL Divergence的性質有關。

不妨考慮極端情況。現在有兩個十分接近的分布P,Q。比如取值範圍都是1~100,P分布是P(X=i)=1/100,Q分布是Q(X=1)=2/100,Q(X=2~99)=1/100,Q(X=100)=0。

這種情況下,由於Q分布把P分布里可能存在的事件的概率取為0了,所以KL(P||Q)是無限大。但是計算KL(Q||P)的時候,這一項被忽略了,所以KL(Q||P)就非常小。

這也是為何有兩大類Variational Inference方法的原因。對於一個比較複雜的分布P,我們打算用一個指數族的分布Q逼近它。那我們可以求解min KL(Q||P)也可以求解min KL(P||Q)。對於前者而言,要使得優化目標盡量小,P(X)為0時必須令Q(X)也為0,這種情況叫zero forcing;類似的,對於後者而言,對所有P(X)非零的事件,Q(X)也必須非零,這種情形叫做zero avoiding。可以通過估計需要達成的效果來選取恰當的優化目標,使用min KL(Q||P)估計時Q分布更加specific,而用min KL(P||Q)估計時,Q分布會更為general


寫過一篇關於 KL 散度的理論+運用的文章:KL 散度(從動力系統到推薦系統)

在資訊理論和動力系統裡面,Kullback-Leibler 散度(簡稱 KL 散度,KL divergence)是兩個概率分布 P 和 Q 的一個非對稱的度量公式。這個概念是由 Solomon Kullback 和 Richard Leibler 在 1951 年引入的。從概率分布 Q 到概率分布 P 的 KL 散度用 D_{KL}(P||Q) 來表示。儘管從直覺上看 KL 散度是一個度量或者是一個距離,但是它卻不滿足度量或者距離的定義。例如,從 Q 到 P 的 KL 散度就不一定等於從 P 到 Q 的 KL 散度。本文即將介紹如何將動力系統的概念運用到實際推薦系統的工作中,從而達到更佳的推薦效果。

詳細請見:KL 散度(從動力系統到推薦系統)


推薦閱讀:

刷頁還是刷專題:ACM競賽做題之道
CVAE-GAN論文翻譯(摘要與介紹)
機器學習實戰 | 數據探索(缺失值處理)

TAG:機器學習 | 自然語言處理 | 深度學習DeepLearning |