深度模型壓縮策略——量化與二進制化

翻譯原文:Model Compression and Acceleration for Deep Neural Networks

量化是通過減少表示每個權重所需的比特數(the number of bits)來壓縮原始網絡。

文獻[6]文獻[7]對參數值使用 K 均值標量量化。

文獻[8]表明8-bit量化可以在準確率損失極小的同時實現大幅加速。

文獻[9]在基於隨機修約(stochastic rounding)的 CNN 訓練中使用16-bit定點(fixed-point)表示權重【譯者注:文獻[9]中指出,通過後向傳播算法實現的深度神經網絡通常用32-bit浮點來表示權重】,顯著降低內存佔用和浮點運算,同時僅有很小的分類準確率損失。

文獻[10] 提出的方法是首先修剪不重要的連接,重新訓練稀疏連接的網絡。然後使用權重共享來量化權重【譯者注:文獻[10]中表示爲”Weight sharing by scalar quantization”,即“使用標量量化來共享權重”,具體操作是:使用K-means算法,對每一層都做一個weight的聚類,屬於同一個 cluster 的就共享同一個權值大小,而非“使用權重共享來量化權重”】,再對量化後的權重和碼本(codebook)使用霍夫曼編碼,以進一步降低壓縮率。
這裏寫圖片描述
文獻[10]提出的三步壓縮法:修剪、量化和編碼。輸入是原始模型,輸出是壓縮模型。【譯者注:修剪減少了權重的數量,量化減少了權重的比特數,編碼做進一步壓縮。附文獻[10]中原圖】
這裏寫圖片描述

文獻[11]表明Hessian權重可以用於衡量網絡參數的重要性,並且提議最小化Hessian加權量化誤差,以便對網絡參數進行聚類。

文獻[12]介紹了一種新穎的量化框架,將網絡權重的精度降低到三元值。

在每個權重用1-bit表示的極端情況下,即二進制權重神經網絡,還有許多研究直接訓練二進制權重的CNN,例如Binary-ConnectBinaryNetXNORNetworks。 主要思想是在模型訓練期間直接學習二進制權重或激活。 文獻[16]中的系統研究表明,使用反向傳播訓練的網絡可以抵抗(強烈抵抗或彈性抵抗)特定的重量扭曲,包括二進制權重。此類二元網絡有一些缺陷,例如其準確率在處理大型 CNN 網絡如 GoogleNet 時會大大降低;此外,現有的二進制化方法都基於簡單的矩陣近似,忽視了二進制化對準確率損失的影響。爲了解決這個問題,文獻[17]提出了一種具有對角線Hessian近似的近端牛頓算法,該算法直接最小化了由於二元權重造成的損失。文獻[18]中的工作通過隨機二值化權重並將隱藏狀態計算中的乘法轉換爲符號變換,顯著減少了訓練階段浮點乘法的時間。【譯者注:文獻18中的二值化使用的權重值是+1和-1,因此使得乘法可以變爲符號變換,大大節省時間】

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