999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

結合半波高斯量化與交替更新的神經網絡壓縮方法

2021-05-17 05:30:42張紅梅嚴海兵張向利
計算機工程 2021年5期
關鍵詞:方法模型

張紅梅,嚴海兵,張向利

(桂林電子科技大學廣西高校云計算與復雜系統重點實驗室,廣西桂林 541004)

0 概述

近年來,邊緣計算技術發展迅速,而體積普遍龐大且計算復雜的卷積神經網絡(Convolution Neural Network,CNN)模型仍難以在實時性要求較高但內存容量受限的邊緣設備上部署使用,因此卷積神經網絡模型壓縮與加速成為了學術界和工業界均重點關注的研究領域。隨著卷積神經網絡模型壓縮與加速研究的不斷深入,其中的網絡量化方法得到了廣泛應用。網絡量化的核心思想是使用較少的位(bit)代替原始浮點型(32 bit)參數,進而減少模型存儲空間。文獻[1]將全精度浮點型參數量化到16 bit 固定長度表示,并在訓練過程中使用隨機約束技術,從而縮減網絡存儲和浮點計算次數,但壓縮程度不高且浮點計算依舊復雜。文獻[2]在模型訓練過程中直接將全精度權值量化為+1 或-1 并用1 bit 表示,理論上能把模型壓縮至原有的1/32,同時將卷積計算中的乘加運算轉換為加減運算,達到加速的目的,但因激活值為全精度,無法大幅度加速網絡計算。文獻[3]提出BNN 網絡,該網絡通過把權值和激活值量化為+1 和-1,將原始的卷積計算變成同或和位計數運算,大幅壓縮和加速深度網絡,但此類簡單量化的方式導致了較嚴重的精度損失。為此,文獻[4]提出XNOR-Net 和BWN 兩個網絡,對權值和激活值分別引入縮放因子,減少量化誤差并提高訓練精度,但在訓練過程中會出現梯度不匹配問題,影響精度的進一步提升。針對該問題,文獻[5]提出HWGQNet,有效地解決了訓練過程中的梯度不匹配問題,但加速效果不明顯。為減少BWN 網絡的量化誤差,文獻[6]提出TWN 網絡,將權值量化到三元網絡,即-w、0、+w,相比BWN 網絡具有更強的表達能力以及更高的訓練精度,文獻[7]在TWN 網絡基礎上引入不同的縮放因子,相比TWN 網絡精度得到進一步提升。文獻[6-7]通過引入量化值0,減少了精度損失,但模型壓縮比僅為BWN 網絡的一半。文獻[8]通過對梯度值進行量化,達到訓練加速的目的,卻導致訓練精度的下降。文獻[9]提出漸進式量化方法,減少了量化損失,但分組、量化和再訓練方式導致了較高的計算復雜度。

本文設計一種結合半波高斯量化(Half-Wave Gaussian Quantization,HWGQ)和交替更新的神經網絡模型壓縮方法,改進2 bit 均勻半波高斯量化器,使量化后的值分解為帶有縮放因子的+1、0和-1 的組合值,當與采用BWN 量化的權值進行卷積運算時,可將浮點型卷積運算轉化為僅有+1和-1 參與的同或和位計數運算(數值0 可看作沒有參與運算)加速訓練過程,并使用交替更新方法[10]對已訓練的二值模型進行逐層微調進一步提高模型測試精度。

1 混合壓縮方法

本文提出的混合壓縮框架如圖1 所示,首先對模型輸入部分進行2 bit 均勻半波高斯量化,然后將值輸入到帶有縮放因子的二值網絡中進行訓練得到一個初始的二值模型,再使用交替更新方法對模型進行微調,最終得到優化后的二值模型。在圖1 中,X是上一層經過卷積運算(卷積層)或者矩陣運算(全連接層)的輸出,是X經過2 bit 均勻半波高斯量化器的激活量化值,其中q1、q2、q3分別代表3 個量化值,且滿足等式q2-q1=q3-q2,t1和t2分別代表量化值q1和q2對應的量化間隔點,A和B分別是縮放因子矩陣和二元權值矩陣,若是經過維度變換后的卷積核,則W=BA,其中,B∈{+1,是對角矩陣,且每個對角元素αi與一一對應,Bi是B的列向量,i=1,2,…,cout。

圖1 混合壓縮框架Fig.1 Hybrid compression framework

1.1 半波高斯量化

在BNN 和XNOR 網絡中,在前向傳播階段采用sign 作為激活值量化函數,在反向傳播階段采用替代sign,以避免梯度全為0 的情況發生,影響梯度下降算法的更新,其中,sign 和函數定義如圖2所示。

圖2 sign 和的函數曲線圖Fig.2 sign andfunction curve graph

為解決上述問題,本文在前向傳播階段采用近似ReLU[12]的Q(x)作為量化函數,在反向傳播階段為解決梯度全為0 的問題,采用近似ReLU 的作為Q(x)的替代函數,其中ReLU 也稱為半波整流器,定義為:

其中:當自變量x小于0 時,h(x)值等于0;當自變量x大于等于0 時,h(x)值等于自變量x。

1.1.1 前向近似

考慮到ReLU 的半波整流性,前向近似ReLU 的量化函數Q(x)定義如下:

其中,qi∈?+,ti∈?+,i=1,2,…,m,t0=0,tm=∞。本文采用最小化均方誤差的方法得到最優解Q*(x),p(x)是x的概率密度函數,假設x的數學期望為E(x)、y=g(x),且絕對收斂,因此有E(y)=,在(-∞,0)區間內Q(x)與h(x)均為0,在(0,+∞)區間內h(x)=x,于是得到式(3):

本文采用文獻[13]中提出的Lloyd 算法對Q*(x)進行求解。雖然Lloyd 算法是一種迭代算法,但輸入分布一般沒有規律,導致概率密度函數p(x)難以確定,并且不同層輸入分布一般不同,會隨著反向傳播參數的迭代更新而不斷改變。上述情況使得Lloyd算法很難得到最優解Q*(x)。通過在量化器Q(x)前加入批量標準化(Batch Normalization,BN)[14]操作解決上述問題,批量標準化使得每層輸入變成均值為0、方差為1 的標準高斯分布。此時,每層具有相同的輸入分布,概率密度函數能唯一確定,并且只需要應用一次Lloyd 算法,加入批量標準化操作的量化器Q(x)稱為半波高斯量化器。

1.1.2 反向近似

為解決Q(x)在反向傳播過程中的梯度消失問題,需要尋找一個近似ReLU 的連續函數,考慮到量化函數Q(x)前面加入批標準化后的輸入分布變為標準高斯分布,輸入越接近0 出現的概率越高,假設大于qm的x值出現的概率很低,因此超出qm的部分x值實際上是離群值。本文選擇Clipped ReLU 作為,定義如下:

本文選擇Clipped ReLU 作為ReLU 的反向近似,主要原因為:1)避免在尾部出現與Q(x)不匹配的現象,減少了兩者之間的誤差;2)大部分輸入值集中于小于qm的部分,因此截斷的ReLU 不僅能很好地近似ReLU,而且易于梯度計算;3)Clipped ReLU 能夠保證穩定優化,與文獻[15]中裁剪的梯度能夠增強深層網絡的學習性能類似。

1.2 BWN 方法

本文采用文獻[4]中的BWN 方法對網絡權重部分進行量化。假設網絡有L層,第l層的卷積核個數為Kl,其中,1≤l≤L,1≤k≤Kl,令第l層的輸入,第l層的第k個卷積核,cin為輸入通道數,win和hin均為輸入特征圖,w為卷積核寬度,h為卷積核高度,且w≤win、h≤hin。第l層的卷積運算如式(5)所示:

1.3 基于HWGQ+BWN 的二值模型訓練

對于半波高斯量化器,本文令m=3、qi+1-qi=Δ。由于此時其量化值只能取0、β-Δ、β、β+Δ這4 個值并用2 bit 進行表示,因此也可稱為2 bit 均勻半波高斯量化器。圖3 為對輸入部分和權重部分分別采用改進后的2 bit 均勻半波高斯量化器和BWN 方法量化后的卷積計算過程,其中,*表示卷積運算,?表示只有同或和位計數操作的卷積運算。可以看出,經過HWGQ 量化后的值被分解為兩部分,每部分均是帶有縮放因子-1、0 和+1 的組合,最終浮點型的卷積運算轉化為僅有-1 和+1 參與的同或和位計數操作的卷積運算(數值0 可看作沒有參與運算),從而實現模型的訓練加速。

圖3 具有加速作用的HWGQ+BWN 卷積計算過程Fig.3 Accelerated HWGQ+BWN convolution calculation process

本文對第一層和最后一層保留全精度,只對中間層進行量化處理,在前向階段和反向階段使用量化的權值,在權值更新階段使用全精度值。

算法1基于HWGQ+BWN 的二值模型訓練算法

1.4 二值模型微調

針對輸入部分和權重部分同時量化而導致精度損失較大的問題,本文采用文獻[10]中的交替更新方法對二值模型進行微調。交替更新方法主要是對已經訓練好的模型進行微調,并且考慮了對輸入部分和權重部分同時進行量化的情況,而文獻[10]僅考慮了對權重部分的量化。

1.4.1 維度變換

若要運用交替更新方法,則需對卷積層的輸入和輸出以及卷積核作維度變換。從文獻[16]得到啟發,假定卷積層輸入,卷積核W∈,那么卷積層輸出,若對卷積層的輸入X、卷積核W和輸出Y進行維度變換轉換為二維矩陣和,其中下標r表示張量經過維度變換后由多維變成二維,其中wout=(win+2×p-w)/s+1,hout=(hin+2×p-h)/s+1,p和s分別表示填充值(padding)和步長(stride),此時可將卷積運算轉變為矩陣運算Yr=(Xr)TWr,具體過程如圖4 所示。

圖4 卷積層上的卷積運算轉變為矩陣運算的過程Fig.4 The process of transforming convolution operation into matrix operation on convolution layer

1.4.2 逐層微調

由于對輸入部分和權重部分同時進行量化會產生一定的誤差,該誤差會逐層進行積累,因此本文采用交替更新方法對二值模型進行逐層微調解決以上問題。受文獻[17]啟發,假設一個CNN 網絡有L層,記未對輸入部分和權重部分進行量化和訓練的模型為全精度模型,若由維度變換得到的第l(1≤l≤L)層全精度模型和二值模型的輸入分別為Xl和,為使得量化誤差最小,需要優化的目標函數為:

對式(7)進一步展開,目標函數變為:

式(8)的求解過程具體如下:

2 實驗與結果分析

本文使用CIFAR-10 和ImageNet[19]這兩種經典數據集驗證混合壓縮方法的有效性。CIFAR-10 數據集對應的網絡結構為VGG14,共有10 個類的60 000 張RGB 三通道圖片,其中,訓練集有50 000 張,測試集有10 000 張。ImageNet 對應的網絡結構為AlexNet[20],共有1 000 個類的1.25×106張GRB 三通道圖片,其中,訓練集有1.2×106張,驗證集有5×104張。

VGG14 的網絡結構為(2×64C3)-MP2-(2×128C3)-MP2-(3×256C3)-MP2-(3×256C3)-MP2-(3×512C3)-MP2-10FC-Softmax,其中:“64C3”代表64 個大小為3×3 的卷積核,步長和填充值都為1;“MP2”代表采樣核為2×2,步長為2 的最大池化層。AlexNet 包括5 個卷積層和3 個全連接層。VGG14和AlexNet 的網絡結構如圖5 和如圖6 所示,其中:C3=3×3 filter,s=p=1,C 代表卷積(Convolution)操作,filter 代表卷積核(濾波器);MP3=2×2,s=2,MP 代表最大池化(Max Pooling);FC 代表全卷積(Fully Convolution)。

圖5 VGG14 網絡結構Fig.5 VGG14 network structure

圖6 AlexNet 網絡結構Fig.6 AlexNet network structure

本文實驗硬件環境為8 核Intel?XeonTMCPU E5-2620 V4@2.10 GHz,磁盤容量為3.7 TB,總內存為31 GB,可用內存為22 GB;GPU 型號為GeForce GTX 1080Ti 的工作站1 個,專用GPU 內存為11 GB,共享GPU 內存為16 GB。軟件環境為64 位的Ubuntu 16.04 LTS,CUDA10.0,Pytorch0.3.1,Python 3.5和gcc 5.4。

2.1 數據預處理

2.1.1 半波高斯量化器參數設置

本文利用Lloyd 算法[13]可以得到半波高斯量化器的參數值,2 bit 均勻半波高斯量化器參數設置如表1 所示。

表1 2 bit 均勻半波高斯量化器參數設置Table 1 Parameters setting of 2 bit uniform half-wave Gaussian quantizer

2.1.2 ImageNet 數據集預處理

針對ImageNet 數據集大、分辨率高和訓練占用內存大的特點,為提高訓練速度和方便實驗調試,本文對原始的ImageNet數據集進行預處理。在對訓練集進行Resize、隨機裁剪和隨機翻轉后,數據規模由原來的167 GB 變成13.5 GB;在對驗證集進行Resize和中心裁剪之后,數據規模由原來的6.7 GB 變成543.8 MB。預處理后每張圖片分辨率為227 像素×227 像素。表2 為ImageNet 數據集預處理前后數據規模對比結果,可以看出預處理前后的數據規模壓縮比約為12.5,通過預處理加快了訓練和測試的速度。

表2 ImageNet 數據集預處理前后的數據規模對比Table 2 Comparison of data scale before and after ImageNet dataset preprocessing

2.2 壓縮比分析

本文使用HWGQ+BWN 方法的壓縮效果較明顯,表3 為壓縮前和壓縮后的模型規模對比結果,可以看出,本文提出的混合壓縮方法在VGG14 和AlexNet 網絡結構上的壓縮比分別為29.5 和30.8,接近理論值32。

表3 網絡壓縮前后模型規模對比Table 3 Comparison of model scale before and after network compression

2.3 測試精度分析

對于小型數據集CIFAR-10 以及對應的網絡結構VGG14,超參數設置具體如下:L2 正則化的權重衰減系數為1×10-5,迭代次數(epoch)為300,初始學習率為0.1,epoch 從150 開始,每隔50 個epoch 學習率降低10 倍,batch-size 為128,使用帶有momentum的SGD 作為參數優化器,其中momentum 值為0.9,采用L2 正則化防止訓練時產生過擬合現象,提高網絡泛化能力,選擇交叉熵作為損失函數。

對于VGG14 網絡結構,HWGQ+BWN 方法得到的二值模型測試精度為91.3%,如圖7 所示,其中Full-Precision 表示未使用量化方法的原始網絡。在此基礎上,對二值模型進行微調(HWGQ+BWN+Fine-tune),微調結果如圖8 所示。可以看出,當最大迭代次數為10 時,測試精度約穩定于92.1%。

圖7 3 種壓縮方法在VGG14 上的測試精度Fig.7 Test accuracy of three compression methods on VGG14

圖8 HWGQ+BWN 方法的二值模型在VGG14 上的微調結果Fig.8 Fine-tune results of binary model of HWGQ+BWN method on VGG14

基于CIFAR-10 數據集的4 種壓縮方法在VGG14 中的測試精度對比結果如表4 所示,可以看出本文所提的HWGQ+BWN+Fine-tune 方法相比HWGQ-Net 方法在壓縮模型規模保持不變的前提下,測試精度提高了0.8 個百分點。

表4 CIFAR-10 數據集在VGG14 中的測試精度對比Table 4 Comparison of test accuracy of CIFAR-10 dataset in VGG14

對于大型數據集ImageNet 以及對應的網絡結構AlexNet,超參數設置具體如下:L2 正則化的權重衰減系數為1×10-5,epoch 為20,初始學習率為0.001,每隔5 個epoch 學習率降低10 倍,batch-size 為512,使用Adam[21]作為參數優化器,選擇交叉熵作為損失函數。對于AlexNet 網絡結構,HWGQ+BWN 最終訓練得到的二值模型Top-1 測試精度和Top-5 測試精度為50.7%和74.8%,如圖9 所示。在此基礎上,對二值模型進行微調(HWGQ+BWN+Fine-tune),微調結果如圖10 和圖11 所示,可以看出在最大迭代次數約為20 時,Top-1 測試精度和Top-5 測試精度約穩定于52.7%和76.8%。基于ImageNet 數據集的4 種壓縮方法在AlexNet 中的測試精度對比結果如表5 所示,可以看出對于ImageNet 數據集,本文所提的HWGQ+BWN+Fine-tune 方法與相比HWGQNet 方法在壓縮模型規模保持不變的前提下,Top-1測試精度和Top-5 測試精度分別提高了2.0 和1.6 個百分點。

圖9 3 種壓縮方法在AlexNet 上的測試精度Fig.9 Test accuracy of three compression methods on AlexNet

圖10 HWGQ+BWN 方法的二值模型在AlexNet 上的Top-1微調結果Fig.10 Top-1 fine-tune results of binary model of HWGQ+BWN method on AlexNet

圖11 HWGQ+BWN 方法的二值模型在AlexNet 上的Top-5微調結果Fig.11 Top-5 fine-tune results of binary model of HWGQ+BWN method on AlexNet

表5 ImageNet 數據集在AlexNet 中的測試精度對比Table 5 Comparison of test accuracy of ImageNet dataset in AlexNet

2.4 加速效果分析

本文設計了一個具有加速作用的2 bit 均勻量化半波高斯量化器,能將浮點型卷積運算轉化為簡單的位運算和同或運算。如表6 所示,本文所提的HWGQ+BWN 方法通過對半波高斯量化器的改進,相比HWGQ-Net 方法實現了10 倍的訓練加速,相比Full-Precision 方法實現了30 倍的訓練加速。

表6 3 種壓縮方法在訓練過程中的加速比對比Table 6 Comparison of speedup ratio of three compression methods in the training process

3 結束語

本文提出一種神經網絡壓縮方法,采用近似ReLU 的半波高斯量化器對輸入部分進行量化,在反向傳播階段利用ReLU 函數解決梯度不匹配問題。在此基礎上,通過改進的2 bit 均勻半波高斯量化器加速訓練過程,并采用交替更新方法對已訓練的二值模型進行縮放因子和二元權值微調,進一步提高神經網絡模型測試精度。實驗結果表明,在神經網絡模型規模保持不變的情況下,該方法能明顯提高模型測試精度并加快訓練速度。下一步將研究不同稀疏度的半波高斯量化器對神經網絡模型測試精度和加速效果的影響,并在滿足模型壓縮規模的條件下,將該半波高斯量化器與三值模型相結合進一步提高測試精度。

猜你喜歡
方法模型
一半模型
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
學習方法
3D打印中的模型分割與打包
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
FLUKA幾何模型到CAD幾何模型轉換方法初步研究
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
捕魚
主站蜘蛛池模板: 视频二区中文无码| 婷婷亚洲天堂| 天天色综网| 国产乱人伦AV在线A| 人妻一区二区三区无码精品一区| 久夜色精品国产噜噜| 午夜国产小视频| 亚洲欧美成人综合| 精品无码一区二区三区电影| 黄色国产在线| 国产极品美女在线观看| 浮力影院国产第一页| 亚洲乱码精品久久久久..| 亚洲视频色图| 国产在线第二页| 国产成人精品一区二区免费看京| 高清无码一本到东京热| 麻豆精品在线视频| 国产成人av大片在线播放| 亚洲人成网站在线观看播放不卡| 无码中文AⅤ在线观看| 91精品啪在线观看国产60岁| 亚洲天堂网站在线| 久草视频精品| 久久国产精品77777| 亚洲天堂免费在线视频| 亚洲国产高清精品线久久| 91在线播放免费不卡无毒| 91久久青青草原精品国产| 午夜限制老子影院888| 国产特级毛片| 东京热av无码电影一区二区| 国产一区二区色淫影院| 99视频在线免费看| 国产成人做受免费视频| 欧美午夜在线播放| 国产三级a| 三上悠亚一区二区| 精品人妻AV区| 在线观看av永久| 午夜日韩久久影院| 99在线免费播放| 亚洲国产成人精品无码区性色| 亚洲Av激情网五月天| 国产黄色片在线看| 2021无码专区人妻系列日韩| av手机版在线播放| 另类欧美日韩| 波多野结衣一二三| 国产va免费精品观看| 亚洲精品777| 最新精品久久精品| 欧美三级不卡在线观看视频| 色欲综合久久中文字幕网| 真人高潮娇喘嗯啊在线观看| 88av在线看| 人妖无码第一页| 欧美国产视频| 99精品在线视频观看| 另类综合视频| 午夜日本永久乱码免费播放片| 久久96热在精品国产高清| 在线精品视频成人网| 毛片在线区| 国产精品lululu在线观看| 国产日韩欧美在线播放| 中国一级特黄大片在线观看| 51国产偷自视频区视频手机观看| 夜夜拍夜夜爽| 日本高清免费一本在线观看| 成色7777精品在线| 成AV人片一区二区三区久久| 韩日免费小视频| 中文字幕首页系列人妻| 日本人真淫视频一区二区三区| 亚洲欧州色色免费AV| 国产精品香蕉| 亚洲精品欧美重口| 九九久久99精品| 国产精品无码AV片在线观看播放| 99精品这里只有精品高清视频| 亚洲天堂视频在线免费观看|