資訊熵

29 回覆
14 Like 0 Dislike
2018-12-17 16:36:59
原文出處: https://www.tecky.io/blog/_%E9%87%8F%E5%BA%A6%E8%B3%87%E8%A8%8A



資訊熵

資訊量有方法量度嗎?當然有,一句十個字訊息跟一百字訊息所包含的資訊當然大相逕庭。光看字數準確嗎?同一語言還可,然而不同語言不同字數所表達的 意思不同,本身根本不可比。看檔案大小可以嗎?有時可以有時不可以,因為不同檔案類型大小不同,光看檔案大小並不準確。 因此,電腦科學中有一個數學方式表達資訊量,此概念就是資訊熵(Information Entropy)。

熵 (粵音商) (entropy) 原本是物理學的概念,代表的是事物混亂的程度:熵愈高,事愈亂。資訊理論 (Information Theory) 之父夏農 (Claude Shannon) 於1948 年將熵引入電腦科學,成為代表資訊量的量度,因此又名為 夏農熵 (Shannon)

資訊熵的概念也很簡單,就是熵愈高,資訊愈多。也就是愈混亂,資訊愈多。

驟看之下,如此結論違反直覺,不是愈整齊愈多資訊嗎? 我們可以用以下簡單的例子,想像一下身處一個只有四個字母的世界,在左手邊 Bucket 1 中是清一色的 A,中間 Bucket 2 有一半是A,Bucket 3 則 ABCD 各有二。


Source:https://medium.com/udacity/shannon-entropy-information-gain-and-picking-balls-from-buckets-5810d35d54b4

用資訊熵去量度,Bucket 3 的資訊會最高,Bucket 2 的資訊在中間, Bucket 1 的資訊最低。何解呢?資訊熵量度的是,從Bucket中抽一個字母,平均需要多少條問題才可以判定該字母是A,B,C 還是 D。

・ Bucket 1全部都是A,如何抽都是 A,一條問題也不需要,資訊熵自然是0。
・ Bucket 2 有一半是A,一半不是 A,約需要 1.75 條問題,所以資訊熵是 1.75,詳情可以看 http://bit.ly/2Ch4MDz
・ Bucket 3 ABCD 各有兩個,兩條問題可以造成四個可能,所以資訊熵是 2。

由簡單角度看,Bucket 1最整齊,Bucket 3最混亂,根據愈混亂,資訊愈多原則,Bucket3最多資訊亦非常合理。

用一個非常生活化的例子去理解,剛買的硬碟就是Bucket 1,非常整齊,裝落資料的硬碟就像Bucket 3,資料塾多塾少就容易理解得多。

數學計算

當然作為一個數學概念,資訊熵不會流於表面,「吹水」而已。要計算資訊熵,須要用到所謂的夏農公式:


Source:http://bearcave.com/misl/misl_tech/wavelets/compression/shannon.html

無學過數學,無須驚慌。其實很簡單,Pi 其實就是相應字母的概率,假如有一條訊息只有廿六個英文字母,隨機抽取每一 個概率都是1/26. ln 是自然對數,如果大家學過 e,也就是歐拉數的話,就知道ln(e) = 1,跟大家在學校學過的 log10(10) = 1 及 log10(100) = 2 一樣,只是底數不是10而是這個特別的e。

最後那個橫著的 M ,就是 Summation 相加的意思,所以全條數學算式的意思就是如下:

每個字母的概率與其概率之自然對數相乘,再將每個字母的結果相加,相加之和的負數就是夏農熵。

知道理論後,大家可以這個網站 (https://planetcalc.com/2476/) 嘗試計算不同字串的夏農熵, 例如如果你放入一句廿六個英母都有的句子: The quick brown fox jumps over the lazy dog. 計算機計算出來的夏農熵將會是 4.39,也就是起碼需要五個位元才可以為此句編碼。

總結

常言道:電腦科學是資訊的科學,沒有資訊,也就沒了電腦科學。夏農熵作為電腦表達資訊量一個重要數學基礎,亦是由此開始了現代電腦的發展。

__________________________________________________________

文章出處簡介:

Tecky Academy
由本地人創辦的香港微學位 coding bootcamp,參照美國矽谷模式,一心改變 HK NO IT 的行業境況,致力培訓有質素的 developers。有意入行的巴絲們,可於三個月內由零成為專業的開發者,一次過學會 Git/Gitlab, HTML, CSS, JavaScript, TypeScript, Node.js, Express, Jest, Socket.io, PostgreSQL, AWS EC2/S3/Cloudfront/Route 53, Gitlab CI, React, Redux, Tensorflow 等等⋯⋯ 絕對唔係求其做下網站,禁兩下又咩網絡營銷,我地全部打真章!

高抬各巴絲貴手 like/follow 我地嘅 Facebook: http://bit.ly/2BPcSmB
有咩問題可以 tg 小弟: https://t.me/itdogltd


2018-12-17 16:41:31
IT狗留言支持表示學到嘢
2018-12-17 16:49:11
IT狗留言支持表示學到嘢
想知information entropy嘅實際作用係咩
2018-12-17 17:53:59
你貼個Shannon entropy條式係base2

今次呢篇還可以 不過只係講定義 無再講深入野
2018-12-17 18:59:49
前幾日midterm考咗
2018-12-17 21:49:28
諗過喺連登開一啲內容會apply information theory嘅post

成事嘅話就唔使寫intro嘢,直接link過嚟
2018-12-17 21:57:42
講啲咩 編碼理論
2018-12-17 22:01:42
本 IT 狗準備投胎過美國矽谷重生
2018-12-17 22:01:51
冷門嘢嚟,正常冇人聽過
2018-12-17 22:02:31
講兩句
2018-12-17 22:06:31
讀過下,路過
2018-12-17 22:15:19
簡單嚟講就係講點樣用information theory將自然語言嘅一啲現象解釋為最佳化溝通效率嘅行為
2018-12-17 22:17:13
支持
2018-12-17 22:18:29
拎錯圖,原文已更正,再次感謝巴打提點

2018-12-17 22:20:03
...natural language有大量redundancy去令個channel更robust喎清
2018-12-17 22:20:30
........................今次變base 10...
2018-12-17 22:21:32
冇錯,所以可能會提下noisy channel
2018-12-17 22:22:44
佢本身係內文錯,但係以為條式錯
2018-12-17 22:23:13
...咁...同直接講shannon個theory...有咩分別...
2018-12-17 22:25:23
其實無話要用邊個base既 唔同單位啫 base2咪bit囉 我諗同你講都係講廢話 巴打應該本身識

我只係想point out inconsistency...無話一定要咩base
2018-12-17 22:30:59
因為呢個唔係個重點而係背景 只係提及下一啲理科人會比較熟悉嘅嘢

我想講嘅係點樣連結去某啲語言現象 例如英文省略that與否同maintain uniform information density嘅關係:

https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2896231/

或者講下zipfian嘅word frequency distribution:
https://www.pnas.org/content/pnas/108/9/3526.full.pdf
2018-12-17 22:32:26
sor我本身唔係cs/ee field,未見過其他base

孤陋寡聞請見諒
2018-12-17 22:36:24
查返cover and thomas開頭其實有講,我自己唔記得

自隊一打
2018-12-17 22:41:30
微學位=.=
吹水台自選台熱 門最 新手機台時事台政事台World體育台娛樂台動漫台Apps台遊戲台影視台講故台健康台感情台家庭台潮流台美容台上班台財經台房屋台飲食台旅遊台學術台校園台汽車台音樂台創意台硬件台電器台攝影台玩具台寵物台軟件台活動台電訊台直播台站務台黑 洞