ResNet壓縮20倍,Facebook提出新型無監督模型壓縮量化方法

2021-01-11 騰訊網

機器之心原創

作者:立早

怎樣用量化方法解決模型壓縮問題?Facebook 近日提出了一個基於向量的量化方法,無需標註數據即可對 ResNet 模型進行20倍壓縮,還能夠獲得很高的準確率。

概述

本文旨在解決類似 ResNet [1] 這類卷積網絡的模型過大,推理速度慢的問題。相比較之前的量化方法,本文提出來一個向量量化方法,其主要思想是保存網絡重建之後的輸出而不是原始無壓縮網絡的權重。本文提出的方法無需標註數據,並且使用對 CPU 推理友好的字節對齊碼本。實驗證明,使用本文方法可對 ResNet 模型進行20倍壓縮,並在ImageNet 上獲得 76.1% 的 top-1準確率。與此同時,可將 Mask R-cnn 壓縮至6MB的大小並保持不錯的準確率。

論文地址:https://arxiv.org/abs/1907.05686

壓縮方法的介紹和比較

神經網絡壓縮一直是個熱門的研究方向,目前的主流方法主要有以下幾種:

低精度訓練[2]。這類方法用低bit權重,優點是可以加速推理過程,利用位操作代替複雜的邏輯操作,但是同時也會帶來一個比較大的精度下降。

量化。向量量化(VQ[3])和乘積量化(PQ[4])是其中的典型。這種量化方法是將原始的高維向量分解至低維笛卡爾積,然後對分解得到的低維向量做量化,這種方法的缺點是對於深度網絡會產生一個笛卡爾漂移。

剪枝。根據一些特定的規則去除部分冗餘的連接或者結構,剪枝方法的訓練時間較長,且需要剪枝和再微調的反覆迭代進行。

調整結構。類似 SqueezeNet[5],NASnet,shuffleNet,MobileNet等,主要依賴的 DepthWise 和 PointWise 卷積,或者通道分類和通道打亂等等。

蒸餾[6-7]。這種方法通常利用大模型或模型組的知識(概率分布)來訓練小模型。

相比較以上的壓縮方法,本文提出的量化方法注重於恢復網絡的輸出。跟PQ方法相比,本文是注重恢復壓縮後的權重。同時,在訓練的過程中,本文也運用了蒸餾的思想,用於提升壓縮網絡的精度。

算法介紹

全連接層量化

背景介紹--PQ 方法介紹

我們知道,PQ 算法(Product Quantization)一開始是由法國 INRIA 實驗室團隊提出的用於圖像壓縮的一種算法,通常被用於信息壓縮和檢索方向。PQ 算法中,以全連接層量化為例。處理全連接層時,我們關注全連接權重,忽略偏差。首先將 W 的每一列分割成 m 個連續的子向量,然後對m*的子向量學習一個碼本。

對於包含 k 個聚類中心的模板 C=,任意 W 的列向量 Wj 可以映射為量化的版本 q(wj)= (ci1,,,cim),其中下標 i1 表示的是 wj 的第一個子向量歸屬的碼本的索引,以此類推其餘的下標。通過量化如下的目標函數(1)來學習碼本。

其中,w^ 表示量化的權重。這個目標函數可以通過 k-means 來最小化。當 m=1 時,PQ等價於 VQ(Vector Quantization),當 m=Cin 時,PQ 等價於標量 k-means。最後,PQ 生成了一個 k^m 大小的隱式碼本。

通過對該算法的一個簡要的回顧,我們不難看出,PQ 算法的重點點在於對權重的恢復,旨在減小壓縮前後的權重信息損失。那麼,這個方法在使用時有何缺點呢?我們可以看看如下的圖(1)。

本文算法以及算法求解

在這之前,我們一直強調本文的主要目的是恢復網絡之後的輸出值,而不是權重值。這其中的原因可以追溯到模型對樣本的擬合能力,具體如下圖所示:

圖1:量化保存權重和本文方法的比較

在圖1中,灰色線代表真實的分類器,紅色線表示量化保存權重的標準方法訓練得到的分類器,而綠色線是本文提出的方法。在in-domain中,可以看出,本文的方法可以比較好的擬合真實的分類器,而標準方法為了擬合out-of-domin領域的數據,在in-domain中反而帶來了錯誤的分類。

筆者認為,該圖從本質上顯示了神經網絡模型在擬合樣布分布的時候,有一定的容錯能力,也就是說對於噪聲點或者異常信息有忽所忽略,而關注於正確的樣本的分布,可以避免模型的過擬合。因此,在量化的時候,算法應該同時學習到模型的擬合能力以及泛化信息,而不是僅僅學習模型的參數信息。因此,引申出本文算法的壓縮目的,恢復壓縮輸出信息,而不是PQ的恢復壓縮權重信息。

因此,本文提出直接最小化重建輸出值誤差,在給定的輸入值x的前提下,本文旨在縮小輸出和重建輸出之間的誤差。改寫目標函數(1)為如下函數(2)。

其中,y=xW表示原始網絡的輸出,

表示重建輸出。

EM求解

E步:分配向量至最近的聚類中心

M步:根據E步組成的集合,更新碼本C。

複雜度分析

此類方法的本質上和 k-means 一致,每一列 m 個維度為 d 的子向量選擇 k 個聚類中心,其算法的時間複雜度為 mkd。因此一個全連接矩陣的 PQ 的時間複雜為C_inC_out*k 。

對於一個常見的網絡結果,卷積層是必不可少的部分,接下來,筆者將介紹如何對卷積層進行壓縮處理的。

卷積層量化

4D卷積分離求解

全連接的權重是個4D的矩陣,首先將這個矩陣reshape成一個二維的矩陣(C_inKK)Cout。然後將轉換之後的矩陣每一維分離成C_in個大小為(kk)大小的子向量。具體如圖(2)所示:

圖2:4D卷積的reshape示意圖

為了保證結果的一致性,同樣的將輸入 X 也 reshape 一下。然後運用目標函數中量化權重。

算法複雜度分析

上面說到,對卷積運用算法壓縮時,首先將 4D 的矩陣 reshape 成(C_inKK)Cout的矩陣,該矩陣可以看為全連接層的權重。接著,對矩陣運用 PQ壓縮。結合3.1中PQ算法的時間複雜度,本文算法的時間複雜度可以表示為(C_inKK)C_out*k(可類比k-means算法)。

其中,K 為卷積核大小,k 為聚類中心的個數。

整個網絡的量化

自底向上的逐層量化

本文輸入一個 batch 的圖像,並從底層向上逐層量化網絡。需要注意的是,在量化的過程中,使用的是當前層的輸出值而不是非壓縮網絡的輸出值。因為,在實驗過程中,使用非壓縮網絡的輸出值會帶來一定的誤差。

微調 codebook

進行了逐層的量化學習之後,需要對整個網絡進行微調。在這個過程中,本文使用非壓縮網絡作為 teacher 網絡來指導壓縮網絡學習。蒸餾學習中,用 Kl 散度來作為蒸餾的損失,並用 SGD 來更新碼本。

整體微調 BN 參數

跟前一個過程相比較,這個過程將BN設置為訓練模式,重複上述微調碼本的過程。

實驗介紹

ImageNet實驗

圖(3):resnet-18和resnet-50的壓縮結果

圖(3)表示的是在resnet-18和resnet-50的壓縮大小和TOP-1之間的關係圖。對比其他的算法,本文的量化方法在更高的壓縮率上保證模型的精度。

表(1) 在給定大小的前提下的模型準確率對比

表(1)表示的是,在限定模型大小的前提下,本文的方法對比目前最優結構的 top-1 準確率,可以發現,本文的方法在半監督的情況下,準確率較高。

Detection實驗

表(2)Mask R-CNN 實驗

表(2)展示的是在 k=256(8bits) 的情況下,模型壓縮因子大概 26 的情況下,量化模型下降約 4 個 AP 。

論文總結和分析

本文作為一篇網絡壓縮方向的論文,從本質上提出來了獨特的量化方法,其提出的保存輸出結果而不是保存權重的思想,從而可以擬合in-domain數據並且忽略out-of-domain的數據,這是很值得借鑑和思考的。從這個思想引申出來的量化方法,延續PQ方法的優點。

本文首要值得借鑑的是對壓縮本質的思考,脫離傳統的壓縮權重的思想,另闢蹊徑恢復輸出。

從操作上來說,PQ等方法都是經典的算法,本文方法延續其內容,因此實現上難度不大。

但是,作為一個算法類的研究論文,筆者認為以下的方面還值得繼續研究和探討。

在訓練過程中,k-means的思想是其重點,那麼對於算法的複雜度分析部分,是否需要更具體的討論。

在本文中,對於樣本的採樣和計算過程,也是值得繼續研究的一個課題。

總體來說,本文的實驗結果很充分地說明該方法的有效性。但是,這種帶有訓練機制的量化方法,從樣本的採樣,算法複雜度,訓練過程上來說,都是一個耗時且不太可控的過程。

作者介紹:

立早,工學碩士,研究方向為模式識別。目前從事人臉識別、檢測和神經網絡壓縮方向的工作。希望能夠一直學習,多多交流,不斷進步。

參考文獻

[1] Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. Deep residual learning for image

recognition. CoRR, 2015.

[2] Shuchang Zhou, Zekun Ni, Xinyu Zhou, He Wen, Yuxin Wu, and Yuheng Zou. Dorefa-net:

Training low bitwidth convolutional neural networks with low bitwidth gradients. CoRR, 2016.

[3] Yunchao Gong, Liu Liu, Ming Yang, and Lubomir Bourdev. Compressing deep convolutional

networks using vector quantization. arXiv preprint arXiv:1412.6115, 2014.

[4] Herv e J egou, Matthijs Douze, and Cordelia Schmid. Product Quantization for Nearest Neigh-

bor Search. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2011.

[5]Jie Hu, Li Shen, and Gang Sun. Squeeze-and-excitation networks. In Conference on Computer

Vision and Pattern Recognition, 2018.

[6] Geoffrey Hinton, Oriol Vinyals, and Jeff Dean. Distilling the knowledge in a neural network.

NIPS Deep Learning Workshop, 2014.

[7] Yu Cheng, Duo Wang, Pan Zhou, and Tao Zhang. A survey of model compression and accel-

eration for deep neural networks. CoRR, 2017.

相關焦點

  • 百度NLP | 神經網絡模型壓縮技術
    更複雜的模型、更強的特徵以及更多的數據對工業級應用提出了更高的要求,如何有效控制內存、減少計算量以及降低功耗是深度神經網絡模型發展面臨的重要問題。壓縮算法的研究不僅提升了模型的擴展潛力,並且使其具有更廣闊的應用場景和巨大的想像空間。在百度,以搜索場景為例,用於相關性排序的神經網絡參數規模達到億級,而線上環境對計算資源要求嚴格,模型難以擴展。
  • 一種基於小波變換的新型壓縮編碼模型
    摘要: 本文針對基於內嵌編碼思想的嵌入式零樹編碼方案,並結合當前壓縮編碼方面的理論成果,提出了一種新的編碼模型,並進行了仿真實驗。實驗結果表明,所設計的編碼算法在信噪比和壓縮比方面都取得了良好的效果。引言信息是現代社會的主要特徵,而人們傳遞信息的重要媒介是圖像。
  • 降低預測過程計算成本,這些NLP模型壓縮方法要知道
    兩種不同的整型量化方法一種簡單的整型量化方法,如上圖右側,首先選擇一個範圍和偏移量,這樣就不會將校準後的輸入浮點激活值激活映射到unit8值(-128,127)兩端的整數。但這種做法在適應兩端極值的同時犧牲了一些精度。
  • 剪枝需有的放矢,快手&羅切斯特大學提出基於能耗建模的模型壓縮
    作者:思源最近,快手 Y-Tech 西雅圖 AI lab 聯合羅切斯特大學等研究者提出了一種基於能耗建模的壓縮方法,他們一脈相承的兩篇論文分別被 ICLR 2019 和 CVPR 2019 接收。在這篇文章中,我們將介紹這種新型模型壓縮的核心思想及主要做法,神經網絡壓縮也許該走向有目標的前進之路了。
  • 只需一個損失函數,一個超參數即可壓縮BERT,MSRA提模型壓縮新方法
    論文連結:https://arxiv.org/pdf/2002.02925.pdf這篇論文提出了一種新型模型壓縮方法,能夠通過逐步模塊替換(progressive module replacing)有效地壓縮 BERT。
  • 朱俊彥團隊提出GAN壓縮算法:計算量減少20倍,GPU、CPU統統能加速
    一舉將CycleGAN的計算量減少了20倍以上,將GauGAN的計算量減少了9倍,簡筆畫到實物圖的pix2pix也能駕馭,效果卻未差分毫。值得一提的是。論文已入選CVPR 2020,代碼也已開源。為了解決這個問題,作者提出了針對有效生成模型量身定製的訓練方案,並通過神經架構搜索(NAS)進一步提高壓縮率。
  • 基於小波理論實時壓縮解壓縮晶片ADV611實現實時監控的方法
    該晶片不僅集成了視頻編碼/解碼算法,還提供了數據壓縮效果的實時調節手段,數據輸出速率可以靈活控制。ADV611能實時地對包括PAL制式(720×288@50場/s)和NTSC制式(720×243@60場/s)在內的視頻信號實時進行壓縮和解壓縮。壓縮倍數從視覺無失真感的4∶1到7500∶1,  主要用於閉路電視。
  • 一種基於小波變換的圖像壓縮方法與實現
    解決問題的根本就是必須要對圖像信息進行壓縮處理,在保證一定圖像質量的基礎上,能用儘可能少的信息量表示重構的原始圖像,即用最少的信息還原出最近似原始圖像的重構圖像。圖像壓縮技術在20世紀60年代後開始發展起來,80年代小波變換的理論被提出後,圖像壓縮技術備受關注並成為熱門的研究技術。
  • 紐約大學提出端到端優化圖像壓縮方法,全面超越JPEG 2000 | ICLR...
    在ICLR 2017會議上,來自紐約大學的Johannes Balle 等研究者提出了一種端到端優化的圖像壓縮方法,並發表了論文:《End-to-End Optimized Image Compression》。這種方法包含了三個過程,分別是:非線性分析變換,均勻量化器,以及非線性合成變換。這些變換是在卷積線性濾波器和非線性激活函數的三個連續階段中構建的。
  • 紐約大學提出端到端優化圖像壓縮方法,全面超越JPEG2000|ICLR2017
    雷鋒網按:數據壓縮是一種基礎工程問題,在數據存儲和有限容量信道傳輸中有重要的應用。圖像作為一種信息載體,數據量巨大,因此研究者們對圖像壓縮的研究從未停止過。在ICLR 2017會議上,來自紐約大學的Johannes Balle 等研究者提出了一種端到端優化的圖像壓縮方法,並發表了論文:《End-to-End Optimized Image Compression》。
  • 圖鴨科技 CVPR 2019 CLIC 圖像壓縮挑戰賽冠軍方案全解讀
    本文將主要介紹圖鴨科技在 CVPR 2019 CLIC 圖像壓縮挑戰賽上的相關技術方案,針對於比賽所設置的低碼點和高碼點壓縮兩個賽道,我們基於變分自編碼網絡設計了可進行端到端優化的圖像壓縮方案。該方案包括一個非線性編碼網絡、軟量化模塊、一個非線性解碼網絡和一個熵估計模塊。我們技術方案的特色之處總結如下:1.
  • 理化所等發現將三維體壓縮率「壓縮」到一維的反常力學材料
    作為物態方程的基本參量,體積V是決定材料物理化學性能的基礎參數,通過壓力調控材料的體積是調控材料物性的重要方法。其中,體壓縮率是關聯壓力和體積的唯一參量,調控和涉及材料體壓縮率是調控材料物性的重要途徑。
  • 圖鴨科技 CVPR 2018 圖像壓縮挑戰賽奪冠,獲獎論文全解讀
    (圖鴨科技憑藉在 CLIC 中 MOS 和 MS-SSIM 指標第一,在雷鋒網(公眾號:雷鋒網)學術頻道 AI 科技評論旗下資料庫項目「AI 影響因子」中增加 10 分。)CVPR 作為計算機視覺領域的全球頂級會議,其一直關注計算機視覺領域的發展,為了促進計算機視覺領域圖片壓縮的發展,Google 聯合 twitter、Netflix 等聯合贊助了機器學習圖像壓縮挑戰賽(CLIC)。
  • 一場深度學習引發的圖像壓縮革命
    在同等壓縮率下進行壓縮視覺效果對比時,TNG 在紋理細節上比 JPEG2000 的效果要好得多。圖 :在同等壓縮率下,對複雜圖像壓縮視覺效果對比。上圖為圖鴨所提出的算法,下圖為 JPEG2000 算法。可以看到上圖的細節效果更好。圖:在低碼字情況下 TNG(上圖) 與 WebP(下圖) 壓縮效果對比。
  • 用循環神經網絡進行文件無損壓縮:史丹福大學提出DeepZip
    選自史丹福大學作者:Kedar Tatwawadi機器之心編譯參與:李澤南、黃小天神經網絡不僅可以分析、識別特徵,提出預測,還可以壓縮文件。因此,人們對於統計模型和適用於各種數據格式的高效壓縮方法有著很大的需求。近 50 年來,無損壓縮技術已經歷了很多重要的發展。在克勞德·香農的一個經典研究中,這位先驅者指出,熵率是給定數據源可能達到的最佳壓縮比,同時也給出了一種實現方法(儘管不甚實際)。J. Rissanen 提出了算術編碼,這是一個實現已知分布熵邊界的有效方法。
  • 學界| Facebook新論文介紹相似性搜索新突破:在GPU上實現十億規模
    儘管 GPU 擅長數據並行任務,但之前的方法會在並行性不高的算法(如 k-min selection)上遇到瓶頸或不能有效利用內存的層次結構。我們提出了一種用於 k-selection 的設計,其可以以高達理論峰值性能 55% 的速度進行運算,從而實現了比之前最佳的 GPU 方法快 8.5 倍的最近鄰搜索。
  • 基於DSP Builder的JPEG靜態圖像壓縮算法的實現
    JPEG壓縮是有損壓縮,它利用了人眼視角系統的特性,使用量化和無損壓縮編碼相結合來去掉視角的冗餘信息和數據本身的冗餘信息。JPEG算法框圖如圖2所示。 (2)使用加權函數對DCT係數進行量化,這個加權函數對於人的視覺系統是最佳的。 (3)使用霍夫曼可變字長編碼器對量化係數進行編碼。解碼(或者叫解壓縮)過程與壓縮編碼過程相反。3 JPEG算法模型的實現 在DSP Builder下進行系統搭建。
  • 音頻壓縮技術原理
    音頻壓縮技術指的是對原始數字音頻信號流(PCM編碼)運用適當的數位訊號處理技術,在不損失有用信息量,或所引入損失可忽略的條件下,降低(壓縮)其碼率,也稱為壓縮編碼。它必須具有相應的逆變換,稱為解壓縮或解碼。音頻信號在通過一個編解碼系統後可能引入大量的噪聲和一定的失真。   在音頻壓縮領域,有兩種壓縮方式,分別是有損壓縮和無損壓縮。
  • 被壓縮的視覺:視頻編解碼技術
    對於數據量巨大的YUV視頻數據,需要壓縮後才能存儲與傳輸。2. 壓縮原理壓縮視頻信息與壓縮文件信息不同,在視頻中存在著大量的冗餘信息。如圖2所示,相鄰幀之間的相似性會有時間上的冗餘,同一幀的相鄰塊之間存在著空間上的冗餘,由於人眼感知對於低頻信息更敏感,所以存在著感知上的冗餘。
  • JPEG2000數據壓縮的FPGA實現
    為解決圖像數據的高壓縮性能問題,本文提出了基於JPEG2000標準的數據壓縮系統的FPGA實現方案。相對於軟體算法實現和其他硬體方法,採用FPGA硬體實現可降低系統複雜度提高性能。最終設計的IP核具有資源佔用少,性能良好和便於擴展等優點,能夠滿足通信傳輸和照相設備等應用需求。