1. 程式人生 > >KL散度與極大似然

KL散度與極大似然

極大似然估計是一種概率論在統計學中的應用,建立在極大似然原理的基礎上,極大似然原理的直觀解釋是:一個隨機試驗如有若干個可能的結果A、B、C、…,若在一次試驗中,結果A出現,則一般認為試驗條件對A出現有利,也即A出現的概率很大,那麼就取引數估計,使A出現的概率最大。

設隨機變數Y具有概率密度函式,θ是引數向量。當我們得到Y的一組獨立觀測值時,定義θ的似然函式為。極大似然法是採用使L(θ)最大的θ的估計值作為引數值。

為了計算方便,我們通常求使最大的θ的估計值,這與L(θ)最大是等價的,由於,當,幾乎處處有


在觀測樣本已知的情況下,N是定值,那麼,極大似然估計是使最大的θ的估計值。若Y

的真實分佈的密度函式為g(y),我們有


衡量兩個分佈g(·)和f(·|θ)差異性的統計量KL散度(或者相對熵)為:


只有當g(y)等於f(y|θ)時,KL散度才為0,因此,當隨機變數Y給定時,為定值,最大化,就是最小化,即求最近似於g(y)f(y|θ)。這個解釋從資訊理論的角度透徹地說明了極大似然法的本質。

KL-divergence,俗稱KL距離,常用來衡量兩個概率分佈的距離。

根據shannon的資訊理論,給定一個字符集的概率分佈,我們可以設計一種編碼,使得表示該字符集組成的字串平均需要的位元數最少。假設這個字符集是X,對x∈X,其出現概率為P(x),那麼其最優編碼平均需要的位元數等於這個字符集的熵:

H(X)=∑x∈XP(x)log[1/P(x)]=-x∈XP(x)log(p(x))

在同樣的字符集上,假設存在另一個概率分佈Q(X)。如果用概率分佈P(X)的最優編碼(即字元x的編碼長度等於log[1/P(x)]),來為符合分佈Q(X)的字元編碼,那麼表示這些字元就會比理想情況多用一些位元數。KL-divergence就是用來衡量這種情況下平均每個字元多用的位元數,因此可以用來衡量兩個分佈的距離。即:

DKL(Q||P)=∑x∈XQ(x)[log(1/P(x))] - ∑x∈XQ(x)[log[1/Q(x)]]=∑x∈XQ(x)log[Q(x)/P(x)]

由於-log(u)是凸函式,因此有下面的不等式

DKL(Q||P) = -∑x∈XQ(x)log[P(x)/Q(x)] = E[-logP(x)/Q(x)] ≥ -logE[P(x)/Q(x)] = -log∑x∈XQ(x)P(x)/Q(x) = 0

即KL-divergence始終是大於等於0的。當且僅當兩分佈相同時,KL-divergence等於0。

===========================

舉一個實際的例子吧:比如有四個類別,一個方法A得到四個類別的概率分別是0.1,0.2,0.3,0.4。另一種方法B(或者說是事實情況)是得到四個類別的概率分別是0.4,0.3,0.2,0.1,那麼這兩個分佈的KL-Distance(A,B)=0.1*log(0.1/0.4)+0.2*log(0.2/0.3)+0.3*log(0.3/0.2)+0.4*log(0.4/0.1)

這個裡面有正的,有負的,可以證明KL-Distance()>=0.

從上面可以看出, KL散度是不對稱的。即KL-Distance(A,B)!=KL-Distance(B,A)

KL散度是不對稱的,當然,如果希望把它變對稱,

Ds(p1, p2) = [D(p1, p2) + D(p2, p1)] / 2