由香農定理看數據壓縮的本質

        開門見山上結論:所謂的壓縮就是在不損失信息量的前提下,用新的描述方式表示原有的數據,而這種方式佔用的空間更少。

        先來個小例子:有一段文字“我我我我我我有點喜歡喜歡喜歡喜歡lxlxlxlxlxlxlx”一共14個漢字加上14個字符,現在採用某種壓縮算法,將其壓縮爲這樣一種形式“6個我1個有點4個喜歡7lx”一共9個漢字加上6個字符(包括數字跟字母),顯然,總的空間變小了,這就是數據壓縮。

        在這裏我們只討論無損壓縮,先簡單介紹一些有關香農定理的東西,香農這哥們研究的東西的確很有意義,我只能說他太有才了,想想我們隨便說的一句話“明天我要發財了”,我想知道這句話到底包含多少信息量呢,在他之前沒人搞出來這東西,他那一天才公式一下子解決了這個問題,用數學方法量化了信息量,具體是什麼公式就不粘貼了,我們只需要知道根據相關概率可以計算出這句話的信息量,他稱之爲信息熵。

        下邊來分析分析一個問題,有一段字符:aaabcdegxy,在理想情況下,每個字符都隨機出現,那麼單個字符的信息熵根據香農公式可以計算出來信息熵爲4.7,這段10個字符總的信息量爲47,但是,一般我們都知道,在人類的語言文字表達中,字符出現的概率並不是隨機的,有的字符出現頻率高,而有的低,下邊的圖有一些統計值,在這種情況下,每個字符的平均信息熵重新計算一下大約爲2.6,遠遠小於完全隨機的情況,這樣10個字符總的信息量爲26

                                          

        好了,有了上邊的概念之後,假如我們想要用一段字符描述自己所要表達的信息,也就是說我們要保證總的信息量,定下這個總量,下一步,如果想要用最少的字符來完成任務,那麼每個字符的平均信息熵就必須保證要取最大,但是根據上一段的事實,我們在平時的表達中每個字符的平均信息熵並未達到最理想的4.7,所以,要完成這個任務,我們需要用更多的字符來表示,即用增大字符數量來解決,導致了空間浪費,這就是數據冗餘的源泉,有什麼辦法解決這個問題呢,數據壓縮正式登場,數據壓縮就是要用一種新的描述形式使得單個字符的平均信息熵更大,那麼總的信息量不變的前提下,所需的字符總數就會變小,這樣就壓縮了空間。

        下邊再想一個問題,利用壓縮軟件我們可以大大減小文件大小,那能不能一直壓縮下去,將壓縮文件繼續壓縮,使它越來越小,要是能這樣該多好。這個問題仔細想想就是一個我們初中都學過的能量守恆原理,我們說這個文件的信息總量是不變的,無論你怎麼壓縮,由於單個字符的信息熵有極限值,所以壓縮文件也必然有個極限,不可能一直壓縮下去。

        最後介紹一個信息熵理論的應用,主要思想是香農公式:

                 

        某一次試驗之前我們並不能確知試驗的結果,那麼這一試驗可能獲得的信息量的期望是香農公式(上邊圖,還是粘貼過來了)確定,由於這一公式的形式非常類似物理中“熵”的定義,香農把這一平均信息量稱爲“信息熵”。由函數的性質可知,當各種結果出現的概率均等時,此次試驗能獲得的信息量的期望最大。下邊說說一個應用:有 100 個外表相同的球,已知其中有一個與其他球的質量不同。現要求用沒有砝碼的天平在最少次數中找出這個球,問怎樣的稱法纔是最佳的?我們把每次稱量都視爲一次試驗,試驗結果有三種:天平偏向左邊、天平偏向右邊重或者相等,那麼爲獲得最大的信息量,我們應該使三種情況出現的概率相等,即把小球平均分成 份進行稱量,也就是一般答案中給出的最佳稱量方法。使用信息論還可以計算出最少所需要的稱量次數,因爲100個小球中知道某球是假球且偏重或者偏輕這一信息所包含的信息量是 log 2 200,每次測量所能獲得的信息是 log 2 3,那麼需要測量的最小次數就是 次。然而具體到每次測量,由於不能保證將球平均分爲 份,並不一定能有 log 2 3 的信息熵,所以這個 次只是測量的下界,具體能否達到還要看實際的步驟。

 

參考:http://www.zhihu.com/question/22539777

           http://www.zhihu.com/question/20207589

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章