題:
在實踐中計算Kullback-Leibler散度?
smwikipedia
2014-05-16 07:04:48 UTC
view on stackexchange narkive permalink

我正在使用KL散度來度量2 $ pmf $ $ P $和$ Q $之間的差異。

$$ D_ {KL}(P || Q)= \ sum_ {i = 1} ^ N \ ln \ left(\ frac {P_i} {Q_i} \ right)P_i $$$$ =-\ sum P(X_i)ln \ left(Q(X_i)\ right)+ \ sum P( X_i)ln \ left(P(X_i)\ right)$$

如果$$ P(X_i)= 0 $$則我們可以輕鬆地計算出$$ P(X_i)ln \ left(Q (X_i)\ right)= 0 $$ $$ P(X_i)ln \ left(P(X_i)\ right)= 0 $$

但是如果$$ P(X_i)\ ne0 $$和$$ Q(X_i)= 0 $$如何計算$$ P(X_i)ln \ left(Q(X_i)\ right)$$

為了節省其他所有人的時間,您可能想要將$ P(X_i)!= 0 $更改為$ P(X_i)\ ne 0 $,並帶有“ \ ne”令牌
此外,您是說所有$ X_i $的$ Q(X_i)= 0 $嗎?在這種情況下,未定義KL散度,因為$ Q $不是概率函數(其總和必須大於1)。
@Matthew謝謝,改正了。我無意中遵循了編碼習慣。
@Matthew $ Q(X_i)= 0 $對於某些$ X_i $,不是全部。我正在考慮一種變通方法,以將$ P $和$ Q $基於*同一組*結果,並為未顯示的結果添加少量*偽計數*,例如0.001。它可以避免零值概率。但是我不確定是否有副作用。
三 答案:
user1417648
2014-05-21 19:36:27 UTC
view on stackexchange narkive permalink

你不能也不能。想像您有一個概率分佈Q的隨機變量。但是您的朋友鮑勃(Bob)認為結果來自概率分佈P。結果。但是,由於他是根據P而不是Q構造編碼的,因此他的代碼將比必要的更長。 KL散度測量代碼將持續多長時間。因為頭部和尾部的可能性均等,所以他都給了他們兩個1位代碼。頭為0,尾為1。如果他的尾巴是尾巴,他可以發送1 1 0 1.現在,如果他的硬幣落在邊緣,他可能就不會告訴你!他發送給您的任何代碼都行不通。此時KL散度破裂。

由於KL散度破裂,您將不得不使用其他度量或其他概率分佈。您應該做什麼實際上取決於您想要什麼。為什麼要比較概率分佈?

您說概率分佈來自自然語言文檔,並且您希望比較類別對。

首先,我建議採用對稱相關性度量。對於此應用程序,聽起來好像A與B相似,而B與A相似。

您是否嘗試過餘弦相似性度量?在NLP中很常見。

如果您想堅持使用KL,您可以做的一件事是從兩個文檔中估計一個概率函數,然後查看有多少個額外的位您平均需要兩個文件。即(P |||(P + Q)/ 2 + Q ||(P + Q)/ 2)/ 2

很好的解釋,但有點令人困惑:您描述第一段的方式不是KL(Q || P)嗎?
使用混合分佈來獲得支持的結合併充當調解人的想法是我20年來一直很想念\ o /
concipiotech
2014-05-16 08:13:29 UTC
view on stackexchange narkive permalink

在實踐中,我也遇到了這個問題。在這種情況下,我發現用0代替很小的數字會引起問題。根據您使用的值,您將在KL值中引入“偏差”。如果您將KL值用於假設檢驗或其他涉及閾值的用途,那麼這個較小的值可能會使您的結果有偏差。我發現解決此問題的最有效方法是僅考慮在一致的假設空間X_i上計算KL,其中P和Q都不為零。本質上,這將KL的域限制為同時定義了兩者的域,並且使您在使用KL進行假設檢驗時不會遇到麻煩。

謝謝。這是一個有趣的建議。基本上,它也試圖將P和Q基於相同的結果集。我會嘗試的。
如果我在P和Q都不為零的數據子集上計算KL,是否需要對那個子集的P和Q重新進行歸一化?還是只使用原始概率值?我想我應該。否則,P和Q仍不在同一基礎上。
我只是嘗試了您的建議。 P分佈超過1萬個結果,Q分佈超過1萬個結果。但是P和Q只有3K的共同點。如果我僅使用常見的3K結果來估計P和Q之間的差異,我認為這是不合理的。因為我們忽略了很多事情。順便說一句,這種方法的結果與我添加一個小數(或偽計數)所得到的結果完全不同。
添加一些背景信息,我正在從事NLP實驗。我有幾個類別的文檔,我想告訴您每對類別彼此之間的接近程度。
Daniel Mahler
2014-05-22 10:16:19 UTC
view on stackexchange narkive permalink

具有概率分佈,其中對於任何$ i $,$ Q_i = 0 $意味著您確定不會發生$ Q_i $。因此,如果曾經觀察到$ Q_i $,它將表示無限的驚喜/信息,這就是Shannon信息所代表的意思。如果將分佈$ Q $用作分佈$ P $的近似值,則KL撤離代表每個觀察值的額外驚喜(即信息丟失)量。如果近似值預測現實中具有確定概率的事件的概率為0,那麼您將在一定百分比的時間內經歷無限的驚喜,因此平均而言,這是無限的驚喜。

解決方案是永遠不允許0或1個概率的估計分佈。通常,這可以通過某種形式的平滑來實現,例如Good-Turing平滑,Dirichlet平滑或Laplace平滑。



該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...