【算法工程師的數學基礎】系列將會從線性代數、微積分、數值優化、概率論、信息論五個方面進行介紹,感興趣的歡迎關注【搜索與推薦Wiki】公衆號,獲得最新文章。
《算法工程師的數學基礎》已更新:
信息論
信息論(information theory)是數學、物理、統計、計算機科學等多個學科的交叉領域。在機器學習相關領域,信息論也有着大量的應用。比如特徵抽取、統計推斷、自然語言處理等。
熵
自信息和熵
熵(Entropy)最早是物理學的概念,用於表示一個熱力學系統的無序程度。在信息論中,熵用來衡量一個隨機事件的不確定性。假設對一個隨機變量X(取值集合爲R,概率分佈爲p(x),x∈R)進行編碼,自信息I(x)是變量X=x時的信息量或者編碼長度,定義爲:
I(x)=−log(p(x))
那麼隨機變量X的平均編碼長度,即熵定義爲:
H(X)=EX[I(x)]=EX[−log(p(x))]=−x∈R∑p(x)logp(x)
其中當p(xi)=0時,我們定義0log0=0,這與極限一致,p→0+limplogp=0
熵是一個隨機變量的平均編碼長度,即自信息的數學期望。熵越高,則隨機變量的信息越多;熵越低,則信息越少。如果變量X當且僅當在x時p(x)=1,則熵爲0。也就是說,對於一個確定的信息,其熵爲0,信息量也爲0。如果其概率分佈爲一個均勻分佈,則熵越大。假設一個隨機變量X有三種可能值x1,x2,x3,不同概率分佈對應的熵如下:
p(x1) |
p(x2) |
p(x3) |
熵 |
1 |
0 |
0 |
0 |
21 |
41 |
41 |
23 |
31 |
31 |
31 |
log(3) |
聯合熵和條件熵
對於兩個離散隨機變量X,Y,假設X的取值集合爲$\chi_1 ,Y的取值爲\chi_2,其聯合概率分布滿足爲p(x,y)$,則:
X和Y的聯合熵(Joint Entropy)爲:
H(X,Y)=−x∈χ1∑y∈χ2∑p(x,y)logp(x,y)
X和Y的條件熵(Conditiona Entropy)爲:
H(X∣Y)=−x∈χ1∑y∈χ2∑p(x,y)logp(x∣y)=−x∈χ1∑y∈χ2∑p(x,y)logp(y)p(x,y)
根據其定義,條件熵也可以寫爲:
H(X∣Y)=H(X,Y)−H(Y)
互信息
互信息(mutual information)是衡量已知一個變量時,另一個變量不確定性得減少程度。兩個離散隨機變量X和Y的互信息定義爲:
I(X;Y)=x∈χ1∑y∈χ2∑p(x,y)logp(x),p(y)p(x,y)
互信息的一個性質爲:
I(X;Y)=H(X)−H(X∣Y)=H(Y)−H(Y∣X)
如果X和Y相互獨立,即X不對Y提供任何信息,反之亦然,因此他們得互信息爲0。
互信息一個非常重要得用途是特徵選擇。使用互信息理論進行特徵抽取是基於如下假設:在某個特定類別出現頻率高,但在其他類別出現頻率比較低的詞條與該類的互信息比較大。
交叉熵和散度
交叉熵
對應分佈爲p(x)的隨機變量,熵H(p)表示最優編碼長度。交互熵(cross entropy) 是按照概率分佈q的最優編碼對真實分佈爲p的信息進行編碼得長度,定義爲:
H(p,q)=Ep[−logq(x)]=−x∑p(x)logq(x)
在給定p的情況下,如果q和p越接近,交叉熵越小;如果q和p越遠,交叉熵就越大。
KL散度
KL散度(Kullback-Leibler divergence)也叫KL距離或者相對熵(relative entropy),是用概率分佈q來近似p時所造成得信息損失量。KL散度是按照概率分佈q的最優編碼對真實分佈爲p的信息進行編碼,其平均編碼長度H(p,q)和p的最優編碼長度H(p)之間得差異。對於離散概率分佈p和q,從p和q的KL散度定義爲:
DKL(p∣∣q)=H(p,q)−H(p)=x∑p(x)logq(x)p(x)
其中爲了保證連續性,定義0log00=0,0logq0=0
KL散度可以是衡量兩個概率分佈之間得距離。KL散度總是非負的,DKL(p∣∣q)≥0。只有當p=q時,DKL(p∣∣q)=0。
如果兩個分佈越接近,KL散度越小;如果兩個分佈越遠,KL散度就越大。但KL散度並不是一個真正的度量或距離,一個是KL散度不滿足距離的對稱性,二是KL散度不滿足距離的三角不等式性質。
JS散度
JS散度(Jensen-Shannon divergence)是一種對稱的衡量兩個分佈相似度的度量方式,定義爲:
DJS(p∣∣q)=21DKL(p∣∣m)+21DKL(q∣∣m)
其中m=21(p+q)
JS散度是KL散度的一種改進,但兩種散度有存在一個問題,即如果兩個分佈p,q沒有重疊或者重疊非常少時,KL散度和JS散度都很難衡量兩個分佈的距離。
Wasserstein距離
Wasserstein距離也是用於衡量兩個分佈之間的距離。對於兩個分佈q1,q2,pth−Wasserstein距離定義爲:
Wp(q1,q2)=(γ(x,y)∈τ(q1,q2)infE(x,y)∈γ(x,y)[d(x,y)p])p1
其中τ(q1,q2)是邊際分佈爲q1和q2的所有可能的聯合分佈集合,d(x,y)爲x和y的距離,比如lp距離等。
如果將兩個分佈看作是兩個土堆,聯合分佈γ(x,y)看作是從土堆q1的位置x到土堆q2的位置y的搬運土的數量,並有:
x∑γ(x,y)=q2(y)y∑γ(x,y)=q1(x)
q1和q2爲γ(x,y)的兩個邊際分佈。
E(x,y)∈γ(x,y)[d(x,y)p]可以理解爲聯合分佈γ(x,y)下把形狀爲q1的土堆搬運到形狀爲q2的土堆所需的工作量
E(x,y)∈γ(x,y)[d(x,y)p]=(x,y)∑γ(x,y)d(x,y)p
其實從土堆q1中的點x到土堆q2中的點y的移動土的數量和距離分別爲γ(x,y)和d(x,y)p。因此,Wasserstein距離可以理解爲搬運土堆的最小工作量,也稱爲推土機距離(Earth-Mover’s Distance, EMD) 。下圖給出了兩個離散變量分佈的Wassertein距離示例。c中同顏色方塊表示分佈q1中爲相同位置。
Wassertein距離相對KL散度和JS散度的優勢在於:即使兩個分佈沒有重疊或者重疊非常少,Wassertein距離仍然能反應出兩個分佈的遠近。
對於Rn空間中的兩個高斯分佈p=N(u1,σ12)和q=N(u2,σ22),他們的2nd−Wassertein距離爲:
DW(p∣∣q)=∣∣u1−u2∣∣2+tr(σ12+σ12−2((σ22)1/2(σ12)(σ22)1/2)1/2)
當兩個分佈的方差爲0時,2nd−Wassertein距離等價於歐式距離。
至此完更!
【技術服務】,詳情點擊查看:
https://mp.weixin.qq.com/s/PtX9ukKRBmazAWARprGIAg
掃一掃 關注微信公衆號!號主 專注於搜索和推薦系統,嘗試使用算法去更好的服務於用戶,包括但不侷限於機器學習,深度學習,強化學習,自然語言理解,知識圖譜,還不定時分享技術,資料,思考等文章!