深度學習助力資料壓縮,一文讀懂相關理論

wujiy發表於2019-10-29

本文對資料壓縮的「前世今生」進行簡要的回顧,重點分析基於深度學習的有失真壓縮、無失真壓縮方法,對基於深度學習資料壓縮進行了探討和展望。

1、資料壓縮背景知識

眾所周知,資訊理論和機器學習之間具有很強的關聯性,人們經常把它們稱為「同一枚硬幣的兩面」。二者一個特別重要的聯絡體現在資料概率模型和資料壓縮方法之間的本質等價性。夏農的信源編碼定理(Shannon-Fano Coding)可以看作是描述這一思想的基本定理,而哈夫曼編碼(Huffman Coding)、算術編碼(Arithmetic Coding)和最近發展起來的非對稱數字系統(Asymmetric Numeral Systems,ANS)等都是經典的基於統計模型實現資料壓縮的演算法,即基於對資訊中單個字元出現頻率的統計而設計的。除去以統計概率為基礎的方法外,經典的資料壓縮方法還包括基於字典模型的壓縮技術,例如 LZ77、LZ78、LZW 等,以及熵編碼 (Entropy Encoding),遊程編碼 (Run-Length Encoding) 等。

我們在日常中經常用到的資料壓縮的工具基本都是上述幾種經典方法的變種、組合或優化,很少有單獨使用某一種技術。例如,gzip 的壓縮原理是:先使用 LZ77 演算法的一個變種進行壓縮,對得到的結果再使用靜態或動態哈夫曼編碼的方法進行壓縮;bzip2 的壓縮原理為:使用了一個遊程編碼器進行編碼,接下來塊排序壓縮和 Move-to-Front(MTF ) 變換進一步產生大量相同符號,進一步使用另一個遊程編碼器進行編碼。最後結果用 Huffman 編碼,將一個訊息頭與其打包;LZMA 是 Deflate 和 LZ77 演算法改良和優化後的壓縮演算法,而 Deflate 則是同時使用了 LZ77 演算法與哈夫曼編碼的一個無損資料壓縮演算法。但是,面對大資料時代的資料處理,傳統的資料壓縮方法顯得越來越力不從心,無法滿足大體量、快速增長和結構複雜等特徵的資料壓縮,尤其是實時資料壓縮的處理要求。

近年來,機器學習領域經歷了爆炸式的發展,一些研究人員使用傳統神經網路模型在資料壓縮領域獲得了較好的效果。將原始影像經由神經網路處理後,僅需儲存神經網路權重而無需儲存影像本身的資訊,從而在不降低影像質量的情況下獲得了較高的壓縮比。以此為基礎,將神經網路與其它壓縮技術結合、改進神經網路結構、改進神經網路的訓練演算法等,進一步推進了神經網路資料壓縮中的應用。但是,神經網路是淺層網路,模型的收斂速度、穩定性、權值更新的有效性等都存在不足,此外,神經網路依賴於有標籤的預訓練資料,這在實際應用場景中很難滿足。

相關文章