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

        ?

        基于自適應(yīng)分層閾值判斷的神經(jīng)網(wǎng)絡(luò)模型壓縮

        2022-01-14 03:02:06鄒國(guó)良陳金宇鄭宗生王振華
        計(jì)算機(jī)工程 2022年1期
        關(guān)鍵詞:方法模型

        盧 鵬,萬(wàn) 瑩,鄒國(guó)良,陳金宇,鄭宗生,王振華

        (上海海洋大學(xué)信息學(xué)院,上海 201306)

        0 概述

        卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)是一類包含卷積計(jì)算且具有深度結(jié)構(gòu)的前饋神經(jīng)網(wǎng)絡(luò),是深度學(xué)習(xí)的代表算法之一[1]。自深度卷積神經(jīng)網(wǎng)絡(luò)AlexNet[2]問(wèn)世并在圖像分類領(lǐng)域取得優(yōu)異成績(jī)后,CNN 算法得到了廣泛應(yīng)用[3],如計(jì)算機(jī)視覺(jué)領(lǐng)域中的圖像分類、目標(biāo)檢測(cè)、語(yǔ)義分割等。同時(shí),在ImageNet 比賽帶來(lái)的分類挑戰(zhàn)影響下,CNN 技術(shù)在架構(gòu)深度方面獲得重大突破[4],優(yōu)秀模型已經(jīng)從8 層發(fā)展到100 層以上。此外,CNN 在人工智能、自然語(yǔ)言處理、故障診斷上也具有廣闊的應(yīng)用前景。

        面對(duì)眾多挑戰(zhàn),研究者希望構(gòu)建出快速并且緊湊的CNN 網(wǎng)絡(luò)[5-6]。常見(jiàn)的方法有權(quán)值修剪[7-8]、低秩擴(kuò)展[9]、量化、二值化[10]、動(dòng)態(tài)分解等。HAN 等首先計(jì)算出參數(shù)權(quán)重,在不影響整體精度的情況下修剪小幅度的權(quán)值,然后再次訓(xùn)練。但此方法并不能同時(shí)減少計(jì)算時(shí)間和參數(shù)量,因?yàn)閯h除的大部分參數(shù)屬于全連接層,其在總體浮點(diǎn)運(yùn)算中占比很小。如在VGG16 中,全連接層參數(shù)占據(jù)總數(shù)的90%,但在總體浮點(diǎn)運(yùn)算中只占比1%。低秩擴(kuò)展通過(guò)對(duì)網(wǎng)絡(luò)層的分解來(lái)降低計(jì)算成本,量化、二值化、動(dòng)態(tài)分解則進(jìn)行快速推理,都屬于直接學(xué)習(xí)方法。然而,關(guān)于CNN 模型加速和壓縮的研究成果[11],大多都只能單獨(dú)提升速度或存儲(chǔ)容量,較少有能夠同時(shí)解決這兩個(gè)問(wèn)題的方法。另一個(gè)壓縮CNN 模型的方向是網(wǎng)絡(luò)稀疏化。稀疏化可以施加于不同層次的結(jié)構(gòu),這雖然加大了模型壓縮率,加快了推理速度,但重復(fù)次數(shù)多且需要特殊的軟件/硬件加速器來(lái)節(jié)省時(shí)間[10]。

        本文在網(wǎng)絡(luò)正則化的基礎(chǔ)上,提出一種新的閾值判定方法,以去除網(wǎng)絡(luò)層中的冗余連接,減少分配給參數(shù)的存儲(chǔ),從而減少計(jì)算成本。文獻(xiàn)[12]提出的網(wǎng)絡(luò)修剪方法使用了固定閾值,從全局進(jìn)行一次網(wǎng)絡(luò)剪枝,而本文則提出自適應(yīng)動(dòng)態(tài)剪枝算法,在預(yù)剪枝階段逐層自適應(yīng)地分出斷點(diǎn),并采用斷點(diǎn)中的最小值作為閾值,針對(duì)每層不同的閾值標(biāo)準(zhǔn)進(jìn)行剪裁。

        1 相關(guān)工作

        目前CNN 模型已經(jīng)在計(jì)算機(jī)視覺(jué)領(lǐng)域取得了長(zhǎng)足的進(jìn)步,但是因?yàn)樵谝话闱闆r下,深層網(wǎng)絡(luò)比淺層網(wǎng)絡(luò)的效果更好,所以卷積神經(jīng)網(wǎng)絡(luò)參數(shù)巨大,并且計(jì)算卷積層和全連接層需要大量的浮點(diǎn)矩陣乘法,導(dǎo)致計(jì)算開銷也非常大,雖然有的網(wǎng)絡(luò)可以在GPU 上實(shí)時(shí)運(yùn)行,但是如此龐大的規(guī)模使其無(wú)法直接應(yīng)用于手機(jī)等移動(dòng)設(shè)備中。因此,深度學(xué)習(xí)模型的壓縮成為一個(gè)亟需解決的重要問(wèn)題。

        目前多數(shù)CNN 網(wǎng)絡(luò)結(jié)構(gòu)(如VGGNet、AlexNet、ResNet、DenseNet[13]等)在卷積層都會(huì)產(chǎn)生大量的計(jì)算成本,導(dǎo)致全連接層中包含大量的網(wǎng)絡(luò)參數(shù)。因此,很多加速壓縮研究都集中在卷積層和全連接層。

        為降低計(jì)算成本,研究者提出了近似卷積運(yùn)算,即將權(quán)矩陣表示為2 個(gè)較小的低秩乘積,如奇異值分解(SVD)[9],但因?yàn)镃NN 中的計(jì)算操作主要來(lái)自卷積層,所以這種方法在全連接層的作用比卷積層更大。然而,實(shí)現(xiàn)低秩分解通常會(huì)比較困難,因?yàn)榉纸膺^(guò)程包括計(jì)算復(fù)雜度高的分解操作。另一個(gè)問(wèn)題是當(dāng)前的低秩分解方法是逐層進(jìn)行的,不能進(jìn)行全局的參數(shù)壓縮,因?yàn)椴煌木W(wǎng)絡(luò)層具備的信息也是不同的。

        在基于權(quán)值量化的方法中,文獻(xiàn)[14]使用8 位定點(diǎn)整數(shù)來(lái)代替32 位浮點(diǎn)數(shù),文獻(xiàn)[15]提出將實(shí)值權(quán)值量化為二元/三元權(quán)值(限為{-1,1}或{-1,0,1}的權(quán)值),文獻(xiàn)[15]提出了量化卷積神經(jīng)網(wǎng)絡(luò),其量化權(quán)重并將計(jì)算轉(zhuǎn)換為卷積層中的內(nèi)積。但是,二值化網(wǎng)絡(luò)在處理大型CNN 時(shí)會(huì)使準(zhǔn)確率明顯下降。目前的二值化方式大多采用簡(jiǎn)易的矩陣近似策略,忽略了二值化對(duì)最終性能造成的影響。在權(quán)重剪枝方面,文獻(xiàn)[12]提出用小的權(quán)值來(lái)修剪不重要的連接,通過(guò)存儲(chǔ)稀疏格式的模型來(lái)減少存儲(chǔ)空間,但這些方法需要專用的稀疏矩陣運(yùn)算庫(kù)甚至硬件才能實(shí)現(xiàn)加速。針對(duì)結(jié)構(gòu)化稀疏問(wèn)題,文獻(xiàn)[16]提出一種結(jié)構(gòu)化稀疏學(xué)習(xí)(SSL)方法來(lái)稀疏化CNN 中不同層次的結(jié)構(gòu)(如過(guò)濾器、通道或?qū)樱?,文獻(xiàn)[17]在訓(xùn)練時(shí)通過(guò)隨機(jī)去激活卷積層上的輸入-輸出通道連接來(lái)引入稀疏性,文獻(xiàn)[18]在訓(xùn)練過(guò)程中施加了神經(jīng)元水平的稀疏性,使一些神經(jīng)元可以被修剪以獲得緊湊的網(wǎng)絡(luò)。上述方法都利用訓(xùn)練過(guò)程中的群體稀疏化來(lái)獲得結(jié)構(gòu)化稀疏性,是針對(duì)神經(jīng)元或者通道而不是權(quán)重進(jìn)行修剪,因此不需要太多專用庫(kù)來(lái)實(shí)現(xiàn)推理加速,本文所使用的精簡(jiǎn)方法也屬于此類。此外,文獻(xiàn)[19]通過(guò)組合網(wǎng)絡(luò)修剪、加權(quán)量化和霍夫曼編碼來(lái)進(jìn)一步減少存儲(chǔ),文獻(xiàn)[20]提出動(dòng)態(tài)網(wǎng)絡(luò)手術(shù),參考文獻(xiàn)[9]的方法動(dòng)態(tài)修剪和拼接連接。

        雖然已有很多經(jīng)典的CNN 模型[1,21-22],但也有一些自動(dòng)學(xué)習(xí)網(wǎng)絡(luò)架構(gòu)的探索,如在給定資源預(yù)算的情況下引入網(wǎng)絡(luò)架構(gòu)搜索的子模塊/超模塊優(yōu)化[23]。還有一些研究[24]提出利用強(qiáng)化學(xué)習(xí)來(lái)自動(dòng)學(xué)習(xí)神經(jīng)結(jié)構(gòu),這些方法的搜索空間非常大,需要訓(xùn)練數(shù)百個(gè)模型來(lái)區(qū)分優(yōu)劣。雖然選擇僅限于每一層的寬度,但網(wǎng)絡(luò)剪枝也可以被視為一種架構(gòu)學(xué)習(xí)方法。

        目前除了對(duì)BP 神經(jīng)網(wǎng)絡(luò)的研究外,還有針對(duì)非迭代神經(jīng)網(wǎng)絡(luò)的研究。文獻(xiàn)[25]提出一種通用的幾何變換模型,遵循了訓(xùn)練和自我訓(xùn)練原則,為廣泛的問(wèn)題提供了有效的解決方案。文獻(xiàn)[26]提出了一種以線性多項(xiàng)式作為構(gòu)造公式求解多元線性回歸任務(wù)的新方法,能夠?qū)崿F(xiàn)快速識(shí)別同時(shí)又能保證高精度。這些方法也是壓縮中的重要分支。

        在上述的各類方案中,不同層級(jí)的稀疏性有不同的特點(diǎn),最粗的層級(jí)在修剪時(shí)不需要特殊的包來(lái)獲得推理加速,但其靈活性較差,有時(shí)會(huì)剪掉完整的層,并且只有當(dāng)深度超過(guò)50 層時(shí),去除層才有效果。而更細(xì)致的修建方式(如權(quán)重修剪)雖然具有較高的靈活性和通用性,但卻又需要特殊的軟件和硬件進(jìn)行推理[22]。相比之下,居中的通道級(jí)別的修剪及通道級(jí)稀疏,在靈活性和易于實(shí)現(xiàn)之間實(shí)現(xiàn)了良好的折衷,其可應(yīng)用于經(jīng)典的CNN 網(wǎng)絡(luò),即將每個(gè)神經(jīng)元視為一個(gè)通道。

        2 自適應(yīng)動(dòng)態(tài)剪枝方法

        本文設(shè)計(jì)一種自適應(yīng)方案來(lái)實(shí)現(xiàn)CNN 的通道級(jí)稀疏。稀疏性在不同的層級(jí)上有不同的級(jí)別,如層級(jí)、通道級(jí)、內(nèi)核級(jí)或重量級(jí)。最粗的層級(jí)稀疏不需要特殊的軟件或硬件來(lái)進(jìn)行加速,但靈活性較差。最細(xì)的重量級(jí)稀疏雖然能提供最高的靈活性和通用性,卻通常需要特殊的軟件或硬件加速器。相比之下,通道級(jí)的稀疏性在靈活性和易于實(shí)現(xiàn)之間實(shí)現(xiàn)了很好的折衷,其可應(yīng)用于任何典型的CNN 或全連接網(wǎng)絡(luò)(將每個(gè)神經(jīng)元視為一個(gè)通道),得到的網(wǎng)絡(luò)本質(zhì)上是未修剪網(wǎng)絡(luò)的“精簡(jiǎn)版”,可以在傳統(tǒng)的CNN 平臺(tái)上進(jìn)行有效推理,從而達(dá)到壓縮的目的。在本節(jié)中將介紹如何利用批歸一化(Batch Normalization,BN)層的權(quán)重,通過(guò)自適應(yīng)分層閾值判斷算法來(lái)確定閾值,從而有效識(shí)別和刪除網(wǎng)絡(luò)中不重要的通道。剪枝過(guò)程如圖1 所示。首先將基線模型按文獻(xiàn)[14]的方法正則化,獲得正則化模型后,通過(guò)自適應(yīng)閾值判斷對(duì)正則化后的權(quán)重進(jìn)行分類,以最小值作為閾值進(jìn)行剪枝,移除不重要的權(quán)重。由淺到深,直至最后一層,最后對(duì)剪枝結(jié)束的模型繼續(xù)訓(xùn)練,以提高精度。

        圖1 剪枝流程Fig.1 Pruning process

        2.1 正則化必要性分析

        在之前的工作中,基線模型進(jìn)行訓(xùn)練后將再次進(jìn)行正則化處理,這是用一種相對(duì)比較簡(jiǎn)單的模型來(lái)擬合復(fù)雜數(shù)據(jù)。有一些正則化可以控制神經(jīng)網(wǎng)絡(luò)防止過(guò)擬合,如L1 正則化、L2 正則化[27]、ElasticNet回歸[28]、最大范數(shù)約束[29]、Dropout[30]等。在L1 正則化中,對(duì)每個(gè)權(quán)重w,將λ|w|添加到目標(biāo)函數(shù)中,其中,λ是正則化強(qiáng)度;在L2 正則化中,對(duì)于網(wǎng)絡(luò)中的每個(gè)權(quán)重w,將1/2λw2添加到目標(biāo)中,其中,λ同為正則化強(qiáng)度;但有時(shí)L1 回歸太過(guò),過(guò)多特征被稀疏為0,而當(dāng)L2 回歸正則化不夠,回歸系數(shù)衰減太慢時(shí),ElasticNet 綜合回歸則會(huì)帶來(lái)更好的效果。ElasticNet 回歸綜合了L1 正則化項(xiàng)和L2 正則化項(xiàng),其目標(biāo)函數(shù)如下:

        正則化后可以得到一個(gè)稀疏模型,表示只有少數(shù)特征對(duì)這個(gè)模型有貢獻(xiàn),絕大部分特征是沒(méi)有貢獻(xiàn)的,或者貢獻(xiàn)微小的可以去掉,為了探究正則化后權(quán)重的作用,本文將文獻(xiàn)[12]中VGG16 基線模型與正則化后進(jìn)行對(duì)比。如圖2 所示,正則化方法削弱了不重要的特征變量,減小了特征變量的數(shù)量級(jí)。

        圖2 正則化前后第2 層通道權(quán)重的對(duì)比Fig.2 Comparison of channel weights of the second layer before and after regularization

        通過(guò)將正則化項(xiàng)引入神經(jīng)網(wǎng)絡(luò)的代價(jià)函數(shù)中,可得到輸入數(shù)據(jù)的稀疏性特征表示。稀疏性特征可以防止過(guò)擬合,提高泛化能力,更好地解釋模型。如同從生物學(xué)的角度來(lái)說(shuō),人腦中的大量神經(jīng)元,當(dāng)受到外界刺激(圖像或者聲音)時(shí),只有少量的神經(jīng)元被激活,大部分神經(jīng)元處于抑制狀態(tài)。因此,正則化后的權(quán)重值全部減小,已有部分通道接近于0。此時(shí)再進(jìn)行裁剪時(shí),能夠得到更好的效果。表1 中數(shù)據(jù)顯示,采用文獻(xiàn)[12]中相同的剪枝方法,正則化前后的模型精度相近,但正則化前的剪枝率僅16%,正則化后的剪枝率可達(dá)70%,由此進(jìn)一步證明了正則化的必要性。

        表1 正則化前后在相同閾值下的剪枝率對(duì)比Table 1 Comparison of pruning rates under the same threshold before and after regularization %

        雖然正則化能夠?yàn)榧糁?lái)優(yōu)勢(shì),但之前的剪枝方法中確定全局閾值需要經(jīng)過(guò)大量實(shí)驗(yàn)以及經(jīng)驗(yàn),通過(guò)逐次比對(duì)后選取最優(yōu)閾值百分比,且無(wú)法知道具體的閾值。因此,本文在前期正則化的基礎(chǔ)上,提出自適應(yīng)分層閾值判斷算法,根據(jù)每層的權(quán)重分析對(duì)權(quán)重點(diǎn)進(jìn)行分類,形成斷點(diǎn)后選取最小值,逐層修剪加權(quán)連接,這種方法可以更準(zhǔn)確地對(duì)閾值進(jìn)行判斷,在剪枝率與精度中達(dá)到最優(yōu)平衡,得到更高的精度,從而更好地進(jìn)行網(wǎng)絡(luò)模型壓縮。

        2.2 分層斷點(diǎn)判斷

        在文獻(xiàn)[12]關(guān)于網(wǎng)絡(luò)修剪的工作中,采用固定的百分比作為閾值進(jìn)行全局修剪。但是如果固定百分比太高,則會(huì)導(dǎo)致一開始就修剪了大量連接,導(dǎo)致性能急劇下降。相反,如果固定百分比太低,則壓縮比可能比期望的價(jià)值小很多。因此,需要大量實(shí)驗(yàn)進(jìn)行經(jīng)驗(yàn)積累,才能確定最終閾值。為了解決這個(gè)問(wèn)題,本文使用自適應(yīng)分層閾值判斷算法對(duì)BN 層尺度因子進(jìn)行聚類分析。在眾多散亂的尺度因子值中,自適應(yīng)地找到分類簇點(diǎn),再根據(jù)簇點(diǎn)確定最終閾值。這避免了單一的百分比方式去確定閾值,使得每層都將有其自適應(yīng)的具體閾值。

        按照文獻(xiàn)[12]中的稀疏方法,利用BN 層的縮放因子,通過(guò)聯(lián)合計(jì)算后得到每層的尺度因子,并根據(jù)這些尺度因子計(jì)算每層的閾值進(jìn)行剪枝。每一層的自適應(yīng)分層斷點(diǎn)算法描述和計(jì)算流程如下:

        算法1自適應(yīng)分層斷點(diǎn)算法

        1)在每層的尺度因子中,隨機(jī)選取一個(gè)中心點(diǎn)X,以半徑h為內(nèi)核,找出內(nèi)核內(nèi)的所有數(shù)據(jù)點(diǎn),將這些點(diǎn)歸屬于一個(gè)聚類C,同時(shí),在該聚類中記錄數(shù)據(jù)點(diǎn)出現(xiàn)的次數(shù)加1,再利用概率密度計(jì)算中心點(diǎn)到每個(gè)內(nèi)核數(shù)據(jù)點(diǎn)的核密度,即加權(quán)平均值。目標(biāo)函數(shù)如下:

        目標(biāo)函數(shù)的梯度估計(jì)如下:

        2)將這些向量相加,得到向量Mh(X),X將沿著Mh(X)的方向移動(dòng),移動(dòng)距離為||Mh(X)||,即mh(X)=Mh(X)+X,然后重復(fù)迭代。在每一次迭代中,滑動(dòng)窗口會(huì)移向密度較高的區(qū)域,將中心點(diǎn)移動(dòng)到窗口內(nèi)的點(diǎn)的平均值,滑動(dòng)窗口中的密度與它內(nèi)部的點(diǎn)的數(shù)量成比例。通過(guò)移向窗口中點(diǎn)的平均值,它將逐漸向更高的點(diǎn)密度方向移動(dòng),移動(dòng)后的樣本點(diǎn)迭代如下:

        將迭代過(guò)程中遇到的點(diǎn)都應(yīng)歸類與簇C。若收斂時(shí)當(dāng)前簇C的中心與其他已存在的簇心距離過(guò)小,則會(huì)將其合并,數(shù)據(jù)點(diǎn)出現(xiàn)次數(shù)也對(duì)應(yīng)合并。再次重復(fù)上述步驟直到所有點(diǎn)都被標(biāo)記。

        最后根據(jù)對(duì)每個(gè)點(diǎn)的訪問(wèn)頻率,將訪問(wèn)頻率最高的點(diǎn)作為斷點(diǎn)。實(shí)際上,每一個(gè)樣本點(diǎn)都需要計(jì)算其均值,并根據(jù)計(jì)算出的均值進(jìn)行移動(dòng),直到滿足終止條件,最終得到的數(shù)據(jù)點(diǎn)也就是該點(diǎn)的聚類中心點(diǎn)。針對(duì)不同的BN 層,會(huì)自動(dòng)聚類出不同的斷點(diǎn)。

        2.3 閾值判定

        在聚類出斷點(diǎn)后,將其由小到大進(jìn)行排序,由斷點(diǎn)確定具體閾值。若選取的斷點(diǎn)數(shù)值越大,剪枝率將越高。由于權(quán)重越小,重要性越低,若選取的斷點(diǎn)越小,精度就將越高。因此,為了由斷點(diǎn)確定最優(yōu)的閾值,針對(duì)不同層進(jìn)行了對(duì)比實(shí)驗(yàn)。如圖3 所示,在CIFAR10數(shù)據(jù)集上,假設(shè)每層均采用斷點(diǎn)最小值作為閾值為基礎(chǔ)設(shè)置,在后續(xù)實(shí)驗(yàn)中,將第2 層選取倒數(shù)第二小的斷點(diǎn)作為閾值,其他層仍采用最小值。依次再將第3~第6 層做同樣設(shè)置可看出,若增大閾值,提高剪枝率的情況下,精度將大幅下降。并且由于第2 層的通道數(shù)為64,提高閾值后對(duì)精度的影響最大。后續(xù)3、4 層的通道數(shù)為128,5、6 層的通道數(shù)為256,其精度影響逐漸減小,但仍超出文獻(xiàn)[12]中最低精度,因此更加不考慮倒數(shù)第三小的斷點(diǎn)作為閾值,可見(jiàn)全局采用斷點(diǎn)最小值作為閾值為最佳設(shè)置。

        圖3 VGG16 閾值測(cè)試結(jié)果Fig.3 VGG16 threshold test result

        3 實(shí)驗(yàn)

        本文實(shí)驗(yàn)修剪了簡(jiǎn)單的CNN 模型(VGGNet、ResNet、DenseNet)。與常用的壓縮模型AlexNet 不同,VGG 在全連接層的參數(shù)較少,因此,在這樣的網(wǎng)絡(luò)中修剪更具有挑戰(zhàn)性。在pytorch 深度學(xué)習(xí)平臺(tái)上實(shí)現(xiàn)了文獻(xiàn)[12]中的基線模型和正則化后的模型,并根據(jù)自適應(yīng)分層閾值判斷結(jié)果,繼續(xù)修剪網(wǎng)絡(luò)中的通道。

        3.1 數(shù)據(jù)集

        本文實(shí)驗(yàn)使用以下數(shù)據(jù)集:

        1)CIFAR[31]。CIFAR 包括CIFAR-10 和CIFAR-100。CIFAR-10數(shù)據(jù)集由10個(gè)類組成,每個(gè)類包含60 000張圖像,50 000 張用于訓(xùn)練,10 000 張用于測(cè)試。CIFAR-100 數(shù)據(jù)集則由100 個(gè)類組成,每個(gè)類包含600 張圖像,與CIFAR-10 不同的是,CIFAR-100 中的100 個(gè)類又被分為20 個(gè)超類,每個(gè)圖像都帶有一個(gè)“精細(xì)”標(biāo)簽(它所屬的類)和一個(gè)“粗糙”標(biāo)簽(它所屬的超類)。

        2)SVHN。SVHN 是一個(gè)現(xiàn)實(shí)世界的圖像數(shù)據(jù)集,用于機(jī)器學(xué)習(xí)和識(shí)別算法。分為完整數(shù)據(jù)與裁剪數(shù)據(jù),其中完整數(shù)據(jù)是帶有字符級(jí)邊界框的原始圖像,裁剪數(shù)據(jù)則已調(diào)整為固定的32 像素×32 像素分辨率。按照慣例,仍然使用604 388 個(gè)裁剪數(shù)據(jù)圖像進(jìn)行訓(xùn)練。

        3)MNIST。MNIST 是一個(gè)手寫數(shù)字?jǐn)?shù)據(jù)集,包含60 000 張訓(xùn)練圖片和10 000 張測(cè)試圖像。為了測(cè)試本文方法在全連接網(wǎng)絡(luò)上的有效性,本文將與文獻(xiàn)[12]方法進(jìn)行對(duì)比。

        3.2 實(shí)驗(yàn)網(wǎng)絡(luò)

        在CIFAR 和SVHN 數(shù)據(jù)集上,實(shí)驗(yàn)在3 種流行的網(wǎng)絡(luò)架構(gòu)VGGNet、ResNet 和DenseNet 上評(píng)估本文方法。VGGNet 最初是為ImageNet 分類而設(shè)計(jì)的。在實(shí)驗(yàn)中,使用包含VGGNet 的16 和19 層網(wǎng)絡(luò)結(jié)構(gòu)和使用具有瓶頸結(jié)構(gòu)(ResNet-164)的164 層預(yù)激活ResNet。對(duì)于DenseNet,使用生長(zhǎng)速率為12(DenseNet-40)的40 層DenseNet。在MNIST 數(shù)據(jù)集上,在與文獻(xiàn)[12]相同的三層全連接網(wǎng)絡(luò)上評(píng)估本文方法。

        3.3 訓(xùn)練、剪枝與微調(diào)

        訓(xùn)練、剪枝與微調(diào)過(guò)程如下:

        1)基線訓(xùn)練。首先從零開始訓(xùn)練所有網(wǎng)絡(luò),作為基線網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行對(duì)比。所有網(wǎng)絡(luò)都使用SGD(Stochastic Gradient Descent)。在CIFAR 數(shù)據(jù)集上進(jìn)行160 個(gè)epoch 的訓(xùn)練,在SVHN 數(shù)據(jù)集上進(jìn)行20 個(gè)epoch 的訓(xùn)練,2 個(gè)數(shù)據(jù)集批量大小同為64,學(xué)習(xí)率同為0.1。在MNIST 數(shù)據(jù)集上進(jìn)行30 個(gè)epoch的訓(xùn)練,批量大小為256,初始學(xué)習(xí)率為0.1,經(jīng)過(guò)20 個(gè)epoch 后初始學(xué)習(xí)率為10。為了更好地對(duì)比閾值選定對(duì)精度結(jié)果和剪枝率的影響,本文方法參數(shù)設(shè)置與文獻(xiàn)[12]方法保持一致。

        2)稀疏訓(xùn)練。在稀疏化訓(xùn)練時(shí)仍沿用文獻(xiàn)[12]方法,為每個(gè)通道引入比例因子。聯(lián)合訓(xùn)練網(wǎng)絡(luò)權(quán)值與比例因子,對(duì)比例因子施加稀疏正則化后得到稀疏模型。

        3)剪枝。針對(duì)稀疏以后的模型進(jìn)行剪枝,需要確定剪枝閾值。在文獻(xiàn)[12]中采用統(tǒng)一全局閾值一次修剪,且閾值定義為所有比例因子值的某個(gè)百分比。缺點(diǎn)是由于不同層數(shù)的參數(shù)量不同,重要性也不同,全局閾值需要多次反復(fù)實(shí)驗(yàn),最終確定具體閾值,且增加1%或者降低1%剪枝比例對(duì)最終精度結(jié)果影響不大,因此閾值的判斷僅靠人為選擇。而本文將針對(duì)不同層,使用自適應(yīng)動(dòng)態(tài)剪裁算法,自動(dòng)確定不同層的具體閾值,而非百分比在精度與剪枝率取得平衡。這使得其能更好地進(jìn)行裁剪,選取適合該層的閾值,而無(wú)需多次反復(fù)實(shí)驗(yàn)。

        4)微調(diào)。在剪枝后,將得到一個(gè)更窄、更緊湊的模型,實(shí)驗(yàn)將繼續(xù)對(duì)模型微調(diào),在CIFAR、SVHN 和MNIST 數(shù)據(jù)集上,使用與基線訓(xùn)練中相同的數(shù)據(jù)設(shè)置,再次訓(xùn)練,以取得更好的精度效果。

        3.4 結(jié)果對(duì)比與分析

        在以往的經(jīng)驗(yàn)中,第1 個(gè)卷積層在原始圖像的提取特征中起著重要作用,只存在較低的計(jì)算成本和較小的參數(shù)存儲(chǔ)(小于整個(gè)網(wǎng)絡(luò)的1%)。因此,在本文實(shí)驗(yàn)中不修改該層的參數(shù)。同時(shí)網(wǎng)絡(luò)的全連接層不包含BN 層,同樣不進(jìn)行修剪。

        以VGG16 網(wǎng)絡(luò)為例,圖4 給出了剪枝層的斷點(diǎn)數(shù)。網(wǎng)絡(luò)層越深,通道的權(quán)重值增多,斷點(diǎn)數(shù)也逐步振蕩增加,但每層仍以斷點(diǎn)最小值為剪枝閾值。圖5對(duì)比了剪枝前后通道數(shù),可以看出層數(shù)越深剪枝幅度越大,通常在更深的網(wǎng)絡(luò)層具有的激活映射更小,占用的內(nèi)存也更少,因此會(huì)有更多的通道被修剪。

        圖4 VGG16 分層斷點(diǎn)數(shù)Fig.4 Number of VGG16 layered break points

        圖5 VGG16 分層剪枝通道數(shù)Fig.5 Number of VGG16 layered pruning channels

        本文給出了VGG 網(wǎng)絡(luò)在數(shù)據(jù)集上的測(cè)試結(jié)果,為了更好地進(jìn)行效果對(duì)比,以剪枝前的參數(shù)作為基線,將文獻(xiàn)[12]方法的剪枝率、測(cè)試錯(cuò)誤率和參數(shù)量與本文方法進(jìn)行對(duì)比,如表2~表4 所示。可以看出,本文不必依靠大量實(shí)驗(yàn)或者以往經(jīng)驗(yàn)確定閾值,而是使用自適應(yīng)分層閾值判斷算法可以自適應(yīng)地根據(jù)斷點(diǎn)選擇閾值進(jìn)行分層剪枝,可以保持甚至提高至更好的精度。

        表2 CIFAR10 數(shù)據(jù)集測(cè)試結(jié)果Table 2 Test result in CIFAR10 data set

        表3 CIFAR100 數(shù)據(jù)集測(cè)試結(jié)果Table 3 Test result in CIFAR100 data set

        表4 SVHN 數(shù)據(jù)集測(cè)試結(jié)果Table 4 Test result in SVHN data set

        CIFAR10 數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果顯示:在使用本文方法情況下,對(duì)VGG16 網(wǎng)絡(luò)模型剪枝率為56%,測(cè)試錯(cuò)誤率較使用文獻(xiàn)[12]方法降低1.01 個(gè)百分點(diǎn);對(duì)DenseNet 網(wǎng)絡(luò)模型剪枝率為36%,測(cè)試錯(cuò)誤率較使用文獻(xiàn)[12]方法降低0.98 個(gè)百分點(diǎn);對(duì)ResNet網(wǎng)絡(luò)模型剪枝率為32%,測(cè)試錯(cuò)誤率較使用文獻(xiàn)[12]方法降低0.15 個(gè)百分點(diǎn)。

        在CIFAR100 數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果顯示:在使用本文方法情況下,對(duì)VGG16 網(wǎng)絡(luò)模型剪枝率為43%,測(cè)試錯(cuò)誤率較使用文獻(xiàn)[12]方法降低1.52 個(gè)百分點(diǎn);對(duì)DenseNet 網(wǎng)絡(luò)模型剪枝率較使用文獻(xiàn)[12]方法增加8%,測(cè)試錯(cuò)誤率降低0.62 個(gè)百分點(diǎn);對(duì)ResNet 網(wǎng)絡(luò)模型剪枝率為32%,測(cè)試錯(cuò)誤率較使用文獻(xiàn)[12]方法降低0.91 個(gè)百分點(diǎn)。

        在SVHN 數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果顯示:在使用本文方法情況下,VGG16 網(wǎng)絡(luò)模型相較于文獻(xiàn)[12]方法犧牲了11%的剪枝率和0.21×106的模型參數(shù)量,降低測(cè)試錯(cuò)誤率0.09 個(gè)百分點(diǎn);對(duì)DenseNet 剪枝率較使用文獻(xiàn)[12]方法下降4%,測(cè)試錯(cuò)誤率降低0.02 個(gè)百分點(diǎn),模型參數(shù)量增加0.03%;ResNet 網(wǎng)絡(luò)模型剪枝率為33%,測(cè)試錯(cuò)誤率較使用文獻(xiàn)[12]方法降低0.1 個(gè)百分點(diǎn)。

        由此可以看出,本文方法能夠降低錯(cuò)誤率,調(diào)節(jié)精度與剪枝率的平衡。雖然剪枝率沒(méi)有超過(guò)文獻(xiàn)[12]方法,但本文方法可以更好地在剪枝與精度中找到最優(yōu)平衡。表3 結(jié)果顯示,在同樣的數(shù)據(jù)集上,網(wǎng)絡(luò)層越深效果更好,同時(shí)剪枝率也會(huì)相應(yīng)提高。

        針對(duì)LeNet 網(wǎng)絡(luò)模型,本文在MNIST 數(shù)據(jù)集上進(jìn)行了測(cè)試并與文獻(xiàn)[12]全局剪枝方法進(jìn)行了比較,測(cè)試結(jié)果如表5 所示,其中測(cè)試錯(cuò)誤率降低0.05 個(gè)百分點(diǎn),參數(shù)剪枝率達(dá)到82.8%。盡管正則化的作用主要用于對(duì)卷積層中的通道進(jìn)行剪枝,但它也適用于對(duì)全連接層中的神經(jīng)元進(jìn)行剪枝。文獻(xiàn)[12]中使用全局閾值修剪時(shí)有時(shí)會(huì)剪去整個(gè)層,而本文自適應(yīng)分層閾值判斷算法則避免了這個(gè)問(wèn)題,并獲得了略低的測(cè)試誤差。

        表5 MNIST 測(cè)試結(jié)果 %

        4 結(jié)束語(yǔ)

        目前,深度學(xué)習(xí)已經(jīng)在圖像、文本、音頻、視頻等諸多領(lǐng)域取得了巨大成功,同時(shí)也推動(dòng)了很多相關(guān)智能產(chǎn)品的誕生。CNN 網(wǎng)絡(luò)模型雖然結(jié)構(gòu)越深效果越好,但是高容量、高訓(xùn)練成本和推理成本都會(huì)影響計(jì)算效率。本文提出的自適應(yīng)分層閾值判斷算法,針對(duì)正則化后的模型進(jìn)行剪枝,逐層對(duì)通道權(quán)重進(jìn)行斷點(diǎn)分層后,選取最小值為閾值進(jìn)行剪枝,擺脫了以往需要經(jīng)驗(yàn)人為定義的固定閾值,進(jìn)而獲得更加緊湊的卷積神經(jīng)網(wǎng)絡(luò),基于該算法可減少模型尺寸,且得到的模型不需要特殊的庫(kù)/硬件來(lái)進(jìn)行有效的推理。在多個(gè)數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果證明,本文方法可以減小模型尺寸且精度并沒(méi)有顯著損失。未來(lái)將研究多種壓縮方法相結(jié)合的方法,以獲得更好的壓縮結(jié)果。

        猜你喜歡
        方法模型
        一半模型
        重要模型『一線三等角』
        重尾非線性自回歸模型自加權(quán)M-估計(jì)的漸近分布
        學(xué)習(xí)方法
        可能是方法不對(duì)
        3D打印中的模型分割與打包
        用對(duì)方法才能瘦
        Coco薇(2016年2期)2016-03-22 02:42:52
        FLUKA幾何模型到CAD幾何模型轉(zhuǎn)換方法初步研究
        四大方法 教你不再“坐以待病”!
        Coco薇(2015年1期)2015-08-13 02:47:34
        賺錢方法
        国产自拍精品视频免费| 国产老妇伦国产熟女老妇高清| 亚洲av偷拍一区二区三区| 免费一区二区三区女优视频| 欧美精品国产综合久久| 亚洲av无码男人的天堂在线| 欧美成人精品福利在线视频| 青青草在线免费观看在线| 美国少妇性xxxx另类| 亚洲国产精品久久久久秋霞影院| 中文字幕无码毛片免费看| 五十路熟女一区二区三区| 亚洲精品美女久久久久网站| 久久精品中文字幕有码| 国内成+人 亚洲+欧美+综合在线 | 久久久精品国产免费看| 中文字幕乱码熟妇五十中出| 亚洲无码精品免费片| 国产麻豆精品久久一二三 | 亚洲av无码一区二区乱子伦as| 亚洲欧美日本人成在线观看 | 老熟女富婆激情刺激对白| 国产福利酱国产一区二区 | 国产极品美女高潮无套| 牲欲强的熟妇农村老妇女| 人妻中出精品久久久一区二| 免费观看日本一区二区三区| 熟妇人妻无码中文字幕老熟妇| 色妺妺在线视频| 女同性恋亚洲一区二区| 国产一区二区三区四色av| 日本黄页网站免费观看| 久久久久一| 男性av天堂一区二区| 中文字幕人妻无码一夲道| 中文人妻无码一区二区三区信息 | 中文字幕日韩精品有码视频| 久久中文字幕人妻熟av女蜜柚m | 亚洲成人中文字幕在线视频| 国产成a人亚洲精品无码樱花| 波多野吉衣av无码|