熵這個詞原本是物理學中表示分子混亂程度的物理量,香農(Claude Elwood Shannon)借用過來描述信源的平均不肯定性。信息熵的內容在信息論相關教材中有詳細的描述,這裏僅對機器學習中用到的部分相關概念作個筆記。算法
信息有別於消息,是對事物運動狀態或存在方式的不肯定性的描述,而且這種不肯定性是有大小的。機器學習
好比咱們在手機上看到這樣兩則新聞:函數
科學家經過新技術復活了一隻原核細菌。學習
科學家經過新技術復活了一隻恐龍。優化
聽到這兩句話的時候,咱們心裏的波動是不同的,對於復活的細菌,咱們可能看一眼就刷過去了;對於復活的恐龍,咱們可能火燒眉毛的細看一下,若是能夠的話,咱們也想親眼見識見識這數千萬年前的龐然大物。換言之,這兩句話帶給咱們的信息量是不一樣的,原核生物復活的可能性大,信息量就小;恐龍復活的可能性小,信息量就大。spa
那麼信息量的大小如何度量呢?前面說到信息是對事物不肯定性的描述,不肯定性與事件發生的機率有關,機率越小,不肯定性越大,事件發生後所含的信息量就越大。.net
設事件的機率爲
,則它的自信息量爲3d
表明兩種含義:在事件發生之前,表示事件
發生的不肯定性的大小;在事件發生之後,表示事件
所包含的信息量。code
式中對數的底可任取,blog
通常取2爲底,常省略。
注:由於咱們考察的只是一個隨機事件自己的信息量,因此稱爲自信息,若是考察兩個事件的相互影響,則爲互信息。互信息咱們未使用,暫且不談。
信息熵是對系統平均不肯定性的描述。從機率統計的角度,信息熵就是隨機變量的函數
的指望,也就是全部事件自信息量的加權平均,即
其中,
爲
的全部可能取值個數。
例:隨機變量
對應的機率空間爲
0.98
0.01
0.01
則
的信息熵爲
將聯合自信息與條件自信息進行平均,便獲得聯合熵與條件熵。
假設二維隨機變量的機率空間爲
聯合熵定義爲聯合自信息的數學指望,是二維隨機變量的不肯定性的度量
條件熵 表示在已知隨機變量X的條件下隨機變量Y的不肯定性。定義爲X給定條件下Y的條件機率分佈的熵對X的數學指望
其中,,即爲給定
的條件下Y的條件機率分佈的熵。代入上式展開爲
形式上,交叉熵是一個隨機變量的機率分佈對另外一個機率分佈
定義的自信息
的數學指望,表示爲
若是爲某個數據集的真實分佈,
爲非真實的近似分佈,交叉熵就表示使用分佈
來消除分佈
的不肯定性所需代價的大小。
由吉布斯不等式(當
時等號成立)知,信息熵是消除系統不肯定性所需的最小代價,真實分佈與任何其餘非真實分佈的交叉熵都比其自身的信息熵大。這也就是說,交叉熵可以反映兩個分佈的差別性大小,交叉熵越小,近似分佈
就越接近真實分佈
(若是分佈
就是分佈
了,那麼交叉熵就是信息熵,即
,此時消除系統不肯定性所需代價達到最小)。因此一些分類算法中常常使用交叉熵做爲損失函數。
交叉熵間接反映了兩個分佈的差別性大小,更直接一點,若是用分佈近似分佈
,那麼它們的差別性究竟有多大呢?咱們能夠用二者的相對熵(K-L散度,也就是二者熵之差)來定量衡量。
用分佈近似真實分佈
,交叉熵爲
真實分佈自身的信息熵爲
相對熵(K-L散度),即二者熵之差爲:
它恆爲正值,直接地衡量了兩個分佈差別性的大小。
在分類算法中,咱們須要評估優化標籤和預測值之間的差距,使用KL散度正好合適,只不過是固定不變的,因此咱們只須要使用前半部分的交叉熵就能夠了。也有人將K-L散度稱爲兩個分佈的K-L距離,只是它不是對稱的,即
.
參考: