国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于深度神經網絡二階信息的結構化剪枝算法

2021-02-05 03:02:44季繁繁袁曉彤
計算機工程 2021年2期
關鍵詞:剪枝特征向量二階

季繁繁,楊 鑫,袁曉彤

(南京信息工程大學江蘇省大數據分析技術重點實驗室,南京 210044)

0 概述

隨著計算機運算速度的提升和大數據技術的發(fā)展,自從2012年AlexNet[1]在ImageNet競賽中獲得冠軍后,研究人員不斷設計出更深和更復雜的深度神經網絡(Deep Neural Network,DNN)模型以期獲得更好的分類精度。但深度神經網絡復雜的結構所需的龐大計算資源使其在實際應用中受到一定的限制,主要表現為DNN模型在資源受限的無人機、智能手機、平板電腦等硬件設備上難以進行有效部署,因此網絡壓縮技術應運而生。目前主流的網絡壓縮方法有網絡剪枝[2-4]、網絡參數量化[5-6]與分解[7]、網絡結構輕量化設計[8]和知識蒸餾[9]等,其中網絡剪枝是對網絡中的冗余元素進行裁剪,是最常用的網絡壓縮方法之一,其能同時對卷積層和全連接層進行裁剪,尤其是結構化剪枝方法可以不受硬件條件的限制而直接達到減少網絡內存占用和網絡加速的目的,并且網絡剪枝還可以與其他網絡壓縮方法進行兼容,如剪枝后的網絡能通過知識蒸餾提高網絡性能[10],或者利用網絡結構輕量化設計進一步提升網絡壓縮效果[5]。

網絡剪枝的核心是衡量元素的重要性并對其進行裁剪,現有算法提出的剪枝標準通常只涉及網絡模型的零階信息(參數本身信息)或一階信息(梯度信息)[4,11-12],并沒有涉及網絡二階信息。然而,網絡模型的二階信息也是十分重要的信息,在機器學習優(yōu)化任務中可以加快模型收斂速度[13]。在網絡量化任務中,HAWQ算法[14]利用網絡結構的二階信息將網絡不同層次量化為不同精度。在網絡剪枝任務中,OBD[2]和OBS[3]算法均利用網絡二階信息,但是這2種算法需要計算Hessian矩陣,所以會消耗大量計算資源,并且OBS算法的改進版本L-OBS算法[15]依然需消耗較多的計算資源,而且這3種剪枝算法都屬于非結構化剪枝算法,需要特定的硬件支持才能達到網絡加速效果。

為將深度神經網絡二階信息用于網絡通道剪枝,本文提出一種基于HAWQ[14]算法的結構化剪枝算法。該算法利用冪迭代法[16]獲取網絡通道的二階信息,將其作為衡量通道重要性的依據并進行通道剪枝,再對剪枝后的網絡進行微調得到緊湊網絡,最終將本文算法運用于ResNet[17]網絡與VGGNet[18]網絡,并在Cifar10和Cifar100數據集[19]上進行實驗驗證。

1 相關工作

隨著深度神經網絡在各行各業(yè)的深入應用,深度神經網絡壓縮研究也受到國內外學者的廣泛關注[20]。深度神經網絡剪枝算法在20世紀80年代的代表算法主要有OBD[2]和OBS[3]。HAN等人[4]于2015年對深度神經網絡參數進行有效裁剪,并取得了良好的效果,該方法屬于靜態(tài)剪枝,即裁剪的元素不可恢復。GUO等人[21]于2016年提出動態(tài)剪枝方法,對裁剪的元素采取可恢復機制,有效提高了剪枝后的網絡性能。在OBS算法的基礎上,DONG等人[15]于2017年將深度神經網絡的全局裁剪拓展至逐層裁剪,提出L-OBS算法。

上述剪枝算法均屬于非結構化剪枝,非結構化剪枝的裁剪對象為深度神經網絡參數,其雖然達到了網絡稀疏效果,但需要特定的硬件支持才能達到網絡加速的目的。然而,結構化剪枝可以不受硬件條件的限制,因為其剪枝對象為網絡卷積核,所以可以直接達到網絡加速目的。文獻[11]將網絡通道的L1范數作為衡量通道重要性的依據,并據此裁剪L1范數較小的通道。文獻[22]依據網絡下一層的輸出,裁剪對輸出影響較小的卷積核達到網絡壓縮的目的。文獻[23]在原卷積核的基礎上加入協同層來控制相應卷積核參與網絡運算,使得最終網絡結構變得復雜,但是仍可實現網絡加速。文獻[24]在網絡通道剪枝過程中引入網絡通道可恢復機制,提高網絡的容錯能力。文獻[12]利用深度神經網絡批量歸一化(Batch Normalization,BN)層信息對深度神經網絡進行有效剪枝,并將剪枝算法應用于YOLO網絡剪枝任務中。針對網絡剪枝的預訓練問題,文獻[25]分別對結構化剪枝與非結構化剪枝的經典算法進行深入研究,得出網絡預訓練并非網絡剪枝中的必要步驟,引起了學業(yè)界的廣泛討論。另外,機器學習方法[10,26]也被運用于網絡剪枝任務中對網絡結構實現自動化剪枝,大幅提升了網絡剪枝效率。

2 結構化剪枝算法

本文提出的結構化剪枝算法首先對網絡進行預訓練,然后利用冪迭代法[16]得到網絡參數對應Hessian矩陣的主特征向量,將得到的向量用于衡量網絡通道的重要性并進行通道剪枝,最后對剪枝后的網絡進行再訓練提高網絡性能。

2.1 網絡通道二階信息獲取

2.1.1 冪迭代法

本文算法利用冪迭代法獲取網絡結構的二階信息。冪迭代法是一種用于求解矩陣按模最大特征值(主特征值)及其對應特征向量(主特征向量)的方法。設有n個線性無關的特征向量及其對應的特征值,假設特征值滿足以下關系對于任意非零向量若使用P構造向量序列等式,則式(1)成立:

其中,uk,i是向量uk的第i個分量值[16],只要選取合適的隨機向量u0,當k足夠大時就可以計算P的主特征值λ1及其主特征向量uk。

2.1.2 二階信息獲取

由于每層通道的參數維數很大,其對計算機存儲和計算造成巨大壓力,因此很難直接計算網絡參數的Hessian矩陣,如對于d維的向量,得到其Hessian矩陣的復雜度為O(d2)。受HAWQ算法[14]啟發(fā),本文提出一種新的結構化剪枝算法,利用冪迭代獲取網絡二階信息,其需要計算Hessian矩陣與向量的乘積。

下文對深度神經網絡中網絡通道參數Hessian矩陣對應的主特征向量計算進行具體介紹。假設一個網絡具有LLr(LLr∈?)層網絡結構,每層網絡有Ni+1(0≤i≤LLr-1)個通道,Wi,j表示對應通道參數,因此深度學習損失函數L(W)為:

其中,W={W1,W2,…,WLr},l(xi,yi,W)是訓練集(Χ,Y)中訓練樣本的損失函數,n是樣本數。定義損失函數對應通道參數W的梯度g為:

對于一個與梯度g維數相同的隨機向量v存在式(4)成立:

其中,H是損失函數L對于參數W的Hessian矩陣。式(4)成立的條件之一為向量v是隨機向量,其與參數W無關?;诖耍挛慕o出基于冪迭代法的網絡Hessian矩陣主特征向量求解算法。

算法1基于冪迭代法的網絡Hessian矩陣主特征向量求解算法

輸入網絡參數W、隨機向量v(v與W維度相同)

輸出主特征向量V(V=v)

通過算法1可以得到深度神經網絡參數所對應Hessian矩陣的主特征向量。算法1的算力損耗主要為第5步,因為第5步需要求導,假設參數W維數為d,最大循環(huán)次數為m,所以求解特征向量的算法復雜度為O(md),相比于直接計算Hessian矩陣的計算復雜度O(d2),算法1的計算復雜度明顯降低,其能避免直接求解網絡的Hessian矩陣來獲得其主特征向量,該特征向量包含二階信息。

2.2 基于網絡二階信息的結構化剪枝算法

基于網絡二階信息的結構化剪枝算法框架(第i層)如圖1所示,其中,Pi表示每一層的剪枝率,Ni+1表示輸出通道數。

圖1 基于網絡二階信息的結構化剪枝算法框架(第i 層)Fig.1 Framework of structural pruning algorithm based on second-order information of network(the i-th layer)

經過算法1可以求出網絡參數對應的Hessian矩陣主特征向量V,下文將具體介紹如何利用V進行深度神經網絡結構化剪枝,其中Vi,j(0≤i≤LLr-1,1≤j≤Ni+1)為深度神經網絡參數對應Hessian矩陣主特征向量V在第i層、第j個通道的對應值。本文結構化剪枝算法屬于硬剪枝[11]算法,通道重要性的衡量依據是得出的特征向量V在對應通道Vi,j的Lp范數,計算公式為:

其中:k1、k2分別為卷積核感受野的尺度,若為3×3卷積核,則k1=k2=3;Ni是上層卷積層的輸出通道數。

硬剪枝算法需要對網絡模型進行預訓練,待網絡模型達到較好的性能后再進行通道裁剪。因為直接裁剪后的網絡性能會受到一定損耗,所以需要進行微調恢復網絡性能?;诰W絡二階信息的結構化剪枝算法采用預訓練-剪枝-微調步驟。

算法2基于網絡二階信息的結構化剪枝算法

輸入深度神經網絡、訓練數據Χ、剪枝率Pi

輸出緊湊的網絡結構

算法2的第1步是對神經網絡參數進行隨機初始化;第2步是訓練一個性能良好的深度神經網絡用于剪枝,該步驟屬于網絡預訓練過程;第3步可以通過算法1實現;第5步是計算特征向量的L1范數,即向量元素的絕對值之和;第6步和第7步是對網絡參數進行裁剪;第4步~第9步為一個內循環(huán)過程,對深度神經網絡一層通道進行裁剪;第10步是微調過程,網絡微調實際上是對剪枝后的深度神經網絡進行再訓練,由于剪枝后深度神經網絡的一些網絡通道會缺失,因此網絡精度會降低,需要對剪枝后的網絡參數進行微調得到性能良好的網絡參數W*,計算公式為:

在微調過程中的學習率和迭代次數均小于預訓練時的學習率和迭代次數。

3 實驗結果與分析

本節(jié)主要介紹本文結構化剪枝算法在ResNet[17]和VGGNet[18]網絡模型上的壓縮效果,所有實驗均基于PyTorch框架[27]。

3.1 實驗數據集

Cifar10數據集[19]是深度學習領域較常用的圖片數據集,其常被應用于深度學習的分類任務。Cifar10數據集共分為10類,每類有6 000張圖片,包括10種不同物體,每張圖片為32像素×32像素的三通道RGB圖片。Cifar10數據集共有50 000張訓練集圖片和10 000張測試集圖片。

Cifar100數據集[19]是Cifar10數據集的一個衍生數據集,其所有圖片均與Cifar10數據集相同。Cifar100數據集將Cifar10數據集的每類物體數據進行再劃分,使原有的10類樣本劃分為100類樣本,每類樣本包含600張圖片,所以Cifar100數據集可以看成Cifar10數據集的精細版本。

3.2 對比算法

在實驗中,將本文結構化剪枝算法與以下算法進行對比:

1)PF算法[11]。PF算法是經典的硬剪枝算法,該算法利用已訓練的網絡參數L1范數作為衡量通道重要性的標準并裁剪L1范數較小的通道,并對裁剪后的網絡進行微調。

2)LCCL算法[23]。LCCL算法在卷積層后面加入一個低損耗的協同層來控制卷積層中相應的卷積核參與運算,其雖然達到網絡加速目的,但是網絡結構由此變得更加復雜。

3)Rethinking算法[25]。Rethinking算法將經典的剪枝算法進行復現,使用特殊的再訓練方式對裁剪后的網絡參數進行賦值,從而達到良好的網絡性能。

4)SFP算法[24]。SFP算法是經典的軟剪枝算法,在剪枝過程中對通道采用可恢復機制,提高了算法剪枝效果,但是其相比硬剪枝算法整個剪枝過程更長。

3.3 實驗設置與性能指標

本文算法在剪枝前網絡模型需要進行預訓練160步,初始學習率為0.1,在第80步~第120步內對學習率進行逐步衰減。微調步數為40步或80步,初始學習率設為0.001,在50%的訓練步數后實施學習率衰減。算法1的最大迭代次數m取10。在VGGNet網絡、ResNet56網絡及ResNet110網絡上,本文算法采用PF算法[11]的剪枝率。PF算法通過實驗找出每個網絡模型的敏感層,即對最終輸出結果有很大影響的層,該算法在裁剪過程中跳過敏感層,即敏感層的剪枝率為0,其中:ResNet56網絡A剪枝方式的剪枝率為10%,其跳躍層為第18層、第20層、第38層和第54層;ResNet56網絡B剪枝方式的剪枝率為60%、30%和10%,其跳躍層為第16層、第18層、第20層、第34層、第38層和第54層;ResNet110網絡A剪枝方式只在前期采用50%的剪枝率,其跳躍層為第36層;ResNet110網絡B剪枝方式的剪枝率為50%、40%和30%,其跳躍層為第36層、第38層和第74層;VGG16網絡的A剪枝方式對特定的多個卷積層采用50%的剪枝率。

網絡剪枝算法的性能評價指標主要有分類準確率、參數量以及每秒浮點運算次數(Floating-point Operations Per Second,FLOPS),其中:分類準確率表征DNN模型分類結果;參數量衡量DNN所占用的計算機內存大小,參數量減少比例是剪枝后的網絡與未剪枝的原始網絡在網絡參數量上相比減少的百分比;FLOPS是衡量網絡運行速度的指標,FLOPS減少說明網絡在實際運算中可以取得加速的效果,減少量越大,說明加速效果越明顯。

3.4 結果分析

3.4.1 Cifar10數據集上的實驗結果

表1為本文算法與PF、LCCL等剪枝算法在ResNet與VGGNet網絡模型上的實驗結果對比,其中直接使用文獻[11,23-25]中已有對比算法的實驗結果,加粗數據表示最優(yōu)結果,“—”表示文獻[23-24]缺少相應數據??梢钥闯?,經過本文算法剪枝,網絡結構的參數量與FLOPS均明顯減少,但是網絡性能未受到影響,而且在ResNet110、VGG16等網絡模型上,網絡性能還得到了一定的提升,具體表現為本文算法準確率在ResNet110網絡模型和VGG16網絡模型上分別提升了0.74%和0.45%。

表1 5種剪枝算法在Cifar10數據集上的對比結果Table 1 Comparison results of five pruning algorithms on Cifar10 dataset

在相同的剪枝率下,與PF算法和Rethinking算法相比,本文算法在所有網絡模型上均取得了較好的結果,說明本文算法的剪枝性能最優(yōu)。在ResNet110網絡模型上,本文算法相比LCCL算法在FLOPS減少比例相當的情況下,可以獲得更高的分類準確率,且經過本文算法裁剪后的網絡占用內存更小。在ResNet56網絡模型上,在FLOPS減少比例相近的情況下,本文算法相比SFP算法分類準確率減少比例更具優(yōu)勢,說明其可以與軟剪枝算法取得相當的剪枝性能且實現更簡單。另外,從表1可以看到,ResNet網絡隨著層數的加深,取得的剪枝效果也越來越好,VGG16網絡經過剪枝后分類準確率也得到了一定的提升,說明隨著網絡層數的加深,網絡中可能存在更多的冗余元素,裁剪這些冗余元素會提升分類準確率,從而論證越復雜的深度神經網絡越容易裁剪這一觀點。

3.4.2 Cifar100數據集上的實驗結果

表2為本文剪枝算法與PF算法在Cifar100數據集上的實驗結果,其中加粗數據表示最優(yōu)結果。由于文獻[11]沒有使用Cifar100數據集進行實驗,因此該實驗所有結果均是筆者復現的結果。根據表2可以看出,本文算法在更復雜的分類任務中同樣可以對深度神經網絡進行有效裁剪,在對分類準確率沒有較大影響的情況下網絡模型的參數量與FLOPS都得到明顯減少,但當網絡模型的剪枝率較小時,其分類準確率反而得到了提升。與PF算法相比,本文算法在3個網絡模型上均更具優(yōu)勢,說明其在更復雜的分類任務中也具有更好的剪枝性能。同時,對比網絡模型在兩個數據集上的實驗結果,可以看出深度神經網絡模型在Cifar100數據集上剪枝后的分類準確率減少比例更大,說明其對于不同復雜度的分類任務而言具有不同的冗余度,具體表現為在越復雜的分類任務中網絡結構的冗余度越低。

表2 兩種硬剪枝算法在Cifar100數據集上的對比結果Table 2 Comparison results of two hard pruning algorithms on Cifar100 dataset

3.4.3 不同剪枝率時的實驗結果

根據上述深度神經網絡模型實驗結果可以看出,剪枝率會對網絡模型裁剪效果產生影響。為對此影響進行分析,以ResNet20網絡為例對不同剪枝率下的網絡模型剪枝效果進行統(tǒng)計,具體結果如圖2所示。由于不同網絡存在不同的冗余度,對于ResNet20而言,當剪枝率為10%和30%時,有助于提升深度神經網絡剪枝性能,當剪枝率大于40%時,剪枝性能會下降比較快。由此可以看出,合適的網絡模型剪枝率不僅不會損耗模型性能,而且還有助于提升網絡性能,然而如果網絡模型剪枝率設置過大,雖然網絡結構變得緊湊,但是網絡性能會受到較大影響,具體表現為網絡模型分類準確率大幅降低,因此如何平衡剪枝算法的剪枝率與剪枝后模型的實現效果,對于深度神經網絡剪枝算法而言十分重要。

圖2 不同剪枝率下的DNN模型剪枝效果Fig.2 Pruning effect of DNN model under different pruning rates

4 結束語

本文提出一種基于深度神經網絡二階信息的結構化剪枝算法,利用冪迭代法得到經過預訓練的網絡模型參數Hessian矩陣的主特征向量,然后依據此向量衡量網絡通道的重要性并進行通道剪枝。實驗結果表明,該算法可在對原網絡分類準確率影響較小的情況下實現網絡參數量和FLOPS的有效裁剪。但由于本文算法目前僅在Cifar數據集上進行實驗,后續(xù)可嘗試使用更復雜的數據集,同時考慮與其他網絡壓縮方法進行融合,進一步提高深度神經網絡模型的壓縮效率。

猜你喜歡
剪枝特征向量二階
二年制職教本科線性代數課程的幾何化教學設計——以特征值和特征向量為例
人到晚年宜“剪枝”
克羅內克積的特征向量
基于YOLOv4-Tiny模型剪枝算法
一類二階迭代泛函微分方程的周期解
應用數學(2020年2期)2020-06-24 06:02:46
一類二階中立隨機偏微分方程的吸引集和擬不變集
二階線性微分方程的解法
一類特殊矩陣特征向量的求法
一類二階中立隨機偏微分方程的吸引集和擬不變集
EXCEL表格計算判斷矩陣近似特征向量在AHP法檢驗上的應用
中華建設(2017年1期)2017-06-07 02:56:14
阳山县| 澳门| 巢湖市| 思南县| 石首市| 德令哈市| 禹州市| 南木林县| 静安区| 泌阳县| 白沙| 彭泽县| 工布江达县| 光泽县| 罗甸县| 贡嘎县| 浮山县| 大城县| 苗栗市| 化隆| 广汉市| 万源市| 成武县| 灯塔市| 祁连县| 雅安市| 霸州市| 巩义市| 博乐市| 北碚区| 华坪县| 三明市| 旺苍县| 甘谷县| 桦川县| 剑川县| 文化| 二连浩特市| 清新县| 新田县| 磐安县|