引言
這篇文章介紹一種不同于針對(duì)壓縮單個(gè)權(quán)重的方法:多個(gè)權(quán)重?cái)?shù)據(jù)組合為向量,將向量視為一個(gè)整體,映射到其他向量空間,完成壓縮。作者在resnet-50上做了實(shí)驗(yàn),將100MB權(quán)重壓縮到了5MB(實(shí)現(xiàn)了20倍壓縮比例),同時(shí)在imageNet上測(cè)試的top-1精度保持的很好(76.1%)。Resnet是一種經(jīng)典的殘差網(wǎng)絡(luò),在2015年的imageNet大賽中獲得第一名,被廣泛應(yīng)用在圖像識(shí)別和分類中。向量壓縮方法在resnet上的成功運(yùn)用,會(huì)大大推動(dòng)resnet在硬件加速中的應(yīng)用。 1
背景介紹
也許是神經(jīng)網(wǎng)絡(luò)較強(qiáng)的泛化能力和較窄的應(yīng)用場(chǎng)景之間的矛盾,造成了網(wǎng)絡(luò)參數(shù)存在很大冗余。因此各種壓縮方法五花八門,層出不窮。
有的是將權(quán)重?cái)?shù)據(jù)低精度化,比如前一篇介紹的二值網(wǎng)絡(luò),還有三值,四值網(wǎng)絡(luò),8bit,16bit定點(diǎn)網(wǎng)絡(luò)等等。這些主要是考慮整體上降低每個(gè)權(quán)重的表達(dá)精度。但是隨著精度降低越大,網(wǎng)絡(luò)的分類能力就會(huì)越低。
另一類方法是向量量化。其主要思想是將原始高維權(quán)重空間分割成低維子空間的乘積,然后對(duì)子空間進(jìn)行重新映射,通過映射到某個(gè)新的集合來完成整體數(shù)據(jù)的壓縮。實(shí)際上是尋找不同向量之間的共性,用同一個(gè)新向量來替代,實(shí)現(xiàn)聚類。這樣就減少了不同子向量的個(gè)數(shù),實(shí)現(xiàn)了數(shù)據(jù)壓縮。
還有一種方法是剪枝。即去除一些不重要的網(wǎng)絡(luò)連接或者參數(shù),比如在LSTM優(yōu)化中使用的structured compression,就是直接去除多個(gè)相鄰的不重要的權(quán)重參數(shù)。
利用以上的方法產(chǎn)生了多個(gè)壓縮的網(wǎng)絡(luò)結(jié)構(gòu),比如squeezeNet,NASNet,ShuffleNet,MobileNet等。這些網(wǎng)絡(luò)是從網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計(jì)開始,就權(quán)衡數(shù)據(jù)量和分類精度,來實(shí)現(xiàn)既有小的權(quán)重?cái)?shù)據(jù),同時(shí)又有好的表現(xiàn)力。
2
壓縮方法
這篇論文的創(chuàng)新性在于在采用向量壓縮的基礎(chǔ)上,最小化激活函數(shù)的輸入而不是權(quán)重的均方差。相比于傳統(tǒng)方法,其在測(cè)試集中有更好的分類能力,同時(shí)不需要任何監(jiān)督過程,只是給出一定數(shù)量的輸入圖片就行了。
圖2.1 綠色的線是論文的方法,在測(cè)試集和中有更好的分類能力,而傳統(tǒng)方法會(huì)在壓縮過程中引入噪聲,造成分類精度的降低
論文首先從全連接的量化講解,之后推廣到卷積的壓縮。假設(shè)一個(gè)全連接層有權(quán)重: 將每列W分割成m個(gè)連續(xù)的子向量,然后讓網(wǎng)絡(luò)學(xué)習(xí)一個(gè)字典可以表示這mC_out個(gè)向量。子向量維度為d=C_in/m。假設(shè)字典有k個(gè)數(shù)據(jù){C_1, C_2, …, C_k}。任何一個(gè)d維向量都被映射到這個(gè)空間中,于是一個(gè)W的列向量映射為:
這個(gè)字典是通過最小化權(quán)重的均方差來學(xué)習(xí):
從實(shí)際來講,我們要減小的并不是權(quán)重之間的差異,而是結(jié)果的差異。所以論文從更直觀的角度來最小化輸出結(jié)果:
其中,
是全連接層的輸出結(jié)果。
具體實(shí)現(xiàn)步驟為:
1) 為了匹配W子向量,輸入x也進(jìn)行相對(duì)應(yīng)的分割。由BxC_inàBxmxd;
2) 對(duì)每個(gè)子W向量進(jìn)行聚類,分配字典中的向量c:
其中v是W的子向量,c為字典中向量。X^為x的子空間。
2) 更新字典數(shù)據(jù)c:假設(shè)對(duì)應(yīng)c向量已經(jīng)分配了一定數(shù)量的v,那么通過以下方法來更新c:
全連接進(jìn)行的是矩陣運(yùn)算,而卷積層是由卷積核來實(shí)現(xiàn)圖像的卷積。兩者不同,如何將前面的方法用到卷積層呢?其實(shí)向量壓縮算法本身不在做什么運(yùn)算,而是在于對(duì)權(quán)重的重新分類。從這點(diǎn)來看,一個(gè)卷積層權(quán)重為:
其中KxK為一個(gè)卷積核大小,可以作為一個(gè)基本的子向量單位。我們可以選擇拆分的W的字向量大小為hxKxK。如果h=1,那么一個(gè)卷積核就被當(dāng)做一個(gè)要映射的子向量。而輸出不再是矩陣乘法而是卷積運(yùn)算:
這樣就能夠應(yīng)用以上方法來對(duì)卷積層權(quán)重進(jìn)行壓縮了。
圖2.2 卷積層權(quán)重?cái)?shù)據(jù)進(jìn)行KxK子空間分解
3
實(shí)驗(yàn)結(jié)果
論文在resnet-18和resnet-50上進(jìn)行了實(shí)驗(yàn)。3x3卷積的子空間被設(shè)置為9或者18,而pointwise的權(quán)重子空間設(shè)置為4或者8.字典的大小設(shè)置了四種不同數(shù)量:256,512,1024,2048。在開始量化前,從訓(xùn)練集中隨機(jī)取得1024幅圖片作為量化輸入,執(zhí)行2節(jié)中的量化步驟。結(jié)果綜合了存儲(chǔ)減小和分類精度兩方面,如下圖所示: 圖3.1 resnet-18和resnet-50的壓縮比例
從圖中看出,采用小的子空間和大的字典元素?cái)?shù)目有更好的分類精度,但是壓縮率低。在實(shí)際應(yīng)用中可以根據(jù)需要來調(diào)節(jié)這些參數(shù)獲得你期望的壓縮率和識(shí)別精度。
圖3.1 resnet-18和resnet-50的壓縮比例
從圖中看出,采用小的子空間和大的字典元素?cái)?shù)目有更好的分類精度,但是壓縮率低。在實(shí)際應(yīng)用中可以根據(jù)需要來調(diào)節(jié)這些參數(shù)獲得你期望的壓縮率和識(shí)別精度。
圖3.2 k=256下,兩個(gè)網(wǎng)絡(luò)的壓縮率和top-1精確度
結(jié)論
本文介紹了一種利用向量壓縮來降低復(fù)雜的神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)量的方法,通過resnet上的實(shí)驗(yàn),能夠看出這種方法相對(duì)于單純的壓縮單個(gè)權(quán)重,可以保持良好的精確度,同時(shí)能夠獲得一定壓縮比例。
文獻(xiàn)
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.
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4782瀏覽量
101220
原文標(biāo)題:【網(wǎng)絡(luò)壓縮二】向量壓縮方法
文章出處:【微信號(hào):FPGA-EETrend,微信公眾號(hào):FPGA開發(fā)圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
為什么Platform Cable USB II和Xilinx并行電纜IV分配引腳不同于14引腳Jtag標(biāo)準(zhǔn)引腳分配?
求大佬分享一種針對(duì)高斯類波形使用Mu-law壓縮的方法
為什么起振后的直流工作點(diǎn)電流不同于起振前的靜態(tài)工作點(diǎn)電流呢?
基于反饋信息的特征權(quán)重調(diào)整方法
一種漏洞威脅基礎(chǔ)評(píng)分指標(biāo)權(quán)重分配方法
![一種漏洞威脅基礎(chǔ)評(píng)分指標(biāo)<b class='flag-5'>權(quán)重</b>分配<b class='flag-5'>方法</b>](https://file.elecfans.com/web2/M00/49/6F/poYBAGKhwLOARlQJAAAbEyD62bM858.jpg)
一種新的DEA公共權(quán)重生成方法
一種約束權(quán)重的改進(jìn)多目標(biāo)跟蹤方法
![一種約束<b class='flag-5'>權(quán)重</b>的改進(jìn)多目標(biāo)跟蹤<b class='flag-5'>方法</b>](https://file.elecfans.com/web1/M00/46/10/o4YBAFqQ_raAS3mOAABx-nybTME929.jpg)
面向“邊緣”應(yīng)用的卷積神經(jīng)網(wǎng)絡(luò)如何進(jìn)行量化與壓縮詳細(xì)方法
![面向“邊緣”應(yīng)用的卷積神經(jīng)網(wǎng)絡(luò)如何進(jìn)行量化與<b class='flag-5'>壓縮</b>詳細(xì)<b class='flag-5'>方法</b>](https://file.elecfans.com/web1/M00/7F/A2/pIYBAFwjRpSAfP3UAABEynin8xo161.png)
蘋果折疊屏專利曝光將不同于華為的橫向折疊設(shè)計(jì)而采用了縱向折疊
![蘋果折疊屏專利曝光將<b class='flag-5'>不同于</b>華為的橫向折疊設(shè)計(jì)而采用了縱向折疊](https://file1.elecfans.com//web2/M00/A7/54/wKgZomUMQ-uAArIkAAASA3bcliI472.jpg)
一種不同于雙線性插值的上采樣方法
![一種<b class='flag-5'>不同于</b>雙線性插值的上采樣<b class='flag-5'>方法</b>](https://file.elecfans.com/web1/M00/8D/F7/pIYBAFyq78CAOBRdAAAN0DX2sWE858.png)
可解決高沖突證據(jù)合成問題的證據(jù)權(quán)重確定方法
![可解決高沖突證據(jù)合成問題的證據(jù)<b class='flag-5'>權(quán)重</b>確定<b class='flag-5'>方法</b>](https://file.elecfans.com/web1/M00/EC/5A/pIYBAGCBEyqAZrB8AAL507E9fd4646.png)
一種基于用戶偏好的權(quán)重搜索及告警選擇方法
![一種基于用戶偏好的<b class='flag-5'>權(quán)重</b>搜索及告警選擇<b class='flag-5'>方法</b>](https://file.elecfans.com/web1/M00/ED/9A/pIYBAGCKbl-AXfyjAAHt-OfpedY505.png)
評(píng)論