• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    采用可替代濾波器的卷積神經(jīng)網(wǎng)絡(luò)模型剪枝方法

    2022-03-13 04:04:16周密張維緯陶英杰余浩然
    關(guān)鍵詞:浮點壓縮率剪枝

    周密, 張維緯 , 陶英杰, 余浩然

    (1. 華僑大學(xué) 工學(xué)院, 福建 泉州 362021;2. 華僑大學(xué) 工業(yè)智能化與系統(tǒng)福建省高校工程研究中心, 福建 泉州 362021)

    近年來,深度學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)的發(fā)展使神經(jīng)網(wǎng)絡(luò)模型的效果越來越好,但隨著無人駕駛與智能移動設(shè)備等相關(guān)領(lǐng)域的不斷發(fā)展與創(chuàng)新,對計算能力較弱的邊緣設(shè)備上的深度神經(jīng)網(wǎng)絡(luò)模型的要求越來越高.當(dāng)神經(jīng)網(wǎng)絡(luò)模型部署在移動設(shè)備上時,由于深度神經(jīng)網(wǎng)絡(luò)的特性,參數(shù)量及浮點計算量都是極其龐大的.例如,當(dāng)使用107層YOLO v3網(wǎng)絡(luò)結(jié)構(gòu)檢測分辨率為416 px416 px的圖像時,將產(chǎn)生240 MB的參數(shù)量及多達650億次的乘法累加計算量.然而,支持百億次計算量的邊緣設(shè)備的成本是相對較高的,例如,在NVIDIA Tesla T4上運行YOLOv3網(wǎng)絡(luò)結(jié)構(gòu),每秒可實時檢測40幀圖像,該設(shè)備市場售價近3萬元人民幣,遠超出普遍的經(jīng)濟承受能力,而現(xiàn)有的神經(jīng)網(wǎng)絡(luò)模型在低成本設(shè)備上很難兼顧神經(jīng)網(wǎng)絡(luò)模型的精確性與計算速度.因此,對于移動邊緣設(shè)備來說,應(yīng)在保持精度不降低或者略微降低的情況下,盡可能保證低的存儲空間及少的浮點計算量[1].

    將神經(jīng)網(wǎng)絡(luò)模型剪枝部署于移動邊緣設(shè)備具有優(yōu)勢[1],在非結(jié)構(gòu)化修剪方式方面,Guo 等[2]提出一種動態(tài)的參數(shù)剪枝算法以逼近神經(jīng)網(wǎng)絡(luò)模型壓縮的理論極限.Carreira-Perpinán等[3]通過兩步(學(xué)習(xí)和壓縮)交替優(yōu)化的剪枝方法將原參數(shù)向約束表示的可行集投影,自動找到每層的最優(yōu)稀疏比.Ding等[4]通過一階泰勒展開式判斷剪枝對最終輸出造成的影響排序,網(wǎng)絡(luò)中的權(quán)重根據(jù)排序進行分類.對造成影響較大的權(quán)重,采用常規(guī)的隨機梯度下降(SGD)更新,對其他的權(quán)重則進行權(quán)重衰減,從而實現(xiàn)動態(tài)網(wǎng)絡(luò)剪枝.非結(jié)構(gòu)化的權(quán)重修剪方式能夠有效降低神經(jīng)網(wǎng)絡(luò)模型的大小,但是剪枝完成以后的神經(jīng)網(wǎng)絡(luò)模型需要特定的硬件支持,故其泛化性較差.在結(jié)構(gòu)化修剪中,He等[5]提出CP(channel-pruning)算法,通過添加范數(shù)約束權(quán)重L1進行LASSO(least absolute shrinkage and selection operator)回歸,選擇合適的稀疏通道對訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)模型進行剪枝.Huang等[6]使用數(shù)據(jù)驅(qū)動的方式移除神經(jīng)網(wǎng)絡(luò)模型中多余的濾波器.You等[7]將通過純殘差方式連接的GBN分配到同一組,對全局濾波器重要性進行排序,并對排名較后的進行分組剪枝.He等[8]通過計算幾何中心的方式對處于幾何中心的冗余濾波器進行剪枝.

    上述大部分剪枝策略都是基于啟發(fā)式規(guī)則,此類方法著重于濾波器重要性的排序與修剪,但可能導(dǎo)致次優(yōu)修剪,并且需要專家不斷調(diào)節(jié)參數(shù).確定性策略梯度算法中試錯與獎懲的結(jié)合能夠很好地檢索剪枝策略[9].He等[10]通過使用深度確定性策略梯度(DDPG)算法得到各層剪枝率的最優(yōu)組合,提出一種自動化剪枝AMC(automl for model compression and acceleration on mobile devices)算法.對神經(jīng)網(wǎng)絡(luò)模型所有層采用同一剪枝率的剪枝方法[8]可能會導(dǎo)精度下降,本文結(jié)合濾波器可替代的特性與強化學(xué)習(xí),提出自動化可替代濾波器剪枝方法.

    1 自動化可替代濾波器的剪枝方法

    1.1 總體框架

    手動剪枝方法依賴手動調(diào)節(jié)參數(shù),對神經(jīng)網(wǎng)絡(luò)模型每一層進行相同壓縮率的剪枝方法可能會降低神經(jīng)網(wǎng)絡(luò)模型的精度.受AMC算法的啟發(fā)[10],利用強化學(xué)習(xí)的方式進行自動化剪枝,不需要專家手動調(diào)節(jié)參數(shù),不僅避免耗時,還能獲得組合剪枝策略.策略針對神經(jīng)網(wǎng)絡(luò)模型不同層實施不同的壓縮率,使整體上達到目標壓縮率.相較于隨機性策略的強化學(xué)習(xí)方法,DDPG算法的效率更高,能夠通過更少的數(shù)據(jù)獲得連續(xù)且確定的動作輸出.同時,DDPG算法中離線策略能夠很好地避免確定性策略對環(huán)境探索存在的不足.在自動化剪枝過程中,引入可替代濾波器的搜索,搜索神經(jīng)網(wǎng)絡(luò)模型每一層中能夠被同一層中其他濾波器表示的可替代濾波器.通過對可替代濾波器的剪枝,能最大程度保留原有神經(jīng)網(wǎng)絡(luò)模型的精度.

    算法完整框架,如圖1所示.算法由DDPG算法、獲取剪枝的目標濾波器和濾波器的剪枝操作3部分組成.在算法運行過程中, DDPG算法在獲得當(dāng)前神經(jīng)網(wǎng)絡(luò)模型層的屬性特征以后, 經(jīng)過降維轉(zhuǎn)化,將原本的離散變量轉(zhuǎn)化為連續(xù)的變量,并傳導(dǎo)給演員網(wǎng)絡(luò)與評論家網(wǎng)絡(luò),由演員網(wǎng)絡(luò)輸出確定性的神經(jīng)網(wǎng)絡(luò)模型的每一層剪枝壓縮率,指導(dǎo)可替代濾波器進行剪枝.將可替代濾波器的參數(shù)值歸零,從而達到剪枝效果,在執(zhí)行完神經(jīng)網(wǎng)絡(luò)模型所有層的剪枝后,算法在驗證集上根據(jù)浮點計算量進行準確性獎勵,并將結(jié)果返回給評論家網(wǎng)絡(luò),同時,將當(dāng)前的剪枝策略保存到經(jīng)驗采樣池中,然后,執(zhí)行下一輪的網(wǎng)絡(luò)剪枝,直到所有剪枝周期結(jié)束.

    圖1 算法完整框架Fig.1 Complete framework of algorithm

    1.2 可替代濾波器的檢索

    在可替代濾波器搜索策略上,通過幾何中位數(shù)的方式進行搜索[11],如果該濾波器可以被幾何中心點周圍其余濾波器表示,即可判定其為可替代濾波器.由于幾何中位數(shù)是歐幾里得空間中數(shù)據(jù)中心性的經(jīng)典魯棒性估計[11],因此,可以使用幾何中位數(shù)的方法獲取第i層網(wǎng)絡(luò)中所有濾波器的信息.同時,對處于幾何中心的濾波器進行選擇,神經(jīng)網(wǎng)絡(luò)模型第i層中某一個濾波器到其他濾波器的距離之和為

    (1)

    在尋找可替代濾波器的過程中,如果一個濾波器到神經(jīng)網(wǎng)絡(luò)模型某一層中所有其他濾波器的整個距離最短,就可以認為它是處于最靠近中心的濾波器.通過求解該濾波器與其他濾波器的最小歐氏距離,就能夠找到其中最接近幾何中心的濾波器,即認為選定的濾波器Fi,j*含有的信息能夠被同一層中其他的濾波器含有的信息表示,所以修剪這些濾波器對于網(wǎng)絡(luò)的性能幾乎沒有影響.由于計算幾何中心十分耗時,且在濾波器的分布中可能存在沒有任何一個濾波器處于幾何中心的情形.所以,距離最短問題可以轉(zhuǎn)化為所有候選層中的濾波器距離其他濾波器的距離和最小問題,即

    (2)

    在實際檢索中,計算獲得的幾何中心并不能保證濾波器在該層中一定存在[8],即如果在該層的幾何中心處不存在濾波器,那么距離其他濾波器距離和最小的濾波器可以認定為該層的幾何中心濾波器.

    在實際剪枝過程中,根據(jù)層次的不同,執(zhí)行不同數(shù)量的濾波器剪枝,即通過不同層的壓縮率與該層的濾波器數(shù)量計算執(zhí)行剪枝的濾波器數(shù)量.在濾波器距離的排序中,將所有的濾波器進行幾何中心距離計算,獲得距離排序.按照需要剪枝的濾波器數(shù)量進行剪枝.該選定的濾波器為

    (3)

    剔除中心濾波器后,迭代計算,剔除選定距離的濾波器,直到滿足該層剪枝數(shù)量的濾波器被全部找到為止.因此,所有選定的濾波器Fi,j*和該層剩余的濾波器共享絕大多數(shù)的基本信息,也即該濾波器所包含的信息可以被其他濾波器代替表示.為了避免刪除濾波器導(dǎo)致網(wǎng)絡(luò)模型的不規(guī)則,將冗余濾波器的權(quán)重參數(shù)設(shè)置為零,而不是直接將濾波器刪除,剪枝以后的模型經(jīng)過微調(diào)能夠很快恢復(fù)到原始性能.

    1.3 強化學(xué)習(xí)

    對于模型所有層(敏感層與非敏感層)均進行相同壓縮率的剪枝操作[8],模型每一層的濾波器剪枝數(shù)量為目標壓縮率與該層的所有濾波器數(shù)量之積.此方式可能導(dǎo)致參數(shù)重要性高的敏感層的剪枝率過高,導(dǎo)致不必要的精度損失.以DDPG算法作為代理連續(xù)控制壓縮比,對不同神經(jīng)網(wǎng)絡(luò)模型層次以不同壓縮率進行自動化剪枝.DDPG算法由評論家當(dāng)前網(wǎng)絡(luò)、評論家目標網(wǎng)絡(luò),演員當(dāng)前網(wǎng)絡(luò)、演員目標網(wǎng)絡(luò)4個神經(jīng)網(wǎng)絡(luò)構(gòu)成.環(huán)境狀態(tài)St的10個屬性特征分別為n,c,h,w,stride,k,F(xiàn)LOPs[t],Reall,Rest,at-1.DDPG代理能夠很好地將所有的卷積層區(qū)分開,卷積核大小為n×c×k×k,輸入值為c×h×w;FLOPs[t]為第t層的浮點計算次數(shù);Reall為前面所有已剪枝層減少的浮點計算量(FLOPs)的總數(shù);Rest為余下各層中剩余的FLOPs總數(shù).在這些屬性特征傳遞給代理之前,所有的屬性特征都會被壓縮到[0,1],以避免因為數(shù)值大小對模型訓(xùn)練產(chǎn)生的影響.

    由于模型的剪枝對于模型的稀疏程度十分敏感,隨著離散動作數(shù)量的急劇增加,動作空間的搜索難度也急劇加大,導(dǎo)致很難做到高效且快速的檢索.所以,通過選擇a∈(0,1]的連續(xù)動作空間進行更精確的壓縮.在強化學(xué)習(xí)指導(dǎo)剪枝的過程中,代理從濾波器剪枝的環(huán)境中獲得其所處的第t層的環(huán)境狀態(tài)St,獲得當(dāng)前特征向量φ(S).將St狀態(tài)下的動作At作為當(dāng)前層的壓縮率,將目標壓縮率下需要剪枝的濾波器的總數(shù)與已完成剪枝的濾波器數(shù)量的差值作為剩余需要剪枝的濾波器的數(shù)量,通過DDPG算法反饋的壓縮率執(zhí)行當(dāng)前層剪枝過程.完成當(dāng)前層的剪枝后,得到當(dāng)前層剪枝完成以后的短期獎勵R及第t層剪枝完成以后的新環(huán)境狀態(tài)St+1.

    將φ(S),At,R,St+1對應(yīng)的特征向量φ(St+1)及判斷是否為終止狀態(tài)的is_end存放到經(jīng)驗回放池中,其中,is_end用來評估是否處于剪枝模型的最后一層.對于模型的下一層,代理會接收上一層剪枝完成后所產(chǎn)生的新環(huán)境狀態(tài)St+1.執(zhí)行與第t層網(wǎng)絡(luò)模型相同的自動化剪枝流程,直到濾波器的剪枝數(shù)量達到目標剪枝數(shù)量.在判斷完成最后一層的剪枝后,當(dāng)is_end值為真時,模型會在驗證集上評估剪枝完成的模型的準確性獎勵RFLOPs并返回給代理,同時,將此次的剪枝策略及獎勵RFLOPs存放到字典中.

    (4)

    每一次演員當(dāng)前網(wǎng)絡(luò)選擇的動作A會增加一定的噪聲N,并且噪聲會在每輪剪枝完后呈指數(shù)衰減.最終和環(huán)境交互的動作A為

    A=πθ(S)+N.

    (5)

    DDPG算法通過均方差損失函數(shù)、梯度反響傳播的方式更新評論家當(dāng)前網(wǎng)絡(luò)的所有參數(shù),并定期將其復(fù)制到評論家目標網(wǎng)絡(luò).即

    (6)

    式(6)中:φ(Sj)為當(dāng)前Sj狀態(tài)獲得的特征向量;Q(φ(Sj),Aj,ω)由評論家當(dāng)前網(wǎng)絡(luò)獲得.

    損失函數(shù)通過梯度反響傳播的方式更新演員當(dāng)前網(wǎng)絡(luò)的所有參數(shù)θ,即

    (7)

    式(7)中:Q(Sj,Aj,θ)由評論家當(dāng)前網(wǎng)絡(luò)計算所得.

    在不損失模型精度情況下,為了準確找出壓縮情況,算法通過總結(jié)文獻[10]的研究經(jīng)驗,將獎勵函數(shù)設(shè)置為

    RFLOPs=-Error·ln(FLOPs).

    (8)

    式(8)中:ln(FLOPs)以e為底的對數(shù),且與Error成反比,該獎勵函數(shù)對誤差敏感,能更好支持模型剪枝中對FLOPs的減少.

    提出的自動化可替代濾波器剪枝算法,如算法1所示.

    算法1

    Input:training data:X.

    Initialize:model parameter W = {W(i),0 ≤ i ≤ L} Action,Ni

    for episode=1;episode≤episodemax;episode + + do

    Update the model parameter W based on X

    for i = 1;i ≤ L; i + + do

    Initialize the reduced model size so far

    Wall=∑LWL

    Wrest=∑L=i+1WL

    Wduty=α*Wall-Actionmax*Wrest-Wreduced

    Actioni=max(Actiont,Wduty/Wi)

    Wreduced=Wreduced+Actioni*Wi

    Find Actioni*Ni+1filters that satisfy Equation 2

    Zeroize selected filters

    If i==L

    Update the Reward

    end if

    end for

    end for

    Obtain the compact model W*from W

    Output:The compact model and its parameters W*

    2 實驗結(jié)果與分析

    2.1 實驗環(huán)境

    搭建Pytorch環(huán)境進行訓(xùn)練,系統(tǒng)為Ubuntu18.04,電腦硬件配置為Intel(R)Core(TM)i7-6700 CPU@3.4 GHz,NVIDIA GeForce TITAN Xp;軟件配置為CUDAToolkitv10.0,Anaconda3和Pycharm 2019.

    2.2 數(shù)據(jù)集與網(wǎng)絡(luò)模型

    算法在公開的CIFAR-10數(shù)據(jù)集的VGGNet-16和ResNet-56[12]兩種模型及公開的ImageNet[13]數(shù)據(jù)集的Mobilenet-V1和Mobilenet-V2兩種模型上進行實驗.CIFAR-10數(shù)據(jù)集包含10類,每一類包含6 000張圖片,共60 000張圖片,每張圖片均是分辨率為32 px×32 px的三通道RGB(三原色)圖片,其中:50 000張為訓(xùn)練集圖片,10 000張為測試集圖片.ImageNet數(shù)據(jù)集作為大型數(shù)據(jù)集,訓(xùn)練集包含分辨率為224 px×224 px的1 000類圖片,每類圖片包含1 300張圖片.測試集包含50 000張圖片.

    2.3 對比算法

    對比算法有CP算法[5]與AMC算法[10].實驗效果衡量指標主要有算法準確率、參數(shù)量及浮點計算量.算法準確率用來衡量模型分類結(jié)果的好壞.參數(shù)量用來衡量神經(jīng)網(wǎng)絡(luò)所占計算機內(nèi)存的大小,參數(shù)量的壓縮比例是指剪枝后的參數(shù)量與未剪枝的參數(shù)量的減少比例.浮點計算量指的是浮點運算次數(shù),用來衡量網(wǎng)絡(luò)模型復(fù)雜程度,浮點計算量的減少說明網(wǎng)絡(luò)在實際運算中可以取得加速效果,減少量越大,說明加速效果越明顯.

    2.4 CIFAR-10數(shù)據(jù)集實驗結(jié)果

    將提出的算法運用到不含直連的VGGNet-16與含有直連的ResNet-56神經(jīng)網(wǎng)絡(luò)模型上,VGGNet-16模型,ResNet-56模型在CIFAR-10數(shù)據(jù)集上的剪枝比較,如表1所示.表1中:η為壓縮率;ε為精度,Δε為精度變化.

    表1 VGGNet-16模型,ResNet-56模型在CIFAR-10數(shù)據(jù)集上的剪枝算法比較Tab.1 Comparison of pruning algorithms using VGG-16 model and ResNet-56 model On CIFAR-10 dataset

    由表1可知:VGGNet-16神經(jīng)網(wǎng)絡(luò)模型的壓縮率為20%時,相較于CP算法與AMC算法,文中算法性能降低得最小,精度僅降低了1.1%;ResNet-56神經(jīng)網(wǎng)絡(luò)模型壓縮率為50%時,相較于CP算法與AMC算法,文中算法性能降低得較小,精度僅降低了0.7%.

    對于FLOPs約束下的常用模型的剪枝,文中算法通過強化學(xué)習(xí)執(zhí)行不同剪枝率,保證學(xué)習(xí)過程產(chǎn)生最優(yōu)剪枝組合策略,能夠很好地避免敏感層的過度剪枝.對比根據(jù)經(jīng)驗手動調(diào)參方法與啟發(fā)式方法,處于幾何中心的冗余濾波器的剪枝能獲得更好的剪枝效果,能夠很好地保留對模型精度影響大的濾波器.對比引入靜態(tài)正則項進行自動化剪枝的AMC算法,文中算法通過對可替代濾波器進行冗余濾波器剪枝,能夠很好地保留包含較多有用信息的濾波器,從而獲得更低的精度損失.

    2.5 ImageNet數(shù)據(jù)集實驗結(jié)果

    將提出的算法運用到ImageNet數(shù)據(jù)集上,在保持相同壓縮率下,文中算法在Mobilenet-V1模型和Mobilenet-V2模型上的剪枝效果比較,如表2所示.表2中:-表示未執(zhí)行剪枝操作;ε(Top-1)為排名第一的類別與實際相符的精度.

    由表2可知:在保持相同壓縮率條件下,文中算法保留的模型能夠獲得更好的精度保留;當(dāng)FLOPs為41×106次時,相比于基準算法,文中算法在Mobilenet-V1模型上的精確度高出7.5%,文中算法在Mobilenet-V2模型上的精確度高出4.7%.

    表2 文中算法在Mobilenet-V1模型和Mobilenet-V2模型上的剪枝效果比較Tab.2 Comparison of pruning effect of proposed algorithm on Mobilenet-V1 model and Mobilenet-V2 model

    文中算法與AMC算法的Top-1準確性比較,如表3所示.由表3可知:與AMC算法相比,文中算法能夠更好地保留模型中重要的濾波器.同時,對于保留相同數(shù)量的濾波器,能夠保證更小的精度損失,而獲得更好的結(jié)果.具體表現(xiàn)為在保持基本相同的FLOPs減少量的基礎(chǔ)上,文中算法在精度損失上更小,剪枝完成后的Mobilenet-V1模型精度提高了0.1%,Mobilenet-V2模型精度提高了0.9%.

    表3 文中算法與AMC算法的Top-1準確性比較Tab.3 Accuracy comparison of proposed algorithm and AMC algorithms

    3 結(jié)束語

    針對卷積神經(jīng)網(wǎng)絡(luò)龐大的浮點計算量,提出對可替代濾波器進行自動化剪枝的方法.在保證精度基本不降低的情況下,文中算法大幅度了降低浮點計算量,保證了對不同結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)模型的良好適應(yīng)性.對于要求極嚴苛的超小型邊緣設(shè)備的小存儲量,未來的工作將在保證精度降低不大的前提下進行模型的進一步壓縮與加速.

    猜你喜歡
    浮點壓縮率剪枝
    人到晚年宜“剪枝”
    LEO星座增強GNSS PPP模糊度浮點解與固定解性能評估
    基于YOLOv4-Tiny模型剪枝算法
    基于浮點DSP的鐵路FSK信號檢測
    水密封連接器尾部接電纜的優(yōu)化設(shè)計
    纏繞墊片產(chǎn)品質(zhì)量控制研究
    剪枝
    天津詩人(2017年2期)2017-03-16 03:09:39
    多載波通信系統(tǒng)中CQI無損壓縮法研究
    分布式多視點視頻編碼在應(yīng)急通信中的應(yīng)用
    基于FPGA的浮點FIR濾波器設(shè)計
    苏尼特右旗| 祁东县| 江源县| 南华县| 泸定县| 绍兴县| 富宁县| 资中县| 青州市| 蒙山县| 电白县| 玉树县| 泉州市| 舞阳县| 顺平县| 壤塘县| 怀宁县| 察雅县| 瑞安市| 绥江县| 溧水县| 额敏县| 苏尼特右旗| 崇左市| 万源市| 陕西省| 济南市| 油尖旺区| 襄垣县| 上犹县| 县级市| 榆树市| 关岭| 楚雄市| 平果县| 宣汉县| 金山区| 乌兰察布市| 大新县| 濉溪县| 乌苏市|