引言
這篇文章介紹一種不同于針對壓縮單個權重的方法:多個權重數據組合為向量,將向量視為一個整體,映射到其他向量空間,完成壓縮。作者在resnet-50上做了實驗,將100MB權重壓縮到了5MB(實現了20倍壓縮比例),同時在imageNet上測試的top-1精度保持的很好(76.1%)。Resnet是一種經典的殘差網絡,在2015年的imageNet大賽中獲得第一名,被廣泛應用在圖像識別和分類中。向量壓縮方法在resnet上的成功運用,會大大推動resnet在硬件加速中的應用。 1
背景介紹
也許是神經網絡較強的泛化能力和較窄的應用場景之間的矛盾,造成了網絡參數存在很大冗余。因此各種壓縮方法五花八門,層出不窮。
有的是將權重數據低精度化,比如前一篇介紹的二值網絡,還有三值,四值網絡,8bit,16bit定點網絡等等。這些主要是考慮整體上降低每個權重的表達精度。但是隨著精度降低越大,網絡的分類能力就會越低。
另一類方法是向量量化。其主要思想是將原始高維權重空間分割成低維子空間的乘積,然后對子空間進行重新映射,通過映射到某個新的集合來完成整體數據的壓縮。實際上是尋找不同向量之間的共性,用同一個新向量來替代,實現聚類。這樣就減少了不同子向量的個數,實現了數據壓縮。
還有一種方法是剪枝。即去除一些不重要的網絡連接或者參數,比如在LSTM優化中使用的structured compression,就是直接去除多個相鄰的不重要的權重參數。
利用以上的方法產生了多個壓縮的網絡結構,比如squeezeNet,NASNet,ShuffleNet,MobileNet等。這些網絡是從網絡結構的設計開始,就權衡數據量和分類精度,來實現既有小的權重數據,同時又有好的表現力。
2
壓縮方法
這篇論文的創新性在于在采用向量壓縮的基礎上,最小化激活函數的輸入而不是權重的均方差。相比于傳統方法,其在測試集中有更好的分類能力,同時不需要任何監督過程,只是給出一定數量的輸入圖片就行了。
圖2.1 綠色的線是論文的方法,在測試集和中有更好的分類能力,而傳統方法會在壓縮過程中引入噪聲,造成分類精度的降低
論文首先從全連接的量化講解,之后推廣到卷積的壓縮。假設一個全連接層有權重: 將每列W分割成m個連續的子向量,然后讓網絡學習一個字典可以表示這mC_out個向量。子向量維度為d=C_in/m。假設字典有k個數據{C_1, C_2, …, C_k}。任何一個d維向量都被映射到這個空間中,于是一個W的列向量映射為: 這個字典是通過最小化權重的均方差來學習: 從實際來講,我們要減小的并不是權重之間的差異,而是結果的差異。所以論文從更直觀的角度來最小化輸出結果: 其中,
是全連接層的輸出結果。
具體實現步驟為:
1) 為了匹配W子向量,輸入x也進行相對應的分割。由BxC_inàBxmxd;
2) 對每個子W向量進行聚類,分配字典中的向量c:
其中v是W的子向量,c為字典中向量。X^為x的子空間。
2) 更新字典數據c:假設對應c向量已經分配了一定數量的v,那么通過以下方法來更新c:
全連接進行的是矩陣運算,而卷積層是由卷積核來實現圖像的卷積。兩者不同,如何將前面的方法用到卷積層呢?其實向量壓縮算法本身不在做什么運算,而是在于對權重的重新分類。從這點來看,一個卷積層權重為: 其中KxK為一個卷積核大小,可以作為一個基本的子向量單位。我們可以選擇拆分的W的字向量大小為hxKxK。如果h=1,那么一個卷積核就被當做一個要映射的子向量。而輸出不再是矩陣乘法而是卷積運算: 這樣就能夠應用以上方法來對卷積層權重進行壓縮了。
圖2.2 卷積層權重數據進行KxK子空間分解
3
實驗結果
論文在resnet-18和resnet-50上進行了實驗。3x3卷積的子空間被設置為9或者18,而pointwise的權重子空間設置為4或者8.字典的大小設置了四種不同數量:256,512,1024,2048。在開始量化前,從訓練集中隨機取得1024幅圖片作為量化輸入,執行2節中的量化步驟。結果綜合了存儲減小和分類精度兩方面,如下圖所示: 圖3.1 resnet-18和resnet-50的壓縮比例
從圖中看出,采用小的子空間和大的字典元素數目有更好的分類精度,但是壓縮率低。在實際應用中可以根據需要來調節這些參數獲得你期望的壓縮率和識別精度。
圖3.1 resnet-18和resnet-50的壓縮比例
從圖中看出,采用小的子空間和大的字典元素數目有更好的分類精度,但是壓縮率低。在實際應用中可以根據需要來調節這些參數獲得你期望的壓縮率和識別精度。
圖3.2 k=256下,兩個網絡的壓縮率和top-1精確度
結論
本文介紹了一種利用向量壓縮來降低復雜的神經網絡的數據量的方法,通過resnet上的實驗,能夠看出這種方法相對于單純的壓縮單個權重,可以保持良好的精確度,同時能夠獲得一定壓縮比例。
文獻
1 Pierre Stock, A.J., R′emi Gribonval, Benjamin Graham, Herv′e J′egou, And the Bit Goes Down Revisiting the Quantization of Neural Networks. arXiv preprint, 2019.
-
神經網絡
+關注
關注
42文章
4765瀏覽量
100559
原文標題:【網絡壓縮二】向量壓縮方法
文章出處:【微信號:FPGA-EETrend,微信公眾號:FPGA開發圈】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論