坤鵬論:沒有信息熵,就不可能在電腦和手機上聽音樂、看電影?

2020-12-06 坤鵬論

對於很多事情,千萬別因為自己的眼界將自己困在井底。你不知道?基本上並不代表沒有!只是你不知道而已。——坤鵬論

一、信息熵為了讓信息壓縮得更小

通過前面幾天坤鵬論的分享學習,相信大家已經明白了信息熵在通信系統中的核心作用之一——如何把信息量最大化。

香農在他的《通信的數學理論》論文中指出:

任何信息都存在冗餘,冗餘大小與信息中每個符號(數字、字母或單詞)的出現概率或者說不確定性有關。

因此,信息熵公式可以視為——第一次用數學語言闡明了概率與信息冗餘度的關係。

所以,信息熵的作用顯而易見,就是為了讓信息壓縮得更小。

怎麼變得更小,信息熵提供了方法和度量。

香農研究的重點是,在通信中,信息以多長的一組編碼為合理,太短,無法正確還原,太長,就有冗餘,損失效率。

所以信息熵公式不是文字效率公式,是碼長的節約或冗餘,而不是信息本身的節約或冗餘。

就像前面文章舉過的香農本人設計的例子:

Most people have little difficulty in reading this sentence.

他說,這句話有很多冗餘字符。

如果你的英文比較好,就算把其中所有元音字母都去掉,你也能猜出來這句話是什麼,比如:

Mst ppl hv lttl dffclty n rdng ths sntnc.

這個去除一句話中冗餘字符的過程,就是「壓縮」。

當然,你還可以把其中的介詞——in和定冠詞——this也去掉,照樣能明白什麼意思。

這不僅讓坤鵬論想到了咱們古人的文言文,那簡直就是一種完美的、古老的高度壓縮文體。

而我們常用的成語、諺語等也是。

香農認為,英語是冗餘度比較高的語言,內在的冗餘度約為50%。

如果考慮更大範圍的統計效應,擴展到句和段落的層面,他估計冗餘度會進一步升高到約75%。

漢字的信息熵比英文字母的高很多,而信息熵表示的是可以輸入的信息量。

因此,同樣長度的一句中文和英文,中文的信息量就會高出許多。

同樣一本書,如果翻譯成中文,就會薄出許多。

很有趣的是,正因為英文字母的信息熵相對小,可輸入信息少。

所以,英語更勤於把意思表達得更清楚、準確,減少歧義。

而中文的信息熵高,可輸入信息多,很少的字就能使信息的確定性增強。

於是,中文更傾向於精煉。

所以,中國人學起英語的語法來,會覺得難。

很可惜,雖然香農為資訊時代提出了革命性的理論,但他並沒有很好應用信息熵。

因為當時的通信主要是發電報、打電話,客觀講,字符壓縮的意義並不大。

但是,網際網路時代,特別是音視頻的壓縮,成為了關鍵。

沒有壓縮算法,我們就不可能在電腦和手機上聽音樂、看電影。

雖然香農沒有發明具體的壓縮算法。

但是,所有壓縮算法的理論源頭都是香農的理論。

正如他的同事羅伯特·法諾在多年後回憶道:

「使得錯誤概率任意小?從來沒有人這樣想過!我不知道他是如何得到了這個洞見,而他又是如何使自己相信這件事是可能的。但現如今,幾乎所有的現代通信理論都是基於他的這項工作。」

二、最好的壓縮實踐之一——霍夫曼編碼

1.什麼是Unicode編碼?

如今的計算機系統的字符一般採用的是等長的編碼方式,也就是每個字符的編碼長度相等。

比如:Unicode編碼系統,它的中文名稱為統一碼,又叫萬國碼、單一碼。

它是計算機科學領域裡的一項業界標準,包括字符集、編碼方案等。

我們都知道計算機只能處理數字,要處理文本的話,就必須先把文本轉換為數字,這樣計算機才能處理。

前面坤鵬論在講比特時提到過,8個比特(bit)=1個字節(byte),一個字節能表示的最大的整數是255(2-1=255)。

按道理講,任何人都可以約定一套文本與二進位數字對應的編碼表,比如:0=A,B=1……

不過,這樣的結果只能讓互相通信時一片混亂,就是雞同鴨講的翻版。

所以,美國國家標準學會制定了一種標準的單字節字符編碼方案,用於基於文本的數據,它就是著名的ASCII (American Standard Code for Information Interchange)——美國信息交換標準代碼。

ASCII編碼發表於1967年,最後一次更新是1986年。

一共定義了128個字符,佔用0~127來表示大小寫英文字母、數字和一些符號,比如大寫字母A的編碼是65,小寫字母z的編碼是122。

但是,如果要表示字符眾多的中文,一個字節顯然是不夠,至少需要兩個字節,並且還得保證不能和ASCII編碼衝突。

於是中國制定了GB2312編碼,用來把中文編進去。

類似情況也發生在日文和韓文等其他語言。

為了解決ASCII編碼的局限,達到統一全世界所有文字編碼的目的,Unicode應運而生。

1990年開始研發,1994年正式公布。

它把所有語言都統一到一套編碼裡面,為每種語言中的每個字符設定了統一併且唯一的二進位編碼。

也就是說,世界所有語言都統一成了一種編碼語言,從而可以跨語言、跨平臺進行文本轉換、處理。

最直觀的體現就是,亂碼問題變成了歷史問題,不再困擾我們。

Unicode編碼用雙字節表示一個字符,因此每個字符用16bit的二進位位來編碼。

而原有的英文編碼從單字節變成雙字節,只需要把高字節全部填為0即可。

理論上,Unicode編碼可以對2^16=65536種字符進行編碼,足夠編碼世界上所有文字符號,甚至包括不斷增加表情符。

2.什麼是霍夫曼編碼?

Unicode編碼實現了一統全世界語言的編碼標準。

但是,如果你的目標是使目標文本的編碼總長度最短,這種等長編碼方式顯然不是最優方案。

此時,香農的信息熵就可以大顯神威了,最簡單的方法就是,對出現概率高的字符用比較短的長度進行編碼。

世界上第一套以香農信息熵為理論的編碼是香農-法諾編碼。

法諾就是前面提到的法諾,他的全名為羅伯特·馬利歐·法諾。

義大利裔美籍計算機科學家。

是麻省理工學院電機工程與計算機科學榮譽教授。

也曾在貝爾實驗室工作,是香農的同事,專長於資訊理論。

香農-法諾編碼是他與香農共同開發出來的,發表時間為1949年。

話說,時間到了1951年。

當時一個名叫大衛·霍夫曼的年輕人在麻省理工學院攻讀博士學位。

他選修了法諾的資訊理論課程。

期末時,法諾給出的學期報告題目是:查找最有效的二進位編碼。

霍夫曼發現自己無法證明哪個已有編碼最有效,於是就轉向了創造最有效的編碼。

就這樣,世界上誕生了霍夫曼編碼(Huffman Coding)。

它的核心同樣依據信息熵——通過符號出現概率編碼。

道理也不複雜:

出現概率高的字母用較短的編碼;出現概率高的使用較長的編碼。

這就使得編碼後的字符串能夠達到無損壓縮數據的目的。

由於霍夫曼每個編碼的長度不像Unicode那樣固定不變,會隨著符號概率的長度變化,所以,這類編碼表也被稱變長(chang)編碼表。

舉個簡單例子說明一下。

比如:在英文中,e的出現概率最高,而z的出現概率最低。

利用霍夫曼編碼對一篇英文進行壓縮時,e極有可能用一個比特來表示,而z則可能花去25個比特。

用普通的編碼方法時,每個英文字母都要佔用一個字節,即8個比特。

兩種方法相比,霍夫曼編碼的e使用了一般編碼的1/8的長度,z則使用了3倍多。

顯然,如果能夠對英文中各個字母出現概率的準確估算,就可以大幅度提高無損壓縮的比例。

1952年,霍夫曼發表論文《一種構建極小冗餘編碼的方法》,在其中講了這個編碼方法。

他後來成為了計算機科學家。

霍夫曼編碼效率高,運算速度快,實現方式靈活,從 20世紀60年代直到現在,在數據壓縮領域得到了廣泛的應用。

許多知名的壓縮工具和壓縮算法裡(如WinZip、gzip、MP3、JPEG等),都有霍夫曼編碼的身影。

不過,霍夫曼編碼再牛也跑不出香農信息熵的手掌心,因為那是幾乎所有編碼方法的理論源泉。

並且,霍夫曼編碼所得的編碼長度只是對信息熵計算結果的一種近似,並不能真正逼近信息熵的極限。

正應了香農的資訊理論中所說,任何一個文件被無損壓縮後的結果不可能小於其熵,超過了必然有損。

比如:如果一個文件有20GB,其信息熵只有20MB,那麼實現一個1000倍的壓縮完全可能。

反之,如果一個文件只有100MB,其信息熵高達90MB,該文件無論如何也不可能無損壓縮到20MB。

讓我們聯繫信息熵琢磨一下為什麼?

信息熵代表著不大確定性的程度。

在二元概率中,知道了不確定性的程度,也意味知道了"還能說多少",這就是資訊理論的信息量。

如果壓縮超過了信息熵,就意味著丟失了"還能說多少"的一部分,必然使信息量不完整,也就是有損失了。

三、為什麼總是提高帶寬,卻不研究怎麼壓縮得小?

坤鵬論看到有人說,為什麼我們努力提高網絡帶寬,而不是去想辦法壓縮文件尤其是視頻文件的大小呢?

這個問題要分成兩部分回答。

第一,其實,人們並沒有停止研發更好壓縮方案的不懈努力。

之前在文章中講過,人類,特別是西方科學界有個傳統——追求極限。

(註:為什麼?可看坤鵬論前面的文章,也可看《從一到無窮大》這本書)。

因此,對於很多事情,千萬別因為自己的眼界將自己困在井底。

你不知道?

基本上並不代表沒有!

只是你不知道而已。

最典型的表現就是,在公司中,經常會有員工抱怨別的部門的員工太清閒,不公平。

第二,壓縮有極限。

這個問題中最大的原因還是香農在資訊理論中所揭示的,壓縮有極限,極限是信息熵,超過了必有損失。

而且,現在確實有在特定條件下的數據壓縮已經達到了理論極限。

所以,除了人們不知道的原因外,還有就是樹上低垂的果實都被摘了,再往上應該還有果實,但是很難攀上去,且果實越來越少。讓人感覺壓縮技術貌似停止不前的樣子。

因此,相對來說,帶寬和存儲容量的提升雖然也有極限,但目前看來還有很大的空間,暫時觸碰不到極限。

四、為什麼圖像影音文件可以有損壓縮?

當然,上面所說的是僅限於無損壓縮,對於有損壓縮,壓縮了多少倍都有可能。

最典型的有損壓縮就是MP3、JPG、RM等圖像影音文件。

它們背後的原因在於,人類的視覺和聽覺的敏感程度是有限的。

也就是,人類可以天然地容納一些視聽方面的信息損失,而沒什麼感覺。

於是,這也給多媒體信息的壓縮帶來了可能。

就像人耳感受聲音的頻率範圍是20~20kHz,於是,MP3去掉了大量的冗餘信號和無關信號,比如:那些人耳不太敏感的高頻分量,然後再經過量化,將其轉換成霍夫曼編碼,形成MP3位流。

視頻呢?

我們小時候都應該玩過走馬燈,或是在書的一角,相同位置一頁頁畫上動作慢慢有變化的小人,然後,用手指按住讓書頁快速翻動,小人就動了起來。

其實,視頻就是這樣連續的圖像序列,由連續的幀構成,一幀即為一幅圖像。

由於人眼具有視覺暫留效應,當幀序列以一定速率播放時,我們看到的就是動作連續的視頻。

正因為連續的幀之間相似性極高,不確定性低,信息熵低,通過前一幀更容易猜出下一幀,所以也就有了壓縮的可能。

視頻壓縮就是對視頻進行編碼壓縮,去除空間、時間維度的冗餘。

本文由「坤鵬論」原創,轉載請保留本信息

請您關注本百家號,坤鵬論自2016年初成立至今,創始人為封立鵬、滕大鵬,是包括百度百家、頭條、雪球、搜狐、網易、新浪等多家著名網站或自媒體平臺的特約專家或特約專欄作者,目前已累計發表原創文章與問答6000餘篇。

相關焦點

  • 坤鵬論:信息是熵?錯!
    要想正確理解香農的信息熵,一定要時刻提醒自己,香農他老人家只關心字數,而不關注信息內容和質量。——坤鵬論再次對今天的文章修訂的時候,坤鵬論發現,「信息不是說了什麼,而是還能說什麼。」這個總結簡直絕妙、經典至極。
  • 坤鵬論:熵,粉墨登場!
    好了,坤鵬論把公式寫上,是為了文章更完整,大部分朋友了解一下即可。從上面的公式中,我們又得出了一個熱力學第二定律的表述:——在兩個不同溫度間工作的所有熱機,不可能有任何熱機的效率比可逆熱機的效率更高。熱力學第二定律則主要分為兩個表述:克勞修斯表述:熱,總是從高溫物體傳到低溫物體,在沒有任何變化的情況下,熱,不可能自發地從低溫物體傳到高溫物體。開爾文表述:不可能從單一熱源吸取熱量,使之完全轉化成功而不產生其它影響。
  • 坤鵬論:為什麼漢字信息熵大,表現出來的卻是言簡意賅?
    這個世界最偉大的不變永遠是本質。——坤鵬論昨天《是信息熵越大,信息量越多?還是信息熵越大,信息量越少?》發布後,有網友和坤鵬論進行了討論。既然訊息已經存在,它的信息熵也就能夠直接計算出來。恰如坤鵬論所說,信息熵是過去時的。而它們的最終目標都是,要將包裹或訊息完整、準確地送達接收者——也就是使接收者達到完全的確定性。它們都不可能做那種送到一半就不送的事。
  • 坤鵬論:香農說,信息是能夠用來消除不確定性的東西
    從宣傳角度看,許多時候,不一定是事情本身大,只是它被重複的次數夠多。——坤鵬論前兩天,我們充分討論了信息的特徵。今天,坤鵬論主要講幾個與資訊理論、信息熵相關的基本概念,如果沒有它們作為基礎,理解後面的內容會比較困難些。同時,再講一下香農給信息的定義是什麼。
  • 坤鵬論:為什麼同一本書中文版比英文版薄?
    信息熵高,不代表說的話、寫的文字的品質和內涵就比別人高。——坤鵬論一、香農如何計算文字系統的信息熵?在只關心文字數量不考慮內容的香農眼中,管它是英文字母,還是漢字,都只是一個符號而已。這就是坤鵬論早先提到的,很多看似複雜無解的事情,只有敢於用奧卡姆剃刀披荊斬棘般地精簡後,才能找到清晰的路徑。
  • 坤鵬論:人類就是麥克斯韋妖
    ——坤鵬論坤鵬論在《熵這隻時間之矢要將宇宙帶向死寂?》、《物理學神獸之拉普拉斯獸和薛丁格的貓》講了物理界的三隻神獸。今天就再好好說說麥克斯韋妖,這個我們就算把四隻神獸收集齊了。《熱的理論》中對熱力學的總結蠻到位,且非常嚴謹,坤鵬論也將其分享給大家,請大家一起細細品味學習:「熱力學所確立的最可靠的事實之一在於,一個封閉於容積不變而且不導熱的罩壁之中的系統,溫度和壓力處處保持均一。如果不做功的話,不可能產生溫度或壓力的不均勻性,這就是熱力學第二定律。
  • 坤鵬論:你可以不懂物理 但不能不明白能量守恆定律
    ——坤鵬論不管是複雜性科學的混沌,還是《從自然界的未解之謎到流動裡面的人生哲理》所說的湍流等概念,它們背後都暗含著一個現象——從有序到無序、混亂。這個現象不得不讓人想起了——熵。同時,再回頭看自己以前文章中對熵的介紹,真的太淺薄了,羞愧難當!所以,這次的系統學習和分享,也是坤鵬論的補課。為了能夠學的、思考的、寫的透徹、深入些,本周的文章將對這個話題展開拆成幾篇來分享。
  • 坤鵬論:滿滿哲學味道的熱力學第二定律 它是宇宙級的基本規律
    以前講過,人最怕的不是不快樂,而是無聊。同時,在學習上,啃點有難度的、能讓人思考的、且存在五十年以上的知識。塔勒布提到的林迪效應,真的非常有道理。今天,坤鵬論繼續分享對於熱力學第二定律的學習。反而,如果你不明白熱力學的發展過程,上來就去理解熵,再沒有哲學基礎,必然會暈頭轉向。這也是網上許多講熵的文章不僅沒起到普及作用,反而把人們越搞越暈的原因。同時,在學習過程中,坤鵬論也發現,要想學什麼,必須得買些嚴謹的圖書對照學習,網上的文章實在謬誤太多了。
  • 坤鵬論:不是還原論不明白,只是這個非線性的世界太複雜
    ——坤鵬論在閱讀和分享《反脆弱》時,坤鵬論的腦海中總是不斷閃現複雜性科學的相關知識。兩相驗證,總會心有戚戚然。所以,在分享之初,我就和大家約定了,最後一定要重溫複雜性科學。前幾天,從科學之母的哲學開始講起,我們應該大致明白了,為什麼當今科學界與學科界都如此盛行數學模型?
  • 坤鵬論:關於巴門尼德 海德格爾和羅素怎麼看?
    記憶是一切智慧之母,記憶產生知識,而語言和文字存儲了記憶,就是它們塑造了人類、知識、文明和歷史,任何一門學問,都是一種對世界的言說,沒有言說就不會有學問,哲學也是如此。——坤鵬論不得不承認,巴門尼德否定現象和運動的觀念太過離經叛道。特別是「眼見也不為實」讓人們實在難以接受。
  • 坤鵬論:海德格爾——在世界之中存在(上)
    想想也很正常,如果兩者真能劃上等號,隨著教育程度越來越高,人類早該聖人遍地走,世界早已和平。——坤鵬論胡塞爾之後,他的兩位學生馬克斯·舍勒和馬丁·海德格爾,被認為是現象學的衣缽傳承。舍勒是毋庸置疑的接班人,他為現象學在各社會學科的實際應用所做貢獻有目共睹,成就斐然。而海德格爾則比較難以歸類,關鍵就是其志並不想僅囿於現象學,他的目標是自成一派的哲學大宗師。
  • 坤鵬論:人類為何如此奇妙?因為我們以負熵為食!
    坤鵬論在看了大量關於熵的文章後也發現,把熵當成混亂,當成不可用能量的佔了絕大多數。包括我自己,起初犯了這樣的錯,現在不小心還是會犯這樣的錯。這裡就再次溯本求源,起碼看過這篇文章的大家,不再犯錯。的其他部分的表述也顯露出,他很可能也像很多人那樣錯誤地將熵定義為不可用的能量、混亂了。坤鵬論再三斟酌,如果僅就這一段來說,其實我們只要將負熵視為薛丁格創造的一個新詞,它與秩序同義,也就沒什麼問題了。
  • 坤鵬論:芝諾的悖論(上)
    ——坤鵬論 首先,哲學沒有標準答案,這是最重要的原因。 其次,凡是史上留名的哲學家和哲學思想,你我能讀到的,都經過了成千上百年時間的考驗而屹立不倒,自然不是隨隨便便就被你我駁倒的。 坤鵬論的建議是,學其論證分析,通過思考內化,將其轉化為自己的思想,並也能如此這般這般如此地推演出來。
  • 信息熵是怎樣煉成的 | 紀念資訊理論之父香農
    撰文 | 丁玖(南密西西比大學數學教授)紀念"資訊理論之父"香農的最好方式,莫過於重溫一下他怎樣定義信息熵的數學思想,去理解現代資訊理論這個基本概念——僅用初等代數即可推導,令人賞心悅目,流連忘返!確定性過程在數學裡是司空見慣的現象。
  • 坤鵬論:瑪麗的房間和哲學殭屍 心靈哲學二元論派的詰問
    等類似想法,因為90%以上的時候你其實根本就不知道怎麼回事。——坤鵬論隨著不斷地學習、思考,坤鵬論越來越感覺到,很多我們所謂的常識真的經不起推敲和深究,甚至只要稍稍用簡單的邏輯拷問,便會敗下陣來。今天,坤鵬論繼續分享心靈哲學的另一派——二元論,看過後,相信你會對上面這段話更有感觸。心靈哲學的二元論包括實體二元論和性質二元論。
  • 坤鵬論:語言系統的信息熵到底有什麼意義?
    ——坤鵬論一、計算語言系統的信息熵到底有什麼意義?通俗地講,在資訊理論中,就是該語言中每個字符轉化為二進位表達平均需要幾個比特。香農的資訊理論採用的是電報局的辦法,只計字數不問內容。但是,這也會遇到問題。那就是字數和所採用的符號系統(語言文字)密切相關,而各種符合系統的情況又千差萬別。
  • 坤鵬論:如果生命可以永恆 熱力學第二定律就是個笑話
    ——坤鵬論隨著對於熱力學第二定律以及熵的學習,坤鵬論越來越覺得人懂得概率論的基本概念是多麼重要。世界上暴富的人真的不多,到閉眼那刻還是人生贏家的更是鳳毛麟角。但是,世界上靠積累成為富翁的卻比比皆是。二、重溫:熱力學第二定律和概率坤鵬論在之前的文章中說過,統計力學主要是在物理學中引入了數學的概率論。
  • 坤鵬論:柏拉圖的著作原本只是為了普及哲學?
    這既可以表示作者猶豫不決和模稜兩可的態度,也可以表示作者清楚地知道並深信著,人的思想永遠都不可能達到完全的統一,意見分歧和思想對立都是再正常不過的事情。顯然,柏拉圖屬於後一種情況。同時,這樣的寫作可以隨時開始,隨時結束,不必非要有個黑白分明的結論,使得作者的寫作也自由了很多。
  • 熱力學熵:進化論
    但如果用熵的觀點來說,生物進化是個熵減小的過程。事實上,一個生命體的成長也正是進化之路的縮影,而這個過程仍然是熵減小的。聽起來似乎不對,因為熱力學第二定律告訴我們熵不會自發減小;那麼這是否意味著進化論和熱力學第二定律之間存在矛盾呢?
  • 坤鵬論:一切,為意識而存在?
    我思故我在,我不思我就消失。——坤鵬論經過了以下階段性系列文章的追根溯源:《人的大腦可能本身就是一部機器!》《還原論尋靈魂不遇 活力論復活助陣》我們應該明白,科學界都不否認意識的存在,只是更多篤信還原論的科學家認為它是物質的,是可以看得見、摸得著的。