信息論
交叉熵是信息論中的一個(gè)概念,要想了解交叉熵的本質(zhì)相嵌,需要先從最基本的概念講起腿时。
1 信息量
首先是信息量。假設(shè)我們聽(tīng)到了兩件事饭宾,分別如下:
事件A:巴西隊(duì)進(jìn)入了2018世界杯決賽圈批糟。
事件B:中國(guó)隊(duì)進(jìn)入了2018世界杯決賽圈。
僅憑直覺(jué)來(lái)說(shuō)捏雌,顯而易見(jiàn)事件B的信息量比事件A的信息量要大跃赚。究其原因,是因?yàn)槭录嗀發(fā)生的概率很大性湿,事件B發(fā)生的概率很小。所以當(dāng)越不可能的事件發(fā)生了满败,我們獲取到的信息量就越大肤频。越可能發(fā)生的事件發(fā)生了,我們獲取到的信息量就越小算墨。那么信息量應(yīng)該和事件發(fā)生的概率有關(guān)宵荒。
假設(shè)XX是一個(gè)離散型隨機(jī)變量,其取值集合為χχ,概率分布函數(shù)p(x)=Pr(X=x),x∈χp(x)=Pr(X=x),x∈χ,則定義事件X=x0X=x0的信息量為:
I(x0)=?log(p(x0))
I(x0)=?log(p(x0))
由于是概率所以p(x0)p(x0)的取值范圍是[0,1][0,1],繪制為圖形如下:
可見(jiàn)該函數(shù)符合我們對(duì)信息量的直覺(jué)
2 熵
考慮另一個(gè)問(wèn)題净嘀,對(duì)于某個(gè)事件报咳,有nn種可能性,每一種可能性都有一個(gè)概率p(xi)p(xi)
這樣就可以計(jì)算出某一種可能性的信息量挖藏。舉一個(gè)例子暑刃,假設(shè)你拿出了你的電腦,按下開(kāi)關(guān)膜眠,會(huì)有三種可能性岩臣,下表列出了每一種可能的概率及其對(duì)應(yīng)的信息量
序號(hào) 事件 概率p 信息量I
A 電腦正常開(kāi)機(jī) 0.7 -log(p(A))=0.36
B 電腦無(wú)法開(kāi)機(jī) 0.2 -log(p(B))=1.61
C 電腦爆炸了 0.1 -log(p(C))=2.30
注:文中的對(duì)數(shù)均為自然對(duì)數(shù)
我們現(xiàn)在有了信息量的定義,而熵用來(lái)表示所有信息量的期望宵膨,即:
H(X)=?∑i=1np(xi)log(p(xi))
H(X)=?∑i=1np(xi)log(p(xi))
其中n代表所有的n種可能性架谎,所以上面的問(wèn)題結(jié)果就是
H(X)===?[p(A)log(p(A))+p(B)log(p(B))+p(C))log(p(C))]0.7×0.36+0.2×1.61+0.1×2.300.804
H(X)=?[p(A)log(p(A))+p(B)log(p(B))+p(C))log(p(C))]=0.7×0.36+0.2×1.61+0.1×2.30=0.804
然而有一類(lèi)比較特殊的問(wèn)題,比如投擲硬幣只有兩種可能辟躏,字朝上或花朝上谷扣。買(mǎi)彩票只有兩種可能,中獎(jiǎng)或不中獎(jiǎng)捎琐。我們稱(chēng)之為0-1分布問(wèn)題(二項(xiàng)分布的特例)会涎,對(duì)于這類(lèi)問(wèn)題涯曲,熵的計(jì)算方法可以簡(jiǎn)化為如下算式:
H(X)==?∑i=1np(xi)log(p(xi))?p(x)log(p(x))?(1?p(x))log(1?p(x))
H(X)=?∑i=1np(xi)log(p(xi))=?p(x)log(p(x))?(1?p(x))log(1?p(x))
3 相對(duì)熵(KL散度)
相對(duì)熵又稱(chēng)KL散度,如果我們對(duì)于同一個(gè)隨機(jī)變量 x 有兩個(gè)單獨(dú)的概率分布 P(x) 和 Q(x),我們可以使用 KL 散度(Kullback-Leibler (KL) divergence)來(lái)衡量這兩個(gè)分布的差異
維基百科對(duì)相對(duì)熵的定義
In the context of machine learning, DKL(P‖Q) is often called the information gain achieved if P is used instead of Q.
即如果用P來(lái)描述目標(biāo)問(wèn)題在塔,而不是用Q來(lái)描述目標(biāo)問(wèn)題幻件,得到的信息增量。
在機(jī)器學(xué)習(xí)中蛔溃,P往往用來(lái)表示樣本的真實(shí)分布绰沥,比如[1,0,0]表示當(dāng)前樣本屬于第一類(lèi)。Q用來(lái)表示模型所預(yù)測(cè)的分布贺待,比如[0.7,0.2,0.1]
直觀的理解就是如果用P來(lái)描述樣本徽曲,那么就非常完美。而用Q來(lái)描述樣本麸塞,雖然可以大致描述秃臣,但是不是那么的完美,信息量不足哪工,需要額外的一些“信息增量”才能達(dá)到和P一樣完美的描述奥此。如果我們的Q通過(guò)反復(fù)訓(xùn)練,也能完美的描述樣本雁比,那么就不再需要額外的“信息增量”稚虎,Q等價(jià)于P。
KL散度的計(jì)算公式:
DKL(p||q)=∑i=1np(xi)log(p(xi)q(xi))(3.1)
(3.1)DKL(p||q)=∑i=1np(xi)log(p(xi)q(xi))
n為事件的所有可能性偎捎。
DKLDKL的值越小蠢终,表示q分布和p分布越接近
4 交叉熵
對(duì)式3.1變形可以得到:
DKL(p||q)==∑i=1np(xi)log(p(xi))?∑i=1np(xi)log(q(xi))?H(p(x))+[?∑i=1np(xi)log(q(xi))]
DKL(p||q)=∑i=1np(xi)log(p(xi))?∑i=1np(xi)log(q(xi))=?H(p(x))+[?∑i=1np(xi)log(q(xi))]
等式的前一部分恰巧就是p的熵,等式的后一部分茴她,就是交叉熵:
H(p,q)=?∑i=1np(xi)log(q(xi))
H(p,q)=?∑i=1np(xi)log(q(xi))
在機(jī)器學(xué)習(xí)中寻拂,我們需要評(píng)估label和predicts之間的差距,使用KL散度剛剛好丈牢,即DKL(y||y)DKL(y||y)祭钉,由于KL散度中的前一部分?H(y)?H(y)不變,故在優(yōu)化過(guò)程中赡麦,只需要關(guān)注交叉熵就可以了朴皆。所以一般在機(jī)器學(xué)習(xí)中直接用用交叉熵做loss,評(píng)估模型
————————————————
版權(quán)聲明:本文為CSDN博主「史丹利復(fù)合田」的原創(chuàng)文章泛粹,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議遂铡,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/tsyccnh/article/details/79163834