自然语言处理(2)-信息论基础
自然語言處理-數(shù)學(xué)基礎(chǔ)
- 概述
- 1.信息論基礎(chǔ)
- 1.1熵
- 1.2 聯(lián)合熵和條件熵
- 1.3 相對熵和交叉熵
- 1.4 互信息和雙字耦合度
- 1.5 噪聲信道模型
概述
本系列文章計劃總結(jié)整理中國科學(xué)院大學(xué)宗成慶老師《自然語言處理》課程相關(guān)知識,參考數(shù)目《統(tǒng)計自然語言處理》-第二版,宗成慶。
1.信息論基礎(chǔ)
1.1熵
熵是信息論中的基本概念 ,又稱為自信息(self-information)。表示信號源X每發(fā)送一個符號(不論發(fā)什么符號)所提供的平均信息量。熵經(jīng)常被用來描述一個隨機變量的不確定性,一個隨機變量的熵越大,這個隨機變量的不確定性越大;那么正確估計其隨機變量值的可能性就越小。
如果X是一個離散型的隨機變量,其概率分布p(x)=P(X=x),x∈Xp(x)=P(X=x),x\in Xp(x)=P(X=x),x∈X。X的熵H(X)為:
H(X)=?∑x∈Xp(x)log?2p(x)H(X)=-\sum_{x\in X}p(x)\log_{2}p(x) H(X)=?x∈X∑?p(x)log2?p(x)
約定:0log20=00log_20=00log2?0=0。對數(shù)以2為底時,熵的單位為比特(bit)。
定性理解:熵越大不確定性越大。
隨機實驗1:擲一枚均勻的硬幣,結(jié)果等可能的出現(xiàn)正反兩面,即P(X=正面)=0.5,P(X=反面)=0.5P(X=正面)=0.5,P(X=反面)=0.5P(X=正面)=0.5,P(X=反面)=0.5,則
H(X)=?(0.5log?20.5+0.5log20.5)=1H(X)=-(0.5\log_20.5+0.5log_20.5)=1H(X)=?(0.5log2?0.5+0.5log2?0.5)=1
隨機實驗2:擲一枚不均勻的硬幣(一面鍍鉛),結(jié)果不等可能的出現(xiàn)正反兩面,其中P(X=正面)=0.3,P(X=反面)=0.7P(X=正面)=0.3,P(X=反面)=0.7P(X=正面)=0.3,P(X=反面)=0.7,則
H(X)=?(0.3log?20.3+0.7log20.7)=0.88H(X)=-(0.3\log_20.3+0.7log_20.7)=0.88H(X)=?(0.3log2?0.3+0.7log2?0.7)=0.88
實驗1等可能的出現(xiàn)正反面,不難理解出現(xiàn)其正面的不確定性比實驗2中出現(xiàn)正面的不確定性大,通過計算,實驗1結(jié)果的熵確實比實驗二結(jié)果的熵大。
1.2 聯(lián)合熵和條件熵
聯(lián)合熵: 描述一對隨機變量所需要的平均信息量。一對離散型隨機變量X,Y的聯(lián)合概率概率分布為p(x,y)p(x,y)p(x,y),X,Y的聯(lián)合熵為:
H(X,Y)=?∑x∈X∑y∈Yp(x,y)log2p(x,y)H(X,Y)=-\sum_{x\in X}\sum_{y\in Y}p(x,y)log_2p(x,y)H(X,Y)=?x∈X∑?y∈Y∑?p(x,y)log2?p(x,y)
條件熵: 給定隨機變量X的條件下,隨機變量Y的熵:
H(Y∣X)=∑x∈Xp(x)H(Y∣X=x)=∑x∈Xp(x)[?∑y∈Yp(y∣x)log2p(y∣x)]=?∑x∈X∑y∈Yp(x)p(y∣x)log2p(y∣x)H(Y|X)=\sum_{x\in X}p(x)H(Y|X=x)=\sum_{x\in X}p(x)[-\sum_{y\in Y}p(y|x)log_2p(y|x)]=-\sum_{x\in X}\sum_{y\in Y}p(x)p(y|x)log_2p(y|x)H(Y∣X)=x∈X∑?p(x)H(Y∣X=x)=x∈X∑?p(x)[?y∈Y∑?p(y∣x)log2?p(y∣x)]=?x∈X∑?y∈Y∑?p(x)p(y∣x)log2?p(y∣x)
連鎖規(guī)則: 聯(lián)合熵可以表示為條件熵與熵的和,通過數(shù)學(xué)變換:
H(X,Y)=?∑x∈X∑y∈Yp(x,y)log2p(x,y)=?∑x∈X∑y∈Yp(x,y)log2[p(y∣x)p(x)]H(X,Y)=-\sum_{x\in X}\sum_{y\in Y}p(x,y)log_2p(x,y)=-\sum_{x\in X}\sum_{y\in Y}p(x,y)log_2[p(y|x)p(x)]H(X,Y)=?x∈X∑?y∈Y∑?p(x,y)log2?p(x,y)=?x∈X∑?y∈Y∑?p(x,y)log2?[p(y∣x)p(x)]
=?∑x∈X∑y∈Yp(x,y)[log2p(y∣x)+log2p(x)]=-\sum_{x\in X}\sum_{y\in Y}p(x,y)[log_2p(y|x)+log_2p(x)]=?x∈X∑?y∈Y∑?p(x,y)[log2?p(y∣x)+log2?p(x)]
=?∑x∈X∑y∈Yp(x,y)log2p(y∣x)+?∑x∈X∑y∈Yp(x,y)log2p(x)=-\sum_{x\in X}\sum_{y\in Y}p(x,y)log_2p(y|x)+-\sum_{x\in X}\sum_{y\in Y}p(x,y)log_2p(x)=?x∈X∑?y∈Y∑?p(x,y)log2?p(y∣x)+?x∈X∑?y∈Y∑?p(x,y)log2?p(x)
=?∑x∈X∑y∈Yp(x)p(y∣x)log2p(y∣x)+?∑x∈X∑y∈Yp(x,y)log2p(x)=-\sum_{x\in X}\sum_{y\in Y}p(x)p(y|x)log_2p(y|x)+-\sum_{x\in X}\sum_{y\in Y}p(x,y)log_2p(x)=?x∈X∑?y∈Y∑?p(x)p(y∣x)log2?p(y∣x)+?x∈X∑?y∈Y∑?p(x,y)log2?p(x)
=H(Y∣X)+H(X)=H(Y|X)+H(X)=H(Y∣X)+H(X)
同理可以推導(dǎo):
H(X,Y)=H(Y)+H(X∣Y)H(X,Y)=H(Y)+H(X|Y)H(X,Y)=H(Y)+H(X∣Y)
1.3 相對熵和交叉熵
(之后公式中底數(shù)2將被省略)
相對熵: 又稱為KL散度,用于衡量兩個隨機分布的差距。當兩個隨機分布相同時其相對熵為0.當兩個隨機分布的差別增加時,其相對熵也增加 。兩個概率分布p(x),q(x)p(x),q(x)p(x),q(x)d的相對熵為:
D(p∣∣q)=∑x∈Xp(x)logp(x)q(x)D(p||q)=\sum_{x\in X}p(x)log \frac{p(x)}{q(x)}D(p∣∣q)=x∈X∑?p(x)logq(x)p(x)?
KL散度不對稱與不滿足三角不等式例子博客:https://blog.csdn.net/qq_44702847/article/details/95190388
交叉熵: 用于衡量估計模型與真實概率分布之間的差異,隨機變量X~p(x),q(x)為p(x)的近似概率分布,則隨機變量X與模型q之間的交叉熵為:
H(X,q)=?∑xp(x)logq(x)H(X,q)=-\sum_xp(x)logq(x)H(X,q)=?x∑?p(x)logq(x)
通過數(shù)學(xué)推導(dǎo)可得,交叉熵=隨機變量的熵+真實分布與模型分布的差距:
H(X,q)=H(X)+D(p∣∣q)H(X,q)=H(X)+D(p||q)H(X,q)=H(X)+D(p∣∣q)
分析:因為,在同一隨機變量的前提下,真實分布與模型分布的差距(即相對熵)越小越好;所以,真實分布與模型分布之間的交叉熵越小,估計模型越逼近真實概率分布。
困惑度: 在實際應(yīng)用中經(jīng)常用困惑度來代替交叉熵衡量語言模型的好壞(交叉熵計算的時候會過小溢出?)給定語言L的樣本l1n=l1...lnl_1^n=l_1...l_nl1n?=l1?...ln?,L的困惑度PPqPP_qPPq?為:
PPq=2H(L,q)≈2?1nlogq(l1n)=[q(l1n)]?1nPP_q=2^{H(L,q)}\approx 2^{-\frac{1}{n}logq(l_1^n)=[q(l_1^n)]^{-\frac{1}{n}}}PPq?=2H(L,q)≈2?n1?logq(l1n?)=[q(l1n?)]?n1?
小結(jié):語言模型設(shè)計任務(wù)就是:尋求與真實概率分布差距較小的模型,也就是要尋找交叉熵較小的模型,也就是要尋找困惑度較小的模型。
1.4 互信息和雙字耦合度
互信息: 定義:
I(X;Y)=H(X)?H(X∣Y)I(X;Y)=H(X)-H(X|Y)I(X;Y)=H(X)?H(X∣Y)
I(x;y)I(x;y)I(x;y)表示在知道了Y的值之后X不確定量的減少程度。
經(jīng)過推導(dǎo):
I(X;Y)=∑x∈X∑y∈Yp(x,y)log?p(x,y)p(x)p(y)I(X;Y)=\sum_{x\in X}\sum_{y\in Y}p(x,y)\log \frac{p(x,y)}{p(x)p(y)}I(X;Y)=x∈X∑?y∈Y∑?p(x,y)logp(x)p(y)p(x,y)?
例子:漢語分詞問題:利用互信息估計兩個漢字結(jié)合強度,互信息越大表示兩個漢字之間的結(jié)合越緊密,越有可能成詞。反之斷開的可能性較大。 當兩個漢字x和y 的關(guān)聯(lián)度較強時,其互信息的值I(x,y)>0I(x,y)>0I(x,y)>0;關(guān)系較弱時I(x,y)≈0I(x,y)\approx 0I(x,y)≈0.。當I(x,y)<0I(x,y)<0I(x,y)<0時,x與y稱為互補分布。
互信息統(tǒng)計的是兩個漢字連續(xù)出現(xiàn)在一個詞中的概率,有些漢字單個使用時跟頻繁,連續(xù)與其他字在一起成詞的情況較少,但是,一旦連續(xù)在一起出現(xiàn)很有可能會成詞。這中情況下兩個漢字之間的互信息很小。用互信息來判斷,該字對應(yīng)該分開。
因為,互信息在上述情況下并不能很好工作。所以,就有學(xué)者提出雙字耦合度的概念。
雙字耦合度:
Couple(ci,ci+1=N(cici+1)N(cici+1)+N(C(...ci∣ci+1...)))Couple(c_i,c_{i+1}=\frac{N(c_ic_{i+1})}{N(c_ic_{i+1})+N(C(...c_i|c_{i+1}...))}) Couple(ci?,ci+1?=N(ci?ci+1?)+N(C(...ci?∣ci+1?...))N(ci?ci+1?)?)
其中:ci,cI+1c_i,c_{I+1}ci?,cI+1?是有序字對。N(cici+1)N(c_ic_{i+1})N(ci?ci+1?)表示字符串ci,cI+1c_i,c_{I+1}ci?,cI+1?成詞的次數(shù),N(C(...ci∣ci+1...))N(C(...c_i|c_{i+1}...))N(C(...ci?∣ci+1?...))表示字符串ci,cI+1c_i,c_{I+1}ci?,cI+1?不成詞(cic_ici?為上一個詞的詞尾, ci+1c_{i+1}ci+1?為下一個詞的詞頭)的次數(shù)。雙字偶爾度考慮的是兩個字連續(xù)出現(xiàn)的情況下,兩者成詞的概率,有效規(guī)避互信息將二者不連續(xù)出現(xiàn)的次數(shù)也考慮在計算式中所造成的麻煩。
1.5 噪聲信道模型
在信號傳輸?shù)倪^程中要進行雙重性處理:一方面盡量消除冗余,另一方面增加冗余利于恢復(fù)信號。噪聲信道模型的目標就是優(yōu)化噪聲信道中信號的吞吐量和準確率,其基本假設(shè)是:一個信道的輸出以一定的概率依賴于輸入。
信道容量:
C=max?p(x)I(X;Y)C=\max_{p(x)}I(X;Y)C=p(x)max?I(X;Y)
依據(jù)上式定義,我們能夠設(shè)計一個輸入編碼器X,其概率分布為p(x),其使得輸入與輸出之間的互信息達到最大值。那么,我們的設(shè)計就達到了信道的最大傳輸容量。在語言處理中,我們不需要進行編碼,只需進行解碼,使得系統(tǒng)的輸出更加接近與輸入。
總結(jié)
以上是生活随笔為你收集整理的自然语言处理(2)-信息论基础的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《Python Cookbook 3rd
- 下一篇: 《深入理解JVM.2nd》笔记(四):虚