一、先講個人:一個鍾意將數學黐落機器嘅工程師
我哋每日用緊嘅網路、壓縮檔、串流,甚至 Git 嘅差分,底層都有一個幾乎隱形嘅假設:資訊可以量化,而且就算通道好嘈,訊息都仍然可以可靠咁傳到。
呢個假設唔係自古以來就有。1948 年,Bell Labs 一位叫 Claude Shannon 嘅工程師兼數學家,用一篇論文將「通訊」由「盡量令電線乾淨、訊號大聲」,變成一門有單位、有極限、有編碼策略嘅科學。寫過 API、調過 TCP,或者為「呢個 JSON 有幾多 redundancy」拗過交嘅人,會發覺 Shannon 講嘅嘢其實好近身。
Claude Elwood Shannon,1916 年 4 月 30 日喺美國密歇根州 Petoskey 出世,喺附近嘅 Gaylord 長大;2001 年 2 月 24 日喺麻省 Medford 離世,終年 84 歲,晚年受 Alzheimer 症困擾。
佢嘅履歷好「工程師」:1936 年喺密歇根大學攞到數學同電機兩個學士學位,之後去 MIT 讀研究院,1940 年同時攞到電機碩士同數學博士。1941 年加入 Bell Labs,MIT News 記佢同 Bell Labs 嘅聯繫一直維持到 1972 年;1956 年佢返 MIT 做客座教授,1958 至 1978 年任 Donner Professor of Science。
佢有兩份工作,後來都被人講到好神:
- 碩士論文:用 Boolean 代數分析 relay/switching circuits(「開/關」即係「真/假」)。
- 1948 年論文:資訊理論。
呢篇會集中講第二樣。第一樣當係開場,因為佢早已顯示 Shannon 最擅長將抽象數學黐返落真實機器度。
二、1937/1938:開關即邏輯
Shannon 喺 MIT 兼職幫 Vannevar Bush 部 differential analyzer 做嘢——嗰部係用齒輪同軸嚟解微分方程嘅類比計算機。佢留意到電話交換機入面成排 relay:每個 contact 只有開或者關兩個狀態。
George Boole 十九世紀嘅代數,啱啱好就係處理「真/假」兩值邏輯。Shannon 將兩樣嘢對齊:電路可以寫成布林表達式,亦可以用代數嚟簡化。電路設計由「試到啱為止」,變成可以事先推算。
時間線要講清楚,因為唔同來源會混用年份:
- 論文工作同提交大約喺 1937 年(MIT 論文封面嘅日期係 1937 年 8 月 10 日)。
- 期刊版喺 1938 年刊登於 Transactions of the AIEE,題目係 A Symbolic Analysis of Relay and Switching Circuits。
- MIT 目錄將碩士學位記作 1940 年,同佢嘅 PhD 同一年。
Harvard 嘅 Howard Gardner 後來評價,呢份可能係成個世紀最重要、亦最出名嘅碩士論文。講法誇張,但方向冇錯:數位電路設計嘅理論語言,就係由呢度開始變成主流。我哋今日寫 if (a && !b),背後其實係同一條橋——邏輯同開關,本質上係同一件事。
三、1948:通訊嘅「基本問題」係咩?
二次大戰期間,Shannon 喺 Bell Labs 做過保密通訊同密碼相關嘅工作;1949 年先公開發表 Communication Theory of Secrecy Systems,後人普遍認為呢篇將密碼學由「藝術」推向「科學」。戰時經驗亦令佢諗清楚一件事:訊息要喺嘈雜環境入面可靠咁到達。
1948 年,佢喺 Bell System Technical Journal 分兩期發表 A Mathematical Theory of Communication:
- 七月:Vol. 27, No. 3,頁 379–423
- 十月:Vol. 27, No. 4,頁 623–656
開場嗰句幾乎人人都引用過,而佢喺呢度係刻意唔講意義:
The fundamental problem of communication is that of reproducing at one point either exactly or approximately a message selected at another point.
大意係:通訊嘅基本問題,係喺一點準確(或者大致準確)咁重現喺另一點揀出嚟嘅訊息。
訊息有冇意思?Shannon 話,對工程問題嚟講無關。重要嘅係:實際送出嚟嗰條訊息,係由一大堆可能訊息入面揀出嚟嘅其中一條。系統要為每一條可能都準備好,因為設計嗰陣你根本唔知邊條會出現。
呢一刀切得好犀利:語意交返畀語言學同哲學;工程要量度嘅,係可以區分嘅選擇有幾多、有幾難估。 照呢個定義,WhatsApp 一個「已讀」、同事講嘅一個冷笑話,都算係資訊——只要佢哋減少咗接收端嘅不確定性。至於笑話好唔好笑、聽唔聽得明,就係另一層嘅問題。
四、Bit:一個字點樣變成單位
Shannon 用對數嚟量度資訊量;Hartley 喺 1928 年已經指出,對數係最自然嘅選擇。底數揀 2 嗰陣,單位叫 binary digits,簡稱 bits——Shannon 喺論文入面寫明,呢個字係 J. W. Tukey 建議嘅。
一個有兩個穩定狀態嘅裝置(例如 relay 或者 flip-flop)可以儲 1 bit。 個咁嘅裝置就可以儲 bit,因為總狀態數係 ,而 。
所以「bit」唔係市場推廣用語,而係二選一嘅對數量度。硬碟寫「256 GB」、網卡寫「1 Gbps」,成條單位鏈都可以追返到呢度。順帶一提:用底數 10,單位就係 decimal digit;用自然對數 ,單位就係 nat。換底只係乘一個常數。
五、熵 H:唔係氣氛詞,係不確定性
Shannon 問:有一堆可能事件,概率分別係 ,我哋對「邊個會發生」有幾唔確定?
佢提出幾條合理要求:量度要對概率連續;如果所有結果等概率,選項越多就應該越不確定;一個選擇拆成幾個先後步驟嚟做,總不確定性應該係各步驟嘅加權和。喺呢幾條假設底下,唯一嘅形式係:
用 嘅話,單位就係 bit/符號。Shannon 原文寫嘅係 , 只係揀單位;用 bit 就即係令 同 對齊。佢亦指出,呢個形式同統計力學入面嘅熵(例如 Boltzmann 嘅 H)好相似,所以借用咗「entropy」呢個名。
關於呢個名,有個流傳好廣嘅故仔,出處係 Myron Tribus 同 Edward McIrvine 1971 年喺 Scientific American 發表嘅 Energy and Information:據 Shannon 憶述,von Neumann 叫佢用「entropy」,一來統計力學早已用緊呢個名,二來「根本冇人真係知熵係咩,辯論嘅時候你永遠佔上風」。好玩,但當軼事睇就夠。
有幾個直覺,之後講壓縮同編碼會好有用:
- 完全確定(某個 ,其餘全部係 0)→ 。冇驚喜,就冇資訊。
- 等概率嗰陣 最大: 個同樣可能嘅結果,。
- 公平銅板: → bit。偏得好緊要嘅銅板(例如 99% 出公)→ 接近 0,因為你幾乎一早知道答案。
要留意,高熵唔等於「好」,只係代表更難預測、更難再壓細:一份幾乎全係重複空白嘅 JSON 熵好低,一堆亂數或者密文熵就好高。
用 Shannon 論文入面嘅一個例子:來源會產生 A、B、C、D 四個符號,概率分別係 1/2、1/4、1/8、1/8。計出嚟 bit/符號。Shannon 喺論文入面畀出嘅編碼係:A → 0、B → 10、C → 110、D → 111。平均長度啱啱好係 1.75,貼正個熵。常見嘅符號用短碼、罕見嘅用長碼——Morse 電碼用最短嘅符號代表 E,就係同一套哲學;Shannon 將呢種直覺變成可以證明嘅界線。
英文有幾「可預測」?Shannon 自己做過示範
論文入面有一段好耐讀、又好好玩嘅實驗:用越嚟越「似英文」嘅隨機過程,砌出假文字。零階(字母等概率、互相獨立)係一堆亂碼;一階用返英文字母嘅頻率;二階、三階再加入 digram、trigram 嘅統計;之後再跳去用詞頻。每升一級,出嚟嘅嘢都更似人話——雖然成個過程完全冇任何「意義」引擎。
Shannon 估計:如果唔理超過大約八個字母距離嘅統計結構,普通英文嘅冗餘大約係五成。呢個數字係幾種獨立方法都得出嘅:計算上面嗰啲近似文字嘅熵、刪走一部分字母再叫人還原,同埋密碼學上嘅已知結果。即係話,我哋寫英文嗰陣,大約一半已經由語言結構決定咗,另一半先係作者真正嘅自由選擇。後來佢同其他人再用猜字實驗量度 redundancy,數字會隨方法同文本而變,但「自然語言遠低於最大熵」呢個結論好穩陣。
做過壓縮或者 log 分析嘅人應該好眼熟:結構越強,就越容易壓;越似亂數,gzip 就越幫唔到手。所以英文文本通常好易壓,已經係高熵嘅亂數或者密文就幾乎壓唔郁。
論文仲開咗個腦洞:冗餘太低,任何字母排列都似合法文字,隨便一格二維字母陣都算填字遊戲;冗餘太高,語言約束又太死,大型填字遊戲反而砌唔出。佢估計,冗餘大約五成嘅時候,大型二維填字遊戲啱啱好變得可能。呢個當然係粗略估算,但可以睇到佢點樣用同一把尺,量度語言同遊戲。
點樣用直覺「感覺」一下 H
其實唔使計晒成條求和式。只要諗:呢個符號、呢個 field,估中嘅機會有幾高?好易估 → 貢獻嘅熵少;好難估 → 貢獻嘅熵多。一封寫咗一半嘅英文電郵,下一個字母往往好易估;一段 AES 密文嘅下一個 byte,估中嘅機會就接近 1/256。Shannon 做嘅,就係將呢種「估唔中嘅程度」變成一個可以相加、可以比較、可以同通道極限對照嘅單位。
六、通道模型:五件套加噪音
Shannon 喺論文 Fig. 1 畫咗一個而家教科書人人照抄嘅示意圖:訊息由資訊源出發,經發射機變成訊號,送入一條會被噪音源干擾嘅通道,再由接收機盡量還原,最後去到目的地。
- 資訊源:產生訊息(字母序列、語音波形、影像……)。
- 發射機:將訊息變成適合通道嘅訊號(編碼、調變)。
- 通道:電線、無線電頻帶、光纖……
- 接收機:做相反嘅操作,盡量還原訊息。
- 噪音:令收到嘅訊號唔等於送出嘅訊號。
重點唔係「噪音好煩」,而係:喺隨機干擾底下,可靠通訊仍然有一個明確嘅上限。
七、嘈雜通道編碼定理:可以可靠,但唔可以貪心
直覺會話:通道越嘈,就要重複得越多;重複夠多,錯誤概率先會趨向零,但傳輸速率亦會跟住趨向零。
Shannon 證明:唔係咁。
先用佢論文入面一個數字例子建立直覺。假設二進制符號以每秒 1000 個、等概率咁送出,來源速率就係每秒 1000 bit。通道平均每 100 個符號錯 1 個。第一個衝動可能係話「咁仲有每秒 990 bit」。Shannon 話唔得,因為接收端根本唔知邊幾個位錯咗。正確計法係用 equivocation——即係收到訊號之後,對「實際送咗咩」仍然剩低嘅不確定性。喺呢個例子入面,每個符號大約係 0.081 bit,即係每秒約 81 bit「失咗蹤」,有效速率大約係 每秒 919 bit,而唔係 990。去到極端情況:如果噪音令收到嘅 0/1 同送出嘅完全無關,咁就算「睇落有一半啱」,真正嘅傳輸速率都係 零——擲銅板都一樣會啱一半。
對一條容量係 嘅離散通道,同一個熵率係 嘅來源:
- 如果 :存在一種編碼方法,可以令錯誤率(或者 equivocation)任意咁細。
- 如果 :可以將 equivocation 壓到接近 ,但無論點編碼,都唔可能低過 ;即係話,你冇辦法以高過 嘅速率真正可靠咁傳送。
嘅定義可以寫成:
即係輸入嘅熵,減去「收到 之後對 仍然有嘅不確定性」(equivocation),再對所有輸入分佈取最大值。
呢個就係常講嘅 noisy channel coding theorem(有時叫 Shannon’s theorem 或者 Shannon limit)。佢係一個存在性結果:定理保證存在一組碼,可以令錯誤率任意咁細,同時速率貼近 ,但唔會即刻交一本最佳碼本畀你。證明用嘅係「隨機碼」式嘅存在論證——對工程師嚟講好沮喪,但亦好有趣:最好嘅碼睇落要「夠亂」,先至同噪音嘅亂分得開。實際上,由 Hamming(1950 年代)、Reed–Solomon,到 turbo 同 LDPC(1990–2000 年代),人類花咗幾十年編碼理論先慢慢逼近呢道牆。
對帶限、加性高斯噪音嘅通道,有個著名特例叫 Shannon–Hartley:
係頻寬, 係訊噪比。頻寬同功率可以互相交換,但功率嗰邊係對數回報,唔係線性咁「加一倍馬力就快一倍」。Wi-Fi 明明有幾格訊號都仲係卡、光纖規格表寫住 SNR 同 BER——工程師追緊嘅,好多時就係自己離呢條曲線有幾遠。
呢度有個容易混淆、但好重要嘅對偶:
- 來源編碼(壓縮):剝走可以預測嘅冗餘,令表示長度接近 。
- 通道編碼(糾錯):加返精心設計嘅冗餘,令噪音打唔散訊息。
一個剝、一個加,目標相反,但都圍住同一套熵嘅語言。用 gzip 係前者;Ethernet 嘅 FCS、RAID parity、QR code 嘅糾錯層係後者。
八、前人:Nyquist 同 Hartley
Shannon 一開篇就向兩位前輩致敬:
- Harry Nyquist(1924 年 Certain Factors Affecting Telegraph Speed;1928 年 Certain Topics in Telegraph Transmission Theory):研究電報速度、頻寬同可分辨訊號之間嘅關係。
- R. V. L. Hartley(1928 年 Transmission of Information):用對數衡量資訊,將「可能訊息嘅數量」同傳輸能力連埋一齊。
Shannon 嘅推進在於:將噪音同訊息嘅統計結構一齊納入模型,並且證明可靠通訊有一條硬界線——唔止係「理論上可以送幾多種波形」咁簡單。
九、1949 年嘅書同 Weaver:標題個「A」變咗「The」
1949 年,University of Illinois Press 出版 The Mathematical Theory of Communication,內容係 Shannon 嘅論文,加上 Warren Weaver 寫畀更廣泛讀者嘅導論。Weaver 討論意義、語意噪音呢類「工程層以上」嘅問題;Shannon 嘅本體就仍然堅持語意唔入數。
所以坊間常講嘅「Shannon–Weaver 模型」,其實係 Shannon 嘅數學核心,加上 Weaver 嘅普及同延伸框架。做產品溝通嘅人鍾意引用 Weaver;寫 codec 嘅人就會返去讀 Shannon。
十、點解今日寫軟件嘅人會在意
1. 壓縮有下界
來源編碼定理(source coding theorem)話:長度係 嘅長序列,要無損表示,大約需要 bit;想低過熵就做唔到(喺漸近意義上)。
1952 年,David Huffman 喺 Proceedings of the IRE 發表 A Method for the Construction of Minimum-Redundancy Codes,示範點樣為獨立符號構造期望長度最優嘅前綴碼。今日 ZIP/DEFLATE 一類格式,會用字典法(LZ 系列)加 Huffman(或者類似嘅)變長編碼;哲學上仍然係「用統計冗餘換空間」。
放落日常工程:API 回傳一大嚿重複 field name 嘅 JSON,gzip 之後往往細好多,正正就係 redundancy 喺度發揮作用;已經用 AES 加密過嘅 blob 再 gzip,通常幾乎冇細到,因為密文已經接近最大熵。
2. 錯誤可以對抗,但要付出冗餘
通道編碼係另一面:故意加入可控嘅冗餘,換取抗噪能力。Hamming 碼、CRC、RAID 校驗、TCP 重傳、衛星同深空通訊用嘅強力編碼,全部都係喺「離 有幾遠」同「延遲/複雜度」之間取捨。Shannon 話你可以接近 ;真正做到,就要幾十年工程。
3. 「數位」變成預設語言
一旦資訊嘅原子係 bit,語音、影像、感測器讀數都可以變成同一種貨,再共用同一套壓縮、加密、路由同儲存堆疊。日常嘅 REST payload、protobuf、WebRTC,都係企喺呢個抽象上面。
對做全棧嘅人嚟講,特別有感覺嘅一點係:協議可以分層,因為資訊同載體脫咗鈎。 TCP 唔使知你傳緊 JPEG 定 SQL dump;CDN 可以 cache 一堆 bit,而唔使理解內容嘅語意。Shannon 將「意義」踢出工程賬簿,反而令工程可以規模化——語意就留返畀應用層處理。
4. 密碼同通訊係親戚
Shannon 嘅保密通訊研究同資訊理論係同源嘅:喺敵人眼中,密文要盡量似「最大熵」,睇唔出任何結構。現代密碼學已經遠遠超越 1949 年嗰篇論文,但「資訊洩漏要用概率語言嚟講」呢條路,佢好早就開咗。
十一、黑板以外嘅 Shannon
Shannon 唔止係黑板上嘅公式。以下幾件事當係人味,唔當主菜:
- Theseus(1950 年):一隻識學行迷宮、搵「芝士」嘅機械老鼠。佢嘅「腦」其實係一大堆藏喺迷宮地板下面嘅電路,靠磁鐵帶動隻老鼠。常被視為最早期嘅機器學習示範之一。
- 電腦象棋:1950 年寫咗論文 Programming a Computer for Playing Chess,亦整過只處理殘局嘅下棋機器。1965 年去蘇聯嗰陣,佢親自挑戰前世界冠軍 Mikhail Botvinnik,結果 42 步輸咗,但被認為表現相當唔錯。
- 雜耍同獨輪車:喺 Bell Labs 走廊一路踩獨輪車一路拋波,係流傳甚廣嘅形象;後來佢仲整過雜耍機械,又寫出一條「雜耍公式」。
佢自己亦警惕過資訊理論被吹得太大:1956 年,佢喺 IRE Transactions on Information Theory 寫咗篇只得一頁嘅社論 The Bandwagon,大意係話資訊理論可能已經被吹脹到超過佢實際嘅成就。作為開山祖師親自降溫,係好工程師嘅自覺。
十二、一句帶走:H 同 C
成篇嘢可以收窄成一條流程:來源有熵 ,經壓縮(來源編碼)變成接近 嘅 bit 流;通道有容量 ,上限由噪音決定;只要 ,就可以做到任意咁可靠, 就必然剩低不確定性;中間靠通道編碼加返啱嘅冗餘,接收端先至還原得到原本嘅訊息。
記住一句就夠用:壓縮係去走無用嘅冗餘;通道編碼係加返有用嘅冗餘。 兩者都圍住 同 打轉。
開住 WhatsApp 語音、拉緊 GitHub 嘅大檔,或者喺地鐵睇 4K 預覽圖嗰陣,背後都係呢兩個座標:條通道大概有幾嘈,同埋來源本身有幾多結構可以剝走。唔使計積分,單係有呢兩個座標,已經係戴住 Shannon 嘅眼鏡睇世界。
參考資料
- Claude E. Shannon, “A Mathematical Theory of Communication,” Bell System Technical Journal 27 (July 1948): 379–423; (October 1948): 623–656. 重印 PDF(Harvard 轉載): https://people.math.harvard.edu/~ctm/home/text/others/shannon/entropy/entropy.pdf ;Internet Archive July 期: https://archive.org/details/bstj27-3-379
- Claude E. Shannon, “A Symbolic Analysis of Relay and Switching Circuits,” Transactions of the AIEE 57 (1938): 713–723.(碩士論文期刊版)
- MIT News, “Professor Emeritus Claude Shannon, founder of digital communications, dies at 84,” 2001-02-27: https://news.mit.edu/2001/shannon
- J. J. O’Connor & E. F. Robertson, “Claude E. Shannon,” MacTutor History of Mathematics: https://mathshistory.st-andrews.ac.uk/Biographies/Shannon/
- John Horgan, “Claude Shannon: Tinkerer, Prankster, and Father of Information Theory,” IEEE Spectrum(1992 原文;2016 重刊): https://spectrum.ieee.org/claude-shannon-tinkerer-prankster-and-father-of-information-theory
- Harry Nyquist, “Certain Factors Affecting Telegraph Speed,” BSTJ, April 1924;“Certain Topics in Telegraph Transmission Theory,” AIEE Trans., 1928.
- R. V. L. Hartley, “Transmission of Information,” BSTJ, July 1928.
- Claude E. Shannon & Warren Weaver, The Mathematical Theory of Communication (University of Illinois Press, 1949). Archive.org: https://archive.org/details/in.ernet.dli.2015.503815
- David A. Huffman, “A Method for the Construction of Minimum-Redundancy Codes,” Proceedings of the IRE 40, no. 9 (1952): 1098–1101.
- Myron Tribus & Edward C. McIrvine, “Energy and Information,” Scientific American 225, no. 3 (September 1971): 179–188. https://doi.org/10.1038/scientificamerican0971-179 (von Neumann 建議用「entropy」一名嘅軼事出處)
- Claude E. Shannon, “The Bandwagon,” IRE Transactions on Information Theory 2, no. 1 (March 1956): 3. https://doi.org/10.1109/TIT.1956.1056774
延伸閱讀
-
Jimmy Soni & Rob Goodman, A Mind at Play: How Claude Shannon Invented the Information Age
關係:完整傳記向敘事,補課堂以外嘅性格、Bell Labs 日常同發明癖;讀完論文概念後適合當故事線。 -
原文重讀:Shannon 1948 開首約 10 頁(Introduction + bit/熵定義)
關係:第二手解說再清晰都唔及親自睇佢點樣一句句拆「意義無關」同對數單位;唔使一次讀完成篇。 -
James Gleick, The Information: A History, a Theory, a Flood
關係:將 Shannon 放喺文字、字典、基因、互聯網一條更長嘅「資訊」史入面;適合想睇文化脈絡多過公式嘅讀者。 -
Thomas M. Cover & Joy A. Thomas, Elements of Information Theory(選讀前幾章)
關係:如果想由「故事」轉去可計算嘅定義(互資訊、典型集合、channel coding 現代證明),呢本係標準研究生入門;可只讀熵同 noisy channel 兩章。 -
Claude E. Shannon, “The Bandwagon” (1956)
關係:只得一頁嘅社論,佢親自為資訊理論降溫,同第十一節結尾直接相關。