1. 程式人生 > >資訊熵知乎解釋,感覺很好,幫助理解決策樹演算法

資訊熵知乎解釋,感覺很好,幫助理解決策樹演算法

讓我們說人話!好的數學概念都應該是通俗易懂的。

資訊熵,資訊熵,怎麼看怎麼覺得這個“熵”字不順眼,那就先不看。我們起碼知道這個概念跟資訊有關係。而它又是個數學模型裡面的概念,一般而言是可以量化的。所以,第一個問題來了:資訊是不是可以量化?

起碼直覺上而言是可以的,不然怎麼可能我們覺得有些人說的廢話特別多,“沒什麼資訊量”,有些人一語中的,一句話就傳達了很大的資訊量。

為什麼有的資訊量大有的資訊量小?

有些事情本來不是很確定,例如明天股票是漲還是跌。如果你告訴我明天NBA決賽開始了,這兩者似乎沒啥關係啊,所以你的資訊對明天股票是漲是跌帶來的資訊量很少。但是假如NBA決賽一開始,大家都不關注股票了沒人坐莊股票有99%的概率會跌,那你這句話資訊量就很大,因為本來不確定的事情變得十分確定。

而有些事情本來就很確定了,例如太陽從東邊升起,你再告訴我一百遍太陽從東邊升起,你的話還是絲毫沒有資訊量的,因為這事情不能更確定了。

所以說資訊量的大小跟事情不確定性的變化有關。

那麼,不確定性的變化跟什麼有關呢?
一,跟事情的可能結果的數量有關;二,跟概率有關。
先說一。
例如我們討論太陽從哪升起。本來就只有一個結果,我們早就知道,那麼無論誰傳遞任何資訊都是沒有資訊量的。
當可能結果數量比較大時,我們得到的新資訊才有潛力擁有大資訊量。

二,單看可能結果數量不夠,還要看初始的概率分佈。例如一開始我就知道小明在電影院的有15*15個座位的A廳看電影。小明可以坐的位置有225個,可能結果數量算多了。可是假如我們一開始就知道小明坐在第一排的最左邊的可能是99%,坐其它位置的可能性微乎其微,那麼在大多數情況下,你再告訴我小明的什麼資訊也沒有多大用,因為我們幾乎確定小明坐第一排的最左邊了。

那麼,怎麼衡量不確定性的變化的大小呢?怎麼定義呢?
這個問題不好回答,但是假設我們已經知道這個量已經存在了,不妨就叫做資訊量,那麼你覺得資訊量起碼該滿足些什麼特點呢?

一,起碼不是個負數吧,不然說句話還偷走資訊呢~

二,起碼資訊量和資訊量之間可以相加吧!假如你告訴我的第一句話的資訊量是3,在第一句話的基礎上又告訴我一句話,額外資訊量是4,那麼兩句話資訊量加起來應該等於7吧!難道還能是5是9?

三,剛剛已經提過,資訊量跟概率有關係,但我們應該會覺得,資訊量是連續依賴於概率的吧!就是說,某一個概率變化了0.0000001,那麼這個資訊量不應該變化很大。

四,剛剛也提過,資訊量大小跟可能結果數量有關。假如每一個可能的結果出現的概率一樣,那麼對於可能結果數量多的那個事件,新資訊有更大的潛力具有更大的資訊量

,因為初始狀態下不確定性更大。

那有什麼函式能滿足上面四個條件呢?負的對數函式,也就是-log(x)!底數取大於1的數保證這個函式是非負的就行。前面再隨便乘個正常數也行。
a. 為什麼不是正的?因為假如是正的,由於x是小於等於1的數,log(x)就小於等於0了。第一個特點滿足。
b. 咱們再來驗證一下其他特點。三是最容易的。假如x是一個概率,那麼log(x)是連續依賴於x的。done
c。四呢?假如有n個可能結果,那麼出現任意一個的概率是1/n,而-log(1/n)是n的增函式,沒問題。
d。最後驗證二。由於-log(xy) = -log(x) -log(y),所以也是對的。學數學的同學注意,這裡的y可以是給定x的條件概率,當然也可以獨立於x。

By the way,這個函式是唯一的(除了還可以多乘上任意一個常數),有時間可以自己證明一下,或者查書。

ok,所以我們知道一個事件的資訊量就是這個事件發生的概率的負對數

最後終於能回到資訊熵。資訊熵是跟所有可能性有關係的。每個可能事件的發生都有個概率。資訊熵就是平均而言發生一個事件我們得到的資訊量大小。所以數學上,資訊熵其實是資訊量的期望。(表示式參考其它答案或者看下面)
H=-\sum_{x\epsilon U}{P(x)\log P(x)}

至於為什麼用“熵”這個怪字?大概是當時翻譯的人覺得這個量跟熱力學的熵有關係,所以就用了這個字,君不見字裡頭的火字旁?

而熱力學為什麼用這個字?這個真心不知道。。。