1. 程式人生 > >資訊量,熵,交叉熵,相對熵與代價函式

資訊量,熵,交叉熵,相對熵與代價函式

1. 資訊量

資訊的量化計算:

解釋如下:

資訊量的大小應該可以衡量事件發生的“驚訝程度”或不確定性:

如果有⼈告訴我們⼀個相當不可能的事件發⽣了,我們收到的資訊要多於我們被告知某個很可能發⽣的事件發⽣時收到的資訊。如果我們知道某件事情⼀定會發⽣,那麼我們就不會接收到資訊。 也就是說,資訊量應該連續依賴於事件發生的概率分佈p(x) 。因此我們想要尋找⼀個基於概率p(x)計算資訊量的函式h(x),它應該具有如下性質:

  1. h(x) >= 0,因為資訊量表示得到多少資訊,不應該為負數。
  2. h(x, y) = h(x) + h(y),也就是說,對於兩個不相關事件x和y,我們觀察到兩個事件x, y同時發⽣時獲得的資訊應該等於觀察到事件各⾃發⽣時獲得的資訊之和;
  3. h(x)是關於p(x)的單調遞減函式,也就是說,事件x越容易發生(概率p(x)越大),資訊量h(x)越小。

又因為如果兩個不相關事件是統計獨⽴的,則有p(x, y) = p(x)p(y)。根據不相關事件概率可乘、資訊量可加,很容易想到對數函式,看出h(x)⼀定與p(x)的對數有關。因此,有

滿足上述性質。

2. 熵(資訊熵)

對於一個隨機變數X而言,它的所有可能取值的資訊量的期望就稱為熵。熵的本質的另一種解釋:最短平均編碼長度(對於離散變數

離散變數:

連續變數:

3. 交叉熵

現有關於樣本集的2個概率分佈p和q,其中p為真實分佈,q非真實分佈。按照真實分佈p來衡量識別一個樣本的熵,即基於分佈p給樣本進行編碼的最短平均編碼長度

為:

如果使用非真實分佈q來給樣本進行編碼,則是基於分佈q的資訊量的期望(最短平均編碼長度),由於用q來編碼的樣本來自分佈p,所以期望與真實分佈一致。所以基於分佈q的最短平均編碼長度為:

 上式CEH(p, q)即為交叉熵的定義。

4. 相對熵

將由q得到的平均編碼長度比由p得到的平均編碼長度多出的bit數,即使用非真實分佈q計算出的樣本的熵(交叉熵),與使用真實分佈p計算出的樣本的熵的差值,稱為相對熵,又稱KL散度

KL(p, q) = CEH(p, q) - H(p)=

 

相對熵(KL散度)用於衡量兩個概率分佈p和q的差異。注意,KL(p, q)意味著將分佈p作為真實分佈,q作為非真實分佈,因此KL(p, q) != KL(q, p)。

5. 機器學習中的代價函式與交叉熵

p(x) 是資料的真實概率分佈,q(x) 是由資料計算得到的概率分佈。機器學習的目的就是希望q(x)儘可能地逼近甚至等於p(x) ,從而使得相對熵接近最小值0. 由於真實的概率分佈是固定的,相對熵公式的後半部分(-H(p)) 就成了一個常數。那麼相對熵達到最小值的時候,也意味著交叉熵達到了最小值。對q(x) 的優化就等效於求交叉熵的最小值。另外,對交叉熵求最小值,也等效於求最大似然估計(maximum likelihood estimation)。 特別的,在logistic regression中, 
p:真實樣本分佈,服從引數為p的0-1分佈,即XB(1,p)  p(x = 1) = y p(x = 0) = 1 - y
q:待估計的模型,服從引數為q的0-1分佈,即XB(1,q)  p(x = 1) = h(x) p(x = 0) = 1-h(x) 其中h(x)為logistic regression的假設函式。
兩者的交叉熵為: 

對所有訓練樣本取均值得: 
這個結果與通過最大似然估計方法求出來的結果一致。使用最大似然估計方法參加部落格 Logistic Regression. 

Ref:

《模式識別與機器學習》1.6節

http://blog.csdn.net/rtygbwwwerr/article/details/50778098

https://www.zhihu.com/question/41252833