亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于字典學習的卷積神經(jīng)網(wǎng)絡壓縮方法

        2020-04-23 05:42:46張永輝
        計算機工程與設計 2020年4期
        關鍵詞:實驗方法

        耿 旭,張永輝,張 健

        (海南大學 信息與通信工程學院,海南 海口 570228)

        0 引 言

        近幾年,隨著數(shù)值計算設備性能的提升,卷積神經(jīng)網(wǎng)絡(convolution neural network)得以快速發(fā)展,并在圖像分類[1-3]、目標檢測[4-6]等領域中取得了優(yōu)異的成績。但是,卷積神經(jīng)網(wǎng)絡的計算量較大,模型參數(shù)非常多,對一些資源有限的設備很不友好。神經(jīng)網(wǎng)絡壓縮的目的是在不影響神經(jīng)網(wǎng)絡性能的情況下,降低網(wǎng)絡計算量和減少存儲空間,本文的研究重點是減少存儲空間。目前,國內(nèi)外學者在神經(jīng)網(wǎng)絡模型壓縮方面已經(jīng)取得不少的研究成果:Han等[7]通過參數(shù)裁剪、K-means聚類量化以及哈夫曼編碼實現(xiàn)神經(jīng)網(wǎng)絡模型壓縮。Denton等[8]提出低秩近似的方法來減少模型參數(shù)。Srinivas等[9]通過比較同層內(nèi)不同神經(jīng)元的權重向量的相似度,將相似的向量合并,達到網(wǎng)絡壓縮的目的。Novikov等[10]提出張量分解的方法實現(xiàn)網(wǎng)絡模型壓縮。

        基于對參數(shù)進行K-means聚類的思想,提出了對卷積核進行聚類的方法,實驗結果表明,將卷積核聚為k類之后,若k比較小,相應的壓縮率也小,但是神經(jīng)網(wǎng)絡的準確率明顯下降,若k比較大,準確率波動小,但是壓縮率高。為了保持準確率的同時,降低壓縮率,進一步提出使用K-SVD字典學習算法對卷積神經(jīng)網(wǎng)絡進行壓縮,實驗結果表明,該方法能將卷積核參數(shù)占用的存儲空間降低至原先的12%左右,并且卷積神經(jīng)網(wǎng)絡的準確率波動不足0.1%。

        1 K-SVD字典學習

        K-SVD字典算法是Aharon等提出的,用于更新過完備字典中原子的算法。給定訓練數(shù)據(jù)Y=[y1,y2,…,yt]∈Rn×t, K-SVD的優(yōu)化函數(shù)如式(1)所示

        (1)

        其中,D=[d1,d2,…,dk]∈Rn×k為字典矩陣,X=[x1,x2,…,xt]∈Rk×t為稀疏系數(shù)矩陣,T為列向量的稀疏度。求解此優(yōu)化問題,分為兩個階段:稀疏編碼階段和字典更新階段。在稀疏編碼階段,首先固定字典D,通過追蹤算法(本文使用的是OMP(orthogonal matching pursuit)算法),對稀疏系數(shù)矩陣X逐列求解,如式(2)所示

        (2)

        (3)

        此時優(yōu)化問題可描述為式(4)

        (4)

        E′j=U∑VT

        (5)

        2 壓縮方法

        本文提出的壓縮方法分為3個階段,第一個階段是卷積核參數(shù)預處理,將所有卷積層的參數(shù)提取出來,并將其整理成一個參數(shù)矩陣,以便后續(xù)處理。第二個階段是卷積層參數(shù)的稀疏表示,使用K-SVD字典學習算法對參數(shù)矩陣進行學習,得到字典和稀疏系數(shù)矩陣。第三個階段是卷積核參數(shù)壓縮,對稀疏系數(shù)矩陣進行量化編碼,減少其占用的存儲空間。

        2.1 卷積核參數(shù)預處理

        卷積神經(jīng)網(wǎng)絡主要由卷積層和全連接層組成,本文提出的方法是針對卷積層進行的壓縮。卷積層的參數(shù)主要為四階張量,4個維度分別是輸入通道數(shù)i,輸出通道數(shù)o,卷積核的長度h和寬度w。卷積層的卷積核數(shù)目m=o×i, 單個卷積核參數(shù)量n=h×w, 本文壓縮方法是針對尺寸為 3×3 的卷積核,此時n=9, 將卷積層的參數(shù)整理為參數(shù)矩陣Yl∈R9×m。 如果遇到尺寸較大(例如7×7或5×5)的卷積核,則需要改變網(wǎng)絡結構,將此卷積層用多個卷積核尺寸為3×3的卷積層進行堆疊,然后重新訓練網(wǎng)絡。按照此方法將所有卷積層參數(shù)都整理為二維參數(shù)矩陣,然后對所有的參數(shù)矩陣在行方向上進行拼接,形成新的參數(shù)矩陣Y=[y1,y2,…,yt]∈R9×t, 其中yi,i∈{1,2,…,t} 表示單個卷積核的參數(shù),t是所有卷積層卷積核的總數(shù)目,Y是此卷積神經(jīng)網(wǎng)絡所有卷積層參數(shù)組成的矩陣。

        2.2 卷積核參數(shù)稀疏表示

        將卷積層參數(shù)表示為Y=[y1,y2,…,yt]∈R9×t, 使用K-SVD字典學習算法對參數(shù)矩陣Y進行學習,從而得到字典矩陣D=[d1,d2,…,dk]∈R9×k和稀疏系數(shù)矩陣X=[x1,x2,…,xt]∈Rk×t。 此時yi(單個卷積核參數(shù))可以用字典D中T(T?k) 個原子的線性組合來近似表示,即yi≈Dxi。

        2.3 卷積核參數(shù)壓縮

        經(jīng)過K-SVD算法稀疏表示之后,得到稀疏系數(shù)矩陣X,由于xi中最多含有T個非零項,將xi中的非零項提取出來,并記錄其索引,得到x′i和索引si。若向量x′i和si的長度小于T,則補零,直至長度等于T,由稀疏的系數(shù)矩陣X得到稠密的系數(shù)矩陣X′=[x′1,x′2,…,x′t]∈RT×t和索引矩陣S=[s1,s2,…,st]∈NT×t。X′中的數(shù)值都是浮點數(shù),占用的存儲空間較大,通過觀察發(fā)現(xiàn)其數(shù)值集中在一定范圍內(nèi),因此可以將X′中的數(shù)值線性映射至0到1的范圍內(nèi),然后乘以256并取整,得到整數(shù)矩陣Xz∈NT×t。 這一過程將浮點數(shù)轉化為0至256之間的整數(shù),X′中的每一個數(shù)值都可以用一個字節(jié)存儲。

        存儲卷積層參數(shù)需要存儲字典矩陣D、索引矩陣S和整數(shù)矩陣Xz,所以本文方法的壓縮效果和字典原子數(shù)目k、卷積核總數(shù)t以及稀疏系數(shù)矩陣列向量的稀疏度T相關。假設卷積核參數(shù)都是4字節(jié)的浮點數(shù),壓縮率Q的計算方式如式(6)所示

        (6)

        其中,ω表示存儲一個字典索引所占的比特數(shù),ceil表示向上取整。從公式中可以發(fā)現(xiàn),對壓縮率影響最大的是T,通常情況下,由于字典原子數(shù)k遠小于卷積核的總數(shù)目t,所以字典原子數(shù)k對壓縮率的影響較小。

        3 實驗及結論

        為了檢驗本文方法的壓縮效果,分別在MNIST手寫數(shù)字數(shù)據(jù)集和CIFAR-10圖像分類數(shù)據(jù)集上使用了不同的卷積神經(jīng)網(wǎng)絡結構進行壓縮實驗。實驗平臺為ubuntu 16.04操作系統(tǒng)和開源深度學習框架caffe。

        3.1 LeNet-C5在MNIST數(shù)據(jù)集上的實驗

        MNIST數(shù)據(jù)集是美國國家標準與技術研究所對250個不同人的手寫數(shù)字整理而成的數(shù)據(jù)集,其包含訓練樣本 60 000 個、測試樣本10 000個,每個樣本都由一張分辨率為28×28的灰度圖和其相對應的標簽數(shù)字(0~9)組成。

        LeNet-C5是本文設計的一種無全連接層的卷積神經(jīng)網(wǎng)絡結構,由5個卷積核尺寸為3×3的卷積層組成,所有的卷積層均無偏置項,所以整個卷積神經(jīng)網(wǎng)絡的參數(shù)均為卷積核參數(shù),LeNet-C5網(wǎng)絡結構如圖1所示。

        圖1 LeNet-C5網(wǎng)絡結構

        其中“32@3×3 CONV”表示該卷積層有32個尺寸為3×3的卷積核,卷積步長為1,“ReLU”表示激活函數(shù)為ReLU(rectified linear unit),“2×2 MP”表示該池化層的池化步長為2,池化尺寸為2×2,池化方式為最大池化。最后,使用Softmax分類器進行分類。該網(wǎng)絡的權值正則化方式為L2正則化,正則化系數(shù)為0.0005,初始學習率為0.01,每5000次迭代,學習率除以10。網(wǎng)絡經(jīng)過20 000次迭代后,準確率為99.16%,存儲網(wǎng)絡參數(shù)占用的存儲空間為530 KB。

        網(wǎng)絡訓練完成之后,選取原子數(shù)目k為16、32、64、128等7個值,X的列向量稀疏度T選取1、2、3這3個數(shù)值,使用本文壓縮方法對卷積神經(jīng)網(wǎng)絡參數(shù)總共進行了21組壓縮實驗。字典學習的迭代次數(shù)為30次(已收斂),壓縮后LeNet-C5網(wǎng)絡的準確率如圖2所示,壓縮率如圖3所示。

        圖2 壓縮后LeNet-C5準確率

        圖3 LeNet-C5的壓縮率

        實驗結果表明,當T=1時,準確率隨原子數(shù)目k增長很快,但是最高的準確率為98.94%,準確率有所損失。當T=2,只需要擁有較少原子的字典D就能表達整個網(wǎng)絡的卷積層參數(shù),當k=16時,準確率為97.32%,壓縮率為8.44%;k=256時,準確率為99.11%,壓縮率為12.85%。當T=3時,準確率和T=2時相差無幾,但壓縮率過高,相對于T=2無任何優(yōu)勢。

        3.2 DenseNet在CIFAR-10數(shù)據(jù)集上的實驗

        CIFAR-10數(shù)據(jù)集是一個小巧且常用的標準圖像分類數(shù)據(jù)集,由60 000張分辨率為32×32的彩色圖像組成,分為10類,每類6000張,每類隨機抽取5000圖像作為訓練集,剩余的1000張作為測試集。

        本次實驗使用DenseNet網(wǎng)絡結構[11]在CIFAR-10數(shù)據(jù)集上進行測試,DenseNet是一種各個層之間具有密集連接的卷積神經(jīng)網(wǎng)絡,其每個卷積層的輸入都由前面所有卷積層的輸出進行通道上的拼接而成,而該層的輸出也會直接用于后面所有卷積層的輸入。本次實驗所使用的DenseNet具有39個卷積層,其中37個卷積層的卷積核大小為3×3,邊緣填充為1,步長為1,另兩個卷積層的卷積核大小為 1×1,邊緣填充為0,步長為1,所有卷積層均無偏置項。該網(wǎng)絡僅有一個全連接層置于用于分類的Softmax層之前,其輸出數(shù)目為10。該網(wǎng)絡參數(shù)正則化方式為L2正則化,正則化系數(shù)為0.0001,初始學習率為0.1,迭代到115 000次時,學習率為0.01,迭代到172 500次時,學習率為0.001,經(jīng)過230 000次的迭代,準確率為99.99%。存儲網(wǎng)絡參數(shù)所占用的存儲空間為4.2 MB。

        DenseNet網(wǎng)絡訓練完成之后,進行和LeNet-C5一樣的壓縮實驗,準確率如圖4所示,壓縮率如圖5所示。

        圖4 壓縮后DenseNet的準確率

        圖5 DenseNet的壓縮率

        由于DenseNet網(wǎng)絡的層數(shù)比較多,網(wǎng)絡比較深,所以整個網(wǎng)絡的卷積核數(shù)目極多。當T=1,k=256時,準確率為96.51%,和原始網(wǎng)絡的準確率還有所差距,k=1024時,準確率為99.82%,才基本恢復網(wǎng)絡的準確率,此時壓縮率為7.29%。當T=2時,k=128時,準確率為99.44%,已基本恢復網(wǎng)絡的準確率,此時壓縮率為10.54%,k=256時,網(wǎng)絡準確率為99.99%,完全恢復了網(wǎng)絡的準確率,此時壓縮率為11.37%。當T=3時,在原子數(shù)k較小時,網(wǎng)絡的準確率高于T=2,當k≧128時,網(wǎng)絡的準確率和T=2時無明顯差別,但壓縮性能較差。

        3.3 對比實驗

        為了與常見的網(wǎng)絡參數(shù)裁剪、聚類、編碼混合的壓縮方法進行對比,本次對比實驗,用這種混合的壓縮方法對LeNet-C5和DenseNet進行了壓縮實驗,首先進行網(wǎng)絡參數(shù)裁剪,采用逐步裁剪的策略(每次裁剪10%的參數(shù)),每次裁剪之后再進行重新訓練,更新未裁剪的權值來恢復精度,最終LeNet-C5裁剪了80%的參數(shù)、DenseNet裁剪了70%的參數(shù)。裁剪之后,對權值進行K-means聚類,將每個簇的權值,替換為聚類中心的數(shù)值,之后再進行重新訓練,更新聚類中心來恢復精度。最后,對其進行哈夫曼編碼,實現(xiàn)網(wǎng)絡壓縮。實驗結果見表1。

        由于本文方法并未使用哈夫曼編碼(本文方法與哈夫曼編碼或其它編碼方法并無沖突,可同時使用),壓縮率高于參數(shù)裁剪、K-means聚類、哈夫曼編碼的方法,但是,本文方法沒有進行參數(shù)裁剪,而是參數(shù)近似,所以在準確率方面優(yōu)于對比的方法。另外,本文方法不需要重新訓練網(wǎng)絡,而對比的方法需要多次重新訓練微調網(wǎng)絡,節(jié)省了大量的時間。

        表1 對比實驗結果/%

        3.4 結 論

        這兩組實驗的結果表明,當字典的原子數(shù)目k較小時,T=2的準確率和壓縮率的綜合性能最優(yōu)。當原子數(shù)目k較大時,T=1的綜合性能最好,此時,相似于單純的對卷積核進行聚類,但是多了一個系數(shù),表達能力更強。對比實驗結果表明,本文方法在準確率方面占有優(yōu)勢,由于本文方法未使用哈夫曼編碼或其它編碼方法,壓縮率略差,在壓縮網(wǎng)絡的用時方面,本文方法使用很短的時間就能完成壓縮,而參數(shù)裁剪、K-means聚類的方法,需要進行多次的重新訓練,微調網(wǎng)絡參數(shù),完成壓縮需要大量的時間。

        4 結束語

        本文提出的深度卷積神經(jīng)網(wǎng)絡參數(shù)壓縮算法,使用K-SVD字典學習算法得到的字典矩陣和稀疏系數(shù)矩陣對卷積核參數(shù)進行近似表示,在MNIST和CIFAR-10數(shù)據(jù)集上的實驗結果表明,本文算法可以在網(wǎng)絡準確率變化微小的情況下,實現(xiàn)對卷積神經(jīng)網(wǎng)絡模型的快速有效壓縮。本文所提出的方法只實現(xiàn)了網(wǎng)絡模型的壓縮,并未實現(xiàn)加速,下一步的工作方向是研究卷積神經(jīng)網(wǎng)絡的加速。

        猜你喜歡
        實驗方法
        記一次有趣的實驗
        微型實驗里看“燃燒”
        做個怪怪長實驗
        學習方法
        可能是方法不對
        NO與NO2相互轉化實驗的改進
        實踐十號上的19項實驗
        太空探索(2016年5期)2016-07-12 15:17:55
        用對方法才能瘦
        Coco薇(2016年2期)2016-03-22 02:42:52
        四大方法 教你不再“坐以待病”!
        Coco薇(2015年1期)2015-08-13 02:47:34
        賺錢方法
        亚洲高清在线视频网站| 欧洲熟妇色xxxxx欧美老妇伦| 少妇人妻偷人精品一区二区| 国内自拍偷拍亚洲天堂| 亚洲av网站在线免费观看| 北岛玲日韩精品一区二区三区| 日韩熟女精品一区二区三区视频| 日韩女优av一区二区| 国产探花在线精品一区二区| 久久av无码精品一区二区三区| av网址大全在线播放| 亚洲毛片在线免费视频| 亚洲综合色区另类av| 人妻在线中文字幕| 玩弄丝袜美腿超短裙校花| 亚洲午夜狼人综合影院| 亚洲熟妇无码八av在线播放| 无码午夜剧场| 日韩精品极品免费在线视频| 亚洲乱码无人区卡1卡2卡3| 国产精品久久久久久52avav | 国产精一品亚洲二区在线播放 | 熟女人妻一区二区三区| 国产做国产爱免费视频| 亚洲日韩欧美一区二区三区| 自拍视频国产在线观看| 国产偷国产偷亚洲综合av| 特级做a爰片毛片免费看| 麻豆国产人妻欲求不满谁演的| 日韩在线第二页| 一本久久伊人热热精品中文| 久久亚洲道色综合久久| 亚洲日韩欧洲无码av夜夜摸| 日本不卡一区二区高清中文| 中文字幕高清视频婷婷| 永久免费人禽av在线观看| 天天天综合网| 午夜在线观看一区二区三区四区| 人人妻人人澡人人爽人人精品浪潮 | 极品少妇高潮在线观看| 东京热无码av一区二区|