
機器學習中,繞不開的一個概念就是熵 (Entropy),資訊熵。資訊熵常被用來作為一個系統的資訊含量的量化名額,進而可以進一步用來作為系統方程優化的目标或者參數選擇的判據。
今天在逛論文時突然看到資訊熵這個名詞,我啪的一下就記起來了,很快啊!!這不是我大一第一節資訊資源管理概論課講到的第一個專業名詞嗎,資訊熵我可熟了,章口就來,資訊熵是負熵 .......淦,負熵又是啥。好家夥,一整門課的知識都還給老師了,隻記得老師給我們大肆推薦的《JinPingMei》...... orz,對不起老師我錯了,快逃!!
為了贖罪,求生欲滿滿的我馬上、很快啊,就把資訊熵給複習了一遍,連帶條件熵都給複習了,真不戳!
好吧,開個玩笑。因為前段時間在看一篇新詞發現的論文時注意到裡面的算法模型将資訊熵作為了一個特征向量作為輸入來進行挖掘。才發現原來資訊熵在文本挖掘領域也有應用嗎?仔細一想,自然語言和資訊論有交叉好像也挺正常的,後來百度一看,好家夥,原來在機器學習裡也是有廣泛應用的。突然記起學決策樹時模型參數選擇算法時就有熵(Entropy)和基尼系數的概念,原來我還是有認真聽課的好嗎?好的,其實當時隻知道對應ID3和CART算法,至于原理?(算了算了太燒腦了,做個調參俠不好嗎,哪個精度高用哪個管那麼多幹嘛......别學我!看看我眼裡的眼淚你就知道了~)
翻出當時的作業???好家夥,這波DDL截止前5分鐘寫出來的結論就很強,果然DDL可以讓我們有勇氣把shit交給老師是真理!(本人實踐檢驗過的,還在不斷實踐中)
回到正題,原理還是要懂的,萬一哪天就可以吹牛逼了呢!!!
說到資訊熵,首先先了解一下什麼是資訊量?
資訊量顧名思義資訊的量,我們可以了解作資訊量是資訊的度量機關,就和我們可以用秒來度量時間一樣,用一生來度量愛一樣......掌嘴,整天不務正業想啥呢)
資訊量和事件的機率相關,發生機率越大的事說明資訊量越小,反之,發生機率越小的事說明資訊量越大。這其實很好了解,我們說太陽從東邊升起了,那不是常識嗎,還用你說?這句話資訊量就很小了。但如果你說,太陽從西邊升起了,我們第一反應肯定是???的确,資訊量很大,要不是方位感有問題就是世界末日了哈哈哈
當然,資訊量肯定是不能為負的,但是可以為0。(看什麼看,别整什麼無中生有暗渡成倉了,盡說廢話)
由此,我們可以大緻歸納為:一個事件的資訊量是與其發生機率呈負相關的,且不能為負。
抛開資訊量,我們先上一下資訊熵的公式
假設P(Xi) 表示随機事件X為 Xi 的機率,那麼此時事件X的資訊熵為:
其實這個公式并不複雜,不要一看到公式就懵好嗎?
我們可以很明顯的看到,資訊熵H(X)和事件機率P(X)的對數相關。
回到資訊量,假如有2個不相關事件x,y,我們可以推出:
我們從兩個事件中得到的資訊量總和h(x,y) = h(x)+h(y)
由于兩個事件不相關,其事件機率P(x,y) = P(x)P(y)
這個時候,其實可以初步看出h(x)和P(x)的對數是相關的(對數中的相乘的真數求導後是相加形式)
進一步推導,我們可以得到公式:**h(x) = -log2*P(x)**
是不是又懵逼了,為啥有個負号???為啥底數是2???
不慌,看了一下大佬的解釋瞬間開竅:
負号是為了確定資訊量保持一個非負的狀态(畢竟你要求導嘛!!)
底數為2:因為我們隻需要滿足低機率事件高資訊量的公式需求,此時對數的選擇其實是不限的。但遵循資訊論的普遍傳統,我們使用2作為對數的底(不要問我資訊論的普遍傳統哪冒出來的,我也不知道啊哈哈哈)
好了,資訊熵和資訊量的公式都出啦,相信大家也都很明顯察覺到它們的相似之處了。總結一下:
資訊量度量的是一個事件發生所帶來的資訊,而資訊熵則是在事件結果出來之前對可能産生的資訊量的一個期望
即: H(x) = sum(P(x)h(x)) = -sum(P(x)log2P(x))
轉換一下,即為:
什麼是條件熵呢?
百度百科告訴我們:條件熵_H(X|Y)_表示在已知随機變量_Y_的條件下,随機變量 X 的不确定性。
直接上公式:
是不是,感受到撲面而來的機率論的氣息,好像知道又不确? 來,上例子:
假如有一個黑箱子,裡面有10個球,6個白球,4個黑球,其中有7個球球面是光滑的,其中白球都為光滑,外加一個黑球,其他3個黑球球面是粗糙的,很明顯:
摸到白球的機率為:6/10=3/5
摸到黑球的機率為:4/10=2/5
摸到球面光滑的機率為:7/10=7/10
摸到球面粗糙的機率為:3/10=3/10
我們把摸到的球的顔色作為事件Y, 我們再假設事件X為摸到的球的球面是否光滑為事件X
那麼此時
H(Y|X=球面) = p(X =光滑)H(Y|X=光滑)+p(X =粗糙)H(Y|X=粗糙) (1)
又已知事件Y的資訊熵H(Y) = -3/5log3/5 -2/5log2/5 (2)
p(X =光滑)=7/10; (3)
p(X =粗糙)=3/10; (4)
H(Y|X=光滑)= -6/7log6/7 -1/7log1/7 (7個光滑的球中6個白球,1個黑球) (5)
H(Y|X=粗糙)= -log1 (3個粗糙的球都為黑球) (6)
将(2)、(3)、(4)、(5)、(6)代入(1)中,即可得到答案!!!
(是不是有種聯考解題既視感hhh,老師說公式列完整,解沒求出來隻扣2分,可以拿98分)
此文首發于:https://www.wujunchao.top/?p=134
一半是現實,一半是夢想~
一念花開,一念花落~