本文將介紹信息量,熵,交叉熵,相對熵的定義,以及它們與機器學習算法中代價函數的定義的聯繫。轉載請保留原文連接:http://www.cnblogs.com/llhthinker/p/7287029.htmlhtml
信息的量化計算:算法
解釋以下:機器學習
信息量的大小應該能夠衡量事件發生的「驚訝程度」或不肯定性:函數
若是有⼈告訴咱們⼀個至關不可能的事件發⽣了,咱們收到的信息要多於咱們被告知某個極可能發⽣的事件發⽣時收到的信息。若是咱們知道某件事情⼀定會發⽣,那麼咱們就不會接收到信息。 也就是說,信息量應該連續依賴於事件發生的機率分佈p(x) 。所以,咱們想要尋找⼀個基於機率p(x)計算信息量的函數h(x),它應該具備以下性質:學習
又由於若是兩個不相關事件是統計獨⽴的,則有p(x, y) = p(x)p(y)。根據不相關事件機率可乘、信息量可加,很容易想到對數函數,看出h(x)⼀定與p(x)的對數有關。所以,有優化
知足上述性質。編碼
對於一個隨機變量X而言,它的全部可能取值的信息量的指望就稱爲熵。熵的本質的另外一種解釋:最短平均編碼長度(對於離散變量)。spa
離散變量:.net
連續變量:htm
現有關於樣本集的2個機率分佈p和q,其中p爲真實分佈,q非真實分佈。按照真實分佈p來衡量識別一個樣本的熵,即基於分佈p給樣本進行編碼的最短平均編碼長度爲:
若是使用非真實分佈q來給樣本進行編碼,則是基於分佈q的信息量的指望(最短平均編碼長度),因爲用q來編碼的樣原本自分佈p,因此指望與真實分佈一致。因此基於分佈q的最短平均編碼長度爲:
上式CEH(p, q)即爲交叉熵的定義。
將由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)。
Ref:
《模式識別與機器學習》1.6節
http://blog.csdn.net/rtygbwwwerr/article/details/50778098
https://www.zhihu.com/question/41252833