【學習筆記】InformationTheory——熵,條件熵,聯合熵,互信息,交叉熵

Last updated: 2019-12-21

參考:

1948年,香農(Claude Shannon)在他著名的論文“通信的數學原理”(A Mathematic Theory of Communication)提出了 “信息熵” 的概念,解決了信息的度量問題,並且量化出信息的作用。

信息熵

不確定性越高,這條信息的信息量越大;不確定性越低,信息量越小。

如何量化?

猜數字遊戲:主持人在紙上寫下一個[1,64]之間的整數,你來猜這個數字是什麼。你每猜一次,我會告訴你對或者不對。問最少需要幾次可以得出正確答案?——6次:二分問法,第一次問“答案≤32嗎”;若是,第二次問“答案≤16嗎”…——log264=6log_264=6,只要6次就可以問出正確答案。

比特(Bit) 來度量信息量,則上述中的信息量爲 6 Bits。信息量的比特數和所有可能情況的對數函數 log\log 有關(如無特殊說明,本文一律以2爲底)。

上面的遊戲中認爲主持人寫下每個整數的概率是相等的,但是如果概率是不等的,可能不需要6次就可以猜出來了。比如如果寫[1,8][1,8]的可能性最大,那第一次猜的時候就可以先問“是≤8嗎”。

香農給出的信息量度量公式爲:
H=(p1logp1+p2logp2++p64logp64) H = -(p_1 \cdot \log p_1 + p_2 \cdot \log p_2 + \cdots + p_{64} \cdot \log p_{64} )
當64個數字等概率時,每個 p=1/64p=1/64logp=log164=6-\log p = -\log \frac{1}{64} = 6,可以證明上面式子最大值即爲6,也就是均與分佈時不確定性最大,信息量也最大。

信息熵(Entropy),HH,單位比特,定義如下:
H(X)=xXP(x)logP(x)(1) H(X) = - \sum_{x \in X}P(x)\log P(x) \tag{1}
變量不確定越大(均勻分佈是最大),熵就越大,要把它搞清楚所需要的信息量也就越大。

補充:

  • 熵的單位取決於定義用到的對數的底:底爲2時,單位爲bit;底爲e時,單位爲 nat;底爲10時,單位爲Hart。
  • 熵的取值範圍爲 [0,logX][0, \log |X|] (X|X|表示XX的取值個數)
  • 具有均勻概率分佈的信源符號集可以有效地達到最大熵:所有可能的事件是等概率的時候,不確定性最大。

🍉一本50萬字的中文書《史記》平均有多少信息量呢?

  • 已知常用的漢字(一級二級國標)大約有7000字。如果每個字等概率,則大約需要13比特(213=81922^{13}=8192)表示一個漢字。用兩字節的國標編碼存儲這本書大約需要 1MB。
  • 但漢字使用頻率是不均等的,前10%的漢字佔常用文本的95%以上,若只考慮每個漢字的獨立概率,每個漢字的信息熵大約只有8~9比特;再考慮上下文的相關性,則只有5比特左右。所以壓縮之後存儲這本書大約只要 320KB。
  • 這兩個數量的差距稱爲**“冗餘度”(Redundancy)**。不同語言冗餘度差別很大,漢語在所有語言中冗餘度相對較小,是最簡潔的語言。

信息的作用

一個事物內部會有隨機性,也就是不確定性,假定爲 UU,而從外部消除這個不確定性唯一的辦法是引入信息 II,而需要引入的信息量取決於這個不確定性的大小,即要 I>UI>U 才能完全消除。當 I<UI<U 時只能消除一部分不確定性。

在這裏插入圖片描述

幾乎所有的自然語言處理、信息與信號處理的應用都是一個消除不確定的過程。

自然語言的統計模型中,一元模型是通過詞本身的概率分佈來消除不確定因素,而二元及更高階的語言模型還使用了上下文的信息。

在數學上可以嚴格證明爲什麼這些“相關的”信息也能消除不確定性——條件熵(Conditional Entropy)。

條件熵(Conditional Entropy)

假設 XXYY 是兩個隨機變量,XX 是我們想要了解的。假定現在已經知道了 XX 的隨機分佈 P(X)P(X)XXYY 一起出現的聯合概率分佈(Joint Probability),在 YY 取不同值的前提下 XX 的條件概率分佈(Conditional Probability)。定義在 YY 的條件下的條件熵爲:
H(XY)=xX,yYP(x,y)logP(xy)(2) H(X|Y) = - \sum_{x \in X,y\in Y}P(x,y)\log P(x|y) \tag{2}
可以證明 H(X)H(XY)H(X) \geq H(X|Y),也就是說多了 YY 的信息之後,關於 XX 的不確定性降低了!

在統計語言模型中,如果把 YY 看成是前一個字,那麼數學上就證明了二元模型的不確定性小於一元模型。

同理可以定義有兩個條件的條件熵:
H(XY,Z)=xX,yYP(x,y,x)logP(xy,z) H(X|Y,Z) = \sum_{x \in X, y \in Y} P(x,y,x) \log P(x|y,z)
可以證明 H(XY)H(XY,Z)H(X|Y) \geq H(X|Y,Z) ,也就是說三元模型比二元模型好。

🍉一個有意思的問題:上述式子中等號什麼時候成立?

  • 等號成立說明增加了信息,不確定性卻沒有降低。
  • 如果獲取的信息與要研究的事物毫無關係,則等號就成立。

那麼如何量化這種相關性呢?👇

互信息(Mutual Information)

——兩個隨機事件“相關性”的量化度量。

假定有兩個隨機事件 XXYY ,它們的互信息定義如下:
I(X;Y)=xX,yYP(x,y)logP(x,y)P(x)P(y)(3) I(X;Y) = \sum_{{x \in X, y \in Y}} P(x,y) \log \frac{P(x,y)}{P(x)P(y)} \tag{3}
可以證明:互信息 = XX本身的不確定性 - 在知道 YY 的條件下 XX 的不確定性
I(X;Y)=H(X)H(XY)(4) I(X;Y) = H(X) - H(X|Y) \tag{4}
所以所謂的兩個事件相關性的量化度量,就是在瞭解了其中一個YY的前提下,對消除另一個XX不確定性所提供的信息量。(知道YY時,對XX不確定度減少的程度)

【說明一下】

  1. I(X;Y)I(X;Y)的取值範圍爲 [0,min{H(X),H(Y)}][0, \min\{H(X), H(Y)\}]
    • 琴生不等式可以證明I(X;Y)0I(X;Y) \geq 0,從而也就證明了H(X)H(XY)H(X) \geq H(X|Y)
  2. XXYY完全相關時,P(x,y)=P(x)=P(y)P(x,y) = P(x) = P(y),取值爲1;
  3. 當兩者完全無關時,P(x,y)=P(x)P(y)P(x,y) = P(x)P(y),取值爲0。

補充:

  • 互信息是 XY 的聯合分佈相對於假定 XY 獨立情況下的聯合分佈之間的內在依賴性。
  • (所以 log 裏,分子P(x,y)P(x,y)XY 的實際的聯合分佈,分母P(x)P(y)P(x)P(y)是假定兩者獨立時的聯合分佈)
  • 互信息越小,兩個來自不同事件空間的隨機變量彼此之間的關係性越低; 互信息越高,關係性則越高 。

在自然語言處理中,只要有足夠的語料,就很容易估計出互信息公式中的P(X,Y)P(X,Y)P(X)P(X)P(Y)P(Y)三個概率,從而很容易計算出互信息。因此互信息被廣泛用於度量一些語言現象的相關性。

機器翻譯中最難的兩個問題之一就是詞義的二義性(又稱歧義性,Ambiguation)問題。使用互信息是解決這個問題最簡單而實用的方法。例如:

  • Bush 一詞可以是美國總統的名字,也可以是灌木叢。
  • 解決思路:首先從大量文本中找出和總統Bush一起出現的互信息最大的一些詞,比如總統、美國、國會、華盛頓等等;然後用同樣的方法找出和灌木叢一起出現的互信息最大的詞,如土壤、植物、野生等等。有了這兩組詞,在翻譯Bush時,看看上下文中哪類相關的詞多就可以了。

相對熵/交叉熵(Relative Entropy,或Kullback-LeiblerDivergence)

——信息論中另一個重要的概念

用來衡量兩個取值爲正數的函數的相似性,定義如下:
KL(f(x)g(x))=xXf(x)logf(x)g(x)(5) KL(f(x)||g(x)) = \sum_{x \in X} f(x) \cdot \log \frac{f(x)}{g(x)} \tag{5}
三個結論:

  1. 對於兩個完全相等的函數,它們的相對熵=0;
  2. 相對熵越大,兩個函數差異越大;反之,相對熵越小,兩個函數差異越小;
  3. 對於概率分佈或者概率密度函數,如果取值大於等於0,相對熵可以度量兩個隨機分佈的差異性。

相對熵是不對稱的:
KL(f(x)g(x))KL(g(x)f(x)) KL(f(x)||g(x)) \neq KL(g(x)||f(x))
爲了讓它對稱,提出一種新的相對熵的計算方法,將上面不等式兩邊取平均:
JS(f(x)g(x))=12[KL(f(x)g(x))+KL(g(x)f(x))](6) JS(f(x)||g(x)) = \frac{1}{2}[KL(f(x)||g(x)) + KL(g(x)||f(x))] \tag{6}

應用:

  • 信號處理:如果兩個隨機信號,相對熵越小,說明兩個信號越接近;反之兩個信號差異越大。
  • 信息處理:衡量兩段信息的相似程度,比如論文查重,如果一篇文章照抄或者改寫另一篇,那麼這兩篇文章中次品分佈的相對熵就非常小,接近於0。
  • Google的自動問答系統:衡量兩個答案的相似性。
  • 自然語言處理:衡量兩個常用詞(在語法和語義上)在不同文本中的概率分佈,看它們是否同義。
  • 信息檢索:一個重要概念:詞頻率-逆向文檔頻率(TF-IDF)

小結

熵、條件熵、相對熵——這三個概念與語言模型的關係非常密切。

如何定量地衡量一個語言模型的好壞?

  • 一個很自然的想法:錯誤率。例如語義識別或機器翻譯的錯誤率。——但是這種測試方法對於語言模型的研究人員來講,既不直接也不方便,而且很難從錯誤率反過來定量度量語言模型。
  • 語言模型是爲了用上下文預測當前的文字,模型越好,預測得越準,那麼當前文字的不確定性就越小。——而信息熵正是對不確定性的衡量。
    • 賈里尼克提出**語言模型複雜度(Perplexity)**的概念
    • 物理意義:在給定上下文的條件下,句子中每個位置平均可以選擇的單詞數量。
    • 一個模型複雜度越小,每個位置的詞就越確定,模型越好。

困惑度(perplexity):它主要是根據每個詞來估計一句話出現的概率,並用句子長度作normalize,公式爲:
PP(S)=P(w1w2...wN)1N=1p(w1w2...wN)N=i=1N1p(wiw1w2...wi1)N PP(S) = P(w_1w_2...w_N)^{\frac{1}{N}} \\ = \sqrt[N]{\frac{1}{p(w_1w_2...w_N)}} \\ = \sqrt[N]{\prod_{i=1}^{N}\frac{1}{p(w_i | w_1w_2...w_{i-1})}}
或者等價地,
PP(s)=21Nlog(P(wi)) PP(s)=2^{-\frac{1}{N}\sum \log(P(w_i))}

補充


(參考來源:CSDN:皮皮blog

聯合熵(Joint Entropy)

在這裏插入圖片描述

條件熵(conditional entropy)

在這裏插入圖片描述

聯合熵 和 條件熵 的關係

連鎖規則。描述 x 和 y 所需的信息是描述 x 自己所需的信息,加上給定 x 的情況下具體化 y 所需的額外信息。

在這裏插入圖片描述


互信息:

互信息又可以等價地表示成:
在這裏插入圖片描述

用Venn圖表示:

在這裏插入圖片描述

(圖片來源:維基百科)

在這裏插入圖片描述

(圖片來源:CSDN:皮皮blog)

互信息的推導:
在這裏插入圖片描述
--------完--------

發佈了27 篇原創文章 · 獲贊 26 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章