機器學習之熵

熵這個詞原本是物理學中表示分子混亂程度的物理量,香農(Claude Elwood Shannon)借用過來描述信源的平均不肯定性。信息熵的內容在信息論相關教材中有詳細的描述,這裏僅對機器學習中用到的部分相關概念作個筆記。算法

1.信息

信息有別於消息,是對事物運動狀態或存在方式的不肯定性的描述,而且這種不肯定性是有大小的。機器學習

好比咱們在手機上看到這樣兩則新聞:函數

科學家經過新技術復活了一隻原核細菌。學習

科學家經過新技術復活了一隻恐龍。優化

聽到這兩句話的時候,咱們心裏的波動是不同的,對於復活的細菌,咱們可能看一眼就刷過去了;對於復活的恐龍,咱們可能火燒眉毛的細看一下,若是能夠的話,咱們也想親眼見識見識這數千萬年前的龐然大物。換言之,這兩句話帶給咱們的信息量是不一樣的,原核生物復活的可能性大,信息量就小;恐龍復活的可能性小,信息量就大。spa

2.自信息量

那麼信息量的大小如何度量呢?前面說到信息是對事物不肯定性的描述,不肯定性與事件發生的機率有關,機率越小,不肯定性越大,事件發生後所含的信息量就越大。.net

設事件x的機率爲p,則它的自信息量爲3d

                                                                   \large I(x)=log\frac{1}{p(x)}=-logp(x)                                                                               \small I(x)表明兩種含義:在事件發生之前,表示事件\small x發生的不肯定性的大小;在事件發生之後,表示事件\small x所包含的信息量。code

式中對數的底可任取,blog

  •   底爲2時,單位爲比特 (bit);
  •   底爲e時,單位爲奈特 (nat);
  •   底爲10時,單位爲哈特 (hart).

    通常取2爲底,常省略。

注:由於咱們考察的只是一個隨機事件自己的信息量,因此稱爲自信息,若是考察兩個事件的相互影響,則爲互信息。互信息咱們未使用,暫且不談。

3.信息熵—平均自信息量

信息熵是對系統平均不肯定性的描述。從機率統計的角度,信息熵就是隨機變量X的函數\small log(\frac{1}{p})的指望,也就是全部事件自信息量的加權平均,即

                                                             H(X)=-\sum_{i=1}^{n}p(x_{i})logp(x_{i})                                                                                    其中,nX的全部可能取值個數。

例:隨機變量X對應的機率空間爲

0.98

0.01

0.01

X的信息熵爲

                                   H(X)=-0.98log0.98-0.01log0.01-0.01log0.01=0.161441 (bit)

4.聯合熵與條件熵

將聯合自信息與條件自信息進行平均,便獲得聯合熵與條件熵。

假設二維隨機變量XY的機率空間爲

                                                                       \large \begin{bmatrix} XY\\ P(XY) \end{bmatrix}=\begin{bmatrix} x_{1}y_{1} & ... & x_{i}y_{j} &... &x_{m}y_{n} \\ p_{11} & ... & p_{ij} & ... & p_{mn} \end{bmatrix}

                                                                     

  • 聯合熵定義爲聯合自信息的數學指望,是二維隨機變量XY的不肯定性的度量

                                                                      H(XY)=-\sum_{i=1}^{m}\sum_{j=1}^{n}p(x_{i}y_{j})logp(x_{i}y_{j})                                                                     

  • 條件熵 \small H(Y|X) 表示在已知隨機變量X的條件下隨機變量Y的不肯定性。定義爲X給定條件下Y的條件機率分佈的熵對X的數學指望

                                                                       H(Y|X)=\sum_{i=1}^{m}p_{i\cdot }H(Y|X=x_{i})                                                                          

其中,\small H(Y|X=x_{i})=-\sum _{j=1}^{n}p(y_{j}|X=x_{i})logp(y_{j}|X=x_{i}),即爲給定X=x_{_{i}}的條件下Y的條件機率分佈的熵。代入上式展開爲

                                                                   H(Y|X)=\sum_{i=1}^{m}p_{i\cdot }(-\sum_{j=1}^{n}p(y_{j}|X=x_{i})logp(y_{j}|X=x_{i}))

                                                                                   =-\sum_{i=1}^{m}\sum_{j=1}^{n}p(x_{i}y_{j})logp(y_{j}|X=x_{i})                                                                                                                                                    

  • 信息熵與聯合熵、條件熵的關係:

                                                                    H(XY)=H(X)+H(Y|X)

 

5.交叉熵(Cross Entropy)

形式上,交叉熵是一個隨機變量的機率分佈\large p對另外一個機率分佈\large q定義的自信息-logq的數學指望,表示爲

                                                       \large H(p,q)=-\sum_{i=1}^{n}p_{i}logq_{i}                                                                        

若是\large p爲某個數據集的真實分佈,\large q爲非真實的近似分佈,交叉熵就表示使用分佈\large q來消除分佈\large p的不肯定性所需代價的大小。

吉布斯不等式-\sum_{i=1}^{n}p_{i}logp_{i}\leqslant -\sum_{i=1}^{n}p_{i}logq_{i}(當\small p_{i}=q_{i}時等號成立)知,信息熵是消除系統不肯定性所需的最小代價,真實分佈與任何其餘非真實分佈的交叉熵都比其自身的信息熵大。這也就是說,交叉熵可以反映兩個分佈的差別性大小,交叉熵越小,近似分佈q就越接近真實分佈p(若是分佈q就是分佈p了,那麼交叉熵就是信息熵,即\small H(p,q)=H(p),此時消除系統不肯定性所需代價達到最小)。因此一些分類算法中常常使用交叉熵做爲損失函數。

6.相對熵(K-L散度)

交叉熵間接反映了兩個分佈的差別性大小,更直接一點,若是用分佈q近似分佈p,那麼它們的差別性究竟有多大呢?咱們能夠用二者的相對熵K-L散度,也就是二者熵之差)來定量衡量。

                   用分佈\small q近似真實分佈\small p,交叉熵爲

                                                                  H(p,q)=-\sum_{i=1}^{n}p_{i}logq_{i}                                                                         

                    真實分佈\small p自身的信息熵爲

                                                                 H(p)=-\sum_{i=1}^{n}p_{i}logp_{i}                                                                         

                    相對熵(K-L散度),即二者熵之差爲:

                                                                 D_{KL}(p||q)=H(p,q)-H(p)=\sum_{i=1}^{n}p_{i}log\frac{p_{i}}{q_{i}}                                                                     它恆爲正值,直接地衡量了兩個分佈差別性的大小。 

在分類算法中,咱們須要評估優化標籤和預測值之間的差距,使用KL散度正好合適,只不過\small H(p)是固定不變的,因此咱們只須要使用前半部分的交叉熵就能夠了。也有人將K-L散度稱爲兩個分佈的K-L距離,只是它不是對稱的,即D_{KL} (p||q)\neq D_{KL} (q||p).

pdf下載

參考:

  1. 李亦農,李梅 《信息論基礎教程》
  2. 李航 《統計學習方法》
  3. 簡書   https://www.jianshu.com/p/43318a3dc715?from=timeline
  4. 知乎   https://www.zhihu.com/question/41252833
  5. 維基百科 https://en.wikipedia.org/wiki/Gibbs%27_inequality
相關文章
相關標籤/搜索