機器學(xué)習(xí)(3)——信息論基礎(chǔ)(熵的介紹)

信息論基礎(chǔ)

??在講述熵的時候,我想先引入一個新的東西——信息量勾笆,信息是用來減少隨機不確定性的東西(即不確定性的減少)贝淤。對于事件來說,它發(fā)生的概率越大制市,那么它所含有的信息量就越低,這很好理解,例如你今天去吃飯這個事件,這件事假定是一個必然事件的話收擦,那么它所含有的信息只有吃飯這一件,那么假設(shè)這件事的概率越低禀酱,你也許會因為生病而不想吃飯,也許你隨著心情來決定是否吃飯牧嫉,它所含有的信息量就變大了剂跟。那么對于交叉熵中的熵,這又是一個什么東西呢酣藻?
??對于理工科的讀者來說曹洽,這個東西并不難以理解,高中化學(xué)曾經(jīng)學(xué)習(xí)過熵的一些概念辽剧∷拖化學(xué)中的熵是指一個體系中的混亂程度,事實上對應(yīng)我們機器學(xué)習(xí)中的熵是類似的怕轿。一個事物越混亂偷崩,那么很顯然它就包含了更多的信息。
??熵有許多種撞羽,交叉阐斜、信息熵、相對熵以及條件熵等等诀紊。

信息熵

??信息熵是由信息論之父香農(nóng)提出來的谒出,它用于隨機變量的不確定性度量,先上信息熵的函數(shù)圖片邻奠。

Figure_1.png

??先上信息熵的公式:
H(X)=-\sum_{x \in X}p(x)logp(x)

??我們可以用
log\frac{1}{P}
來衡量不確定性笤喳。P是一件事情發(fā)生的概率,概率越大碌宴,不確定性越小杀狡。
??可以看到信息熵的公式,其實就是
log\frac{1}{P}
的期望贰镣,就是不確定性的期望捣卤,它代表了一個系統(tǒng)的不確定性忍抽,信息熵越大,不確定性越大董朝。
??注意這個公式有個默認前提鸠项,就是X分布下的隨機變量x彼此之間相互獨立。還有l(wèi)og的底默認為2子姜,實際上底是多少都可以祟绊,但是在信息論中我們經(jīng)常討論的是二進制和比特,所以用2哥捕。
??信息熵在聯(lián)合概率分布的自然推廣牧抽,就得到了聯(lián)合熵:
H(X,Y)=-\sum_{x \in X} \sum_{y \in Y}p(x,y)logp(x,y)

??當(dāng)X, Y相互獨立時,
H(X, Y) = H(X) + H(Y)

??當(dāng)X和Y不獨立時遥赚,可以用
I(X, Y) = H(X) + H(Y) - H(X, Y)
衡量兩個分布的相關(guān)性扬舒,這個定義比較少用到。
??下面這個例子很好的說明了這個問題

取自知乎
比如賭馬比賽凫佛,有4匹馬{ A, B, C, D}讲坎,獲勝概率分別為{ 1/2, 1/4, 1/8, 1/8 },將哪一匹馬獲勝視為隨機變量X屬于 { A, B, C, D } 愧薛。
假定我們需要用盡可能少的二元問題來確定隨機變量 X 的取值晨炕。
例如,問題1:A獲勝了嗎毫炉? 問題2:B獲勝了嗎瓮栗? 問題3:C獲勝了嗎?
最后我們可以通過最多3個二元問題瞄勾,來確定取值费奸。
如果X = A,那么需要問1次(問題1:是不是A进陡?)货邓,概率為1/2
如果X = B,那么需要問2次(問題1:是不是A四濒?問題2:是不是B换况?),概率為1/4
如果X = C盗蟆,那么需要問3次(問題1戈二,問題2,問題3)喳资,概率為1/8
如果X = D觉吭,那么需要問3次(問題1,問題2仆邓,問題3)鲜滩,概率為1/8
那么為確定X取值的二元問題的數(shù)量為
E(N)=\frac{1}{2}\cdot1+\frac{1}{4}\cdot2+\frac{1}{8}\cdot3+\frac{1}{8}\cdot3=\frac{7}{4}
回到信息熵的定義伴鳖,會發(fā)現(xiàn)通過之前的信息熵公式,神奇地得到了:
H(X)=\frac{1}{2}log_2(2)+\frac{1}{4}log_24+\frac{1}{8}log_28=\frac{7}{4}bits
在二進制計算機中徙硅,一個比特為0或1榜聂,其實就代表了一個二元問題的回答。也就是說嗓蘑,在計算機中须肆,我們給哪一匹馬奪冠這個事件進行編碼,所需要的平均碼長為1.75個比特桩皿。
很顯然豌汇,為了盡可能減少碼長,我們要給發(fā)生概率p(x)較大的事件泄隔,分配較短的碼長l(x)拒贱。這個問題深入討論,可以得出霍夫曼編碼的概念佛嬉。
霍夫曼編碼就是利用了這種大概率事件分配短碼的思想逻澳,而且可以證明這種編碼方式是最優(yōu)的。我們可以證明上述現(xiàn)象:
為了獲得信息熵為H(X)的隨機變量X的一個樣本巷燥,平均需要拋擲均勻硬幣(或二元問題)H(X)次(參考猜賽馬問題的案例)
信息熵是數(shù)據(jù)壓縮的一個臨界值(參考碼長部分的案例)

*Kullback-Leibler*****散度

??我們通常將 Kullback-Leibler 散度稱之為相對熵或者 KL距離 赡盘,如果我們對于同一個隨機變量 x 有兩個單獨的概率分布P(x)Q(x)号枕,我們可以使用KL散度來衡量這兩個分布的差異缰揪。
??在機器學(xué)習(xí)中,P往往用來表示樣本的真實分布葱淳,比如[1,0,0]表示當(dāng)前樣本屬于第一類钝腺。Q用來表示模型所預(yù)測的分布,比如[0.7,0.2,0.1]赞厕。直觀的理解就是如果用P來描述樣本艳狐,那么就非常完美。而用Q來描述樣本皿桑,雖然可以大致描述毫目,但是不是那么的完美,信息量不足诲侮,需要額外的一些“信息增量”才能達到和P一樣完美的描述镀虐。如果我們的Q通過反復(fù)訓(xùn)練,也能完美的描述樣本沟绪,那么就不再需要額外的“信息增量”刮便,Q等價于P。
??KL散度的計算公式:
D_{KL}(p||q)=\sum_{i=1}^np(x_i)log_2\frac{p(x_i)}{q(x_i)})
n為事件所有的可能性绽慈,D_{KL}的值與p恨旱、q分布接近程度呈正相關(guān)關(guān)系辈毯。

交叉熵

??交叉熵可以看做 Kullback-Leibler散度 的特例,展開KL散度的公式:
D_{KL}(p||q)=\sum_{i=1}^np(x_i)log_2p(x_i)-p(x_i)log_2q(x_i)
??而之前我們給出的信息熵的公式是:
H(p)=-\sum_{i=1}^ip(x_i)logp(x_i)
??交叉熵公式是:
H(p,q) = -\sum_{i=1}^np(x_i)log_2(q(x_i))
??很容易發(fā)現(xiàn)搜贤,D_{KL}(p||q)+H(p)=H(p,q)谆沃。也就是說,如果H(p)是一個常量的時候入客,交叉熵和相對熵是完全等價的管毙。
??看到這里,你也許會困惑為什么有KL散度和交叉熵兩種算法桌硫?為什么他們可以用來求分布的不同夭咬?什么時候可以等價使用?這是一種解釋:

  • 熵的意義是對A事件中的隨機變量進行編碼所需的最小字節(jié)數(shù)铆隘。
  • KL散度的意義是“額外所需的編碼長度”如果我們用B的編碼來表示A卓舵。
  • 交叉熵指的是當(dāng)你用B作為密碼本來表示A時所需要的“平均的編碼長度”。

??大多數(shù)情況下膀钠,交叉熵和相對熵都是等價的掏湾,那么既然等價,顯然使用更為簡單的公式肿嘲。

一點總結(jié)

??說了那么多融击,你或許會問,熵究竟有什么用處雳窟。交叉熵常常用作算法中的損失函數(shù)尊浪。為什么可以這樣?因為機器學(xué)習(xí)算法本質(zhì)上就是讓模型學(xué)習(xí)到的分布與真實數(shù)據(jù)之間的分布越小越好封救。我們的 Kullback-Leibler 散度反映的不就是擬合程度嗎拇涤?交叉熵可以和很多概率模型完美的結(jié)合。所以一般邏輯思路是誉结,為了讓學(xué)到的模型分布更貼近真實數(shù)據(jù)分布鹅士,我們最小化模型數(shù)據(jù)分布與訓(xùn)練數(shù)據(jù)之間的KL散度,而因為訓(xùn)練數(shù)據(jù)的分布是固定的惩坑,因此最小化KL散度等價于最小化交叉熵掉盅。因為等價,而且交叉熵更簡單更好計算以舒,所以我們還是使用交叉熵做為主要的計算公式趾痘。

我的掘金:WarrenRyan

我的簡書:WarrenRyan

歡迎關(guān)注我的博客獲得第一時間更新 https://blog.tity.online

我的Github:StevenEco

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市稀轨,隨后出現(xiàn)的幾起案子扼脐,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件瓦侮,死亡現(xiàn)場離奇詭異艰赞,居然都是意外死亡,警方通過查閱死者的電腦和手機肚吏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進店門方妖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人罚攀,你說我怎么就攤上這事党觅。” “怎么了斋泄?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵杯瞻,是天一觀的道長。 經(jīng)常有香客問我炫掐,道長魁莉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任募胃,我火速辦了婚禮旗唁,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘痹束。我一直安慰自己检疫,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布祷嘶。 她就那樣靜靜地躺著屎媳,像睡著了一般。 火紅的嫁衣襯著肌膚如雪抹蚀。 梳的紋絲不亂的頭發(fā)上剿牺,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天企垦,我揣著相機與錄音环壤,去河邊找鬼。 笑死钞诡,一個胖子當(dāng)著我的面吹牛郑现,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播荧降,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼接箫,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了朵诫?” 一聲冷哼從身側(cè)響起辛友,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后废累,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體邓梅,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年邑滨,在試婚紗的時候發(fā)現(xiàn)自己被綠了日缨。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡掖看,死狀恐怖匣距,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情哎壳,我是刑警寧澤毅待,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站归榕,受9級特大地震影響恩静,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蹲坷,卻給世界環(huán)境...
    茶點故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一驶乾、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧循签,春花似錦级乐、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至乞旦,卻和暖如春贼穆,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背兰粉。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工故痊, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人玖姑。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓愕秫,卻偏偏與公主長得像,于是被迫代替她去往敵國和親焰络。 傳聞我的和親對象是個殘疾皇子戴甩,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,689評論 2 354

推薦閱讀更多精彩內(nèi)容