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

        ?

        卷積神經(jīng)網(wǎng)絡(luò)壓縮與加速技術(shù)研究進展①

        2020-09-22 07:44:44尹文楓梁玲燕彭慧民曹其春趙雅倩
        計算機系統(tǒng)應(yīng)用 2020年9期
        關(guān)鍵詞:方法模型

        尹文楓,梁玲燕,彭慧民,曹其春,趙 健,董 剛,趙雅倩,趙 坤

        1(浪潮電子信息產(chǎn)業(yè)股份有限公司,濟南 250101)

        2(廣東浪潮大數(shù)據(jù)研究有限公司,廣州 510632)

        隨著硬件的發(fā)展,如圖形處理單元(GPU)[1]和張量處理單元(TPU)[2],以及深度學(xué)習(xí)算法的成功,如AlexNet[3]、16 層VGG[4]和152 層ResNet[5],基于深度學(xué)習(xí)的應(yīng)用在計算機視覺、語音識別和推薦系統(tǒng)等廣泛領(lǐng)域得到普及.這些強大的深度學(xué)習(xí)模型伴隨著在延遲、存儲、算力和能耗等方面的資源開銷增加,給資源有限的移動和嵌入設(shè)備實現(xiàn)離線深度感知帶來了困難.性能良好的VGG-16 模型[4]采用8 比特量化之后,由ImageNet數(shù)據(jù)集[6]訓(xùn)練,需要1 .5×1010次 乘法累加操作,1.4×108個參數(shù),1650 ms 的平均延遲,在RedMi 3S Android平臺上能耗為397.7 mJ[7].因此,壓縮神經(jīng)網(wǎng)絡(luò)的參數(shù)和計算,有助于將一些典型的基于深度學(xué)習(xí)算法的應(yīng)用如語音助手、人臉識別、指紋解鎖和文本處理工具等部署在移動平臺.

        本文將對模型壓縮技術(shù)中的代表方法進行介紹與分析.但是,諸如MobileNet、Inception、SqueezeNet等采用緊致的卷積核或高效的計算方式來搭建深度神經(jīng)網(wǎng)絡(luò)的輕量化模型設(shè)計方法不在本文討論范圍內(nèi).不同于在預(yù)訓(xùn)練網(wǎng)絡(luò)上進行處理,輕量化模型設(shè)計方法另辟蹊徑.輕量化模型設(shè)計方法采用緊致的卷積核或高效的計算方式來搭建深度神經(jīng)網(wǎng)絡(luò),而不是由預(yù)訓(xùn)練神經(jīng)網(wǎng)絡(luò)進行神經(jīng)元或神經(jīng)元連接的刪減來實現(xiàn)模型壓縮.

        1 神經(jīng)網(wǎng)絡(luò)模型與壓縮工具

        本節(jié)主要介紹經(jīng)典的神經(jīng)網(wǎng)絡(luò)模型,這些代表性模型通常應(yīng)用于評測新興壓縮方法的性能,此外本節(jié)匯總集成最新模型壓縮方法的各個壓縮工具包的特性,并簡述模型壓縮方法在硬件部署方面的進展.

        1.1 經(jīng)典深度神經(jīng)網(wǎng)絡(luò)模型回顧

        隨著LeNet 的提出,卷積神經(jīng)網(wǎng)絡(luò)進入了大眾的視野.在此基礎(chǔ)上形成了AlexNet 網(wǎng)絡(luò),該經(jīng)典網(wǎng)絡(luò)結(jié)構(gòu)與LeNet-5 的結(jié)構(gòu)類似,但網(wǎng)絡(luò)層次進一步加深.目前演變出的多種卷積神經(jīng)網(wǎng)絡(luò),如VGG、GoogleNet、ResNet 等,雖然模型性能越來越好,但網(wǎng)絡(luò)的層數(shù)和計算量也隨之增大,不利于邊緣設(shè)備或云端的部署.

        在2014年的ImageNet 挑戰(zhàn)賽中脫穎而出的VGG網(wǎng)絡(luò)[4]具有兩種常用拓撲結(jié)構(gòu)VGG16 和VGG19.表1列舉了VGG 網(wǎng)絡(luò)等模型的參數(shù)量、模型所需內(nèi)存大小以及計算量.其中flops 表示浮點運算次數(shù),用來衡量模型的復(fù)雜度.如表1所示,VGG 網(wǎng)絡(luò)結(jié)構(gòu)有上億的參數(shù),計算量巨大,因此在部署過程中,消耗較大的存儲容量和計算資源,不利于邊緣端的部署.

        ResNet 網(wǎng)絡(luò)[5]結(jié)構(gòu)的核心是殘差學(xué)習(xí)單元,其解決了增加神經(jīng)網(wǎng)絡(luò)深度時精度退化的問題,讓深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)能夠達到更深的水平,如ResNet152 網(wǎng)絡(luò)就有152 層卷積.

        表1 深度網(wǎng)絡(luò)模型的資源需求匯總

        為了在資源受限的設(shè)備上部署深度神經(jīng)網(wǎng)絡(luò),輕量化模型設(shè)計的思路應(yīng)運而生,隨即產(chǎn)生了MobileNet 網(wǎng)絡(luò)[8].MobileNet 最大的特點是采用了深度可分離卷積的獨特設(shè)計,將普通卷積拆分為深度卷積和點卷積兩步.深度可分離卷積相比于標準卷積,在保持精度幾乎不變的情況下,參數(shù)量和計算量都大大減小.沿著采用深度可分離卷積的思路,相繼衍生出MobileNets-v2[9]、ShuffleNet-v1[10]和ShuffleNet-v2[11]等輕量化網(wǎng)絡(luò)模型.雖然MobileNet 網(wǎng)絡(luò)結(jié)構(gòu)相比VGG19 等網(wǎng)絡(luò)已經(jīng)減小了很多,但在移植到移動端人工智能應(yīng)用中時仍然會消耗大量計算資源,而且MobileNet 中依然存在稀疏性,還有繼續(xù)壓縮的空間.

        1.2 模型壓縮工具與硬件部署

        隨著神經(jīng)網(wǎng)絡(luò)模型壓縮方法的發(fā)展,已經(jīng)孕育出一系列承載最新成果的壓縮方法工具包,表2列舉了一些常用的壓縮方法工具包.其中,Distiller、Pocketflow、PaddleSlim 均提供多種參數(shù)剪枝方法、量化方法、知識蒸餾(Knowledge Distillation,KD)方法的支持,并且提供自動化模型壓縮算法AMC 的實現(xiàn).Distiller 工具包復(fù)現(xiàn)了基本的幅度剪枝算法以及敏感度剪枝等多種近年來新興的剪枝算法[12-14],涵蓋適用于RNN 的剪枝算法[15]和面向CNN 的算法,此外該工具包還集成了對稱線性量化等幾種量化算法.PocketFlow 工具包除了騰訊自研的鑒別力感知的通道剪枝算法[16]外,還提供了深鑒科技[17]、谷歌公司研發(fā)的剪枝算法[18]的復(fù)現(xiàn).

        結(jié)構(gòu)化壓縮方法在上述壓縮工具包中得到更多應(yīng)用的因素之一,是模型壓縮方法在硬件平臺的部署會受到矩陣稀疏性粒度的影響.如圖1所示,結(jié)構(gòu)化壓縮方法的稀疏性粗粒度可分為濾波器級、通道級和向量級,非結(jié)構(gòu)化壓縮方法的稀疏性細粒度為元素級.雖然非結(jié)構(gòu)化壓縮方法可取得高壓縮率以及高準確率,但非結(jié)構(gòu)化壓縮后的權(quán)重矩陣或特征圖矩陣中非零值的位置是不規(guī)則的,這為有效地支持硬件中稀疏矩陣的存儲與計算造成困難.在不同的硬件平臺中稀疏矩陣的處理需要調(diào)用特定的運算庫來加速,在GPU 上稀疏矩陣計算需要調(diào)用cuSPARSE 庫,在CPU 上稀疏矩陣計算稀疏需要mkl_sparse 之類的庫去優(yōu)化計算.此外,神經(jīng)網(wǎng)絡(luò)的稀疏矩陣能夠以壓縮稀疏行(CSR)和壓縮稀疏列(CSC)兩種方式存儲在壓縮格式[19].結(jié)構(gòu)化壓縮剪枝后的矩陣中非零值的位置是規(guī)則的,而且稀疏矩陣的CSR 格式中粗粒度稀疏性可以節(jié)省索引的存儲開銷,易于硬件部署的實施.

        表2 現(xiàn)有神經(jīng)網(wǎng)絡(luò)壓縮工具包

        圖1 矩陣稀疏性的粒度與稀疏矩陣存儲格式

        為了高效的支持壓縮后模型的硬件部署,軟硬件結(jié)合的壓縮方法設(shè)計已成為當(dāng)前發(fā)展的趨勢之一,已有諸多設(shè)計專用硬件處理架構(gòu)的研究被發(fā)表.為了將模型壓縮方法的代表性算法Deep compression[20]部署到硬件平臺,文獻[21]設(shè)計了高效的推理引擎EIE,比CPU、GPU 和Mobile GPU 的運行速度分別快189×、13×和307×;文獻[22]設(shè)計了專用硬件處理架構(gòu)ESE,在進行壓縮剪枝時進行多核并行的負載均衡,進一步加快神經(jīng)網(wǎng)絡(luò)的推理速度.

        2 神經(jīng)網(wǎng)絡(luò)模型壓縮方法

        本節(jié)將逐一介紹各類模型壓縮方法的代表性算法與優(yōu)缺點,內(nèi)容涵蓋參數(shù)剪枝、低秩分解、參數(shù)量化和知識蒸餾4 類主流壓縮方法.

        表3列舉了4 類模型壓縮方法各自的特點.(1)4 類壓縮方法均適用于卷積層和全連接層.(2)由于各類方法的壓縮機制不同,預(yù)訓(xùn)練模型對不同壓縮方法的必要性不同,其中剪枝方法對預(yù)訓(xùn)練模型的依賴性更高.(3)傳統(tǒng)的剪枝、量化與低秩分解算法需要在壓縮后微調(diào)網(wǎng)絡(luò)來補償網(wǎng)絡(luò)的精度損失,而最新的進展中已出現(xiàn)不需要重訓(xùn)練的壓縮方式,大大減少計算成本.例如Tensorflow 中提供訓(xùn)練后量化方案,在不重新訓(xùn)練模型的前提下,只通過量化網(wǎng)絡(luò)權(quán)重和輸出激活圖來壓縮模型,就能夠達到與浮點型網(wǎng)絡(luò)相接近的精度.(4)剪枝方法的優(yōu)勢在于其精度損失小,能夠與其余3 類壓縮方法聯(lián)合應(yīng)用;低秩分解的優(yōu)點是支持端到端的訓(xùn)練,但其分解操作的計算昂貴;知識蒸餾可以使模型層級變淺,降低推理時計算成本,但其對模型的假設(shè)有時過于嚴格從而限制了應(yīng)用.

        各類壓縮方法在特定任務(wù)及場景中表現(xiàn)出不同的壓縮性能,在選用壓縮方法時可以依據(jù)應(yīng)用需求來選擇.例如知識蒸餾方法適用于小型或者中型數(shù)據(jù)集上的應(yīng)用,由于壓縮后的學(xué)生模型可以從教師模型中提取知識,在數(shù)據(jù)集不大時,也能取得魯棒的性能;剪枝和量化則更適合于要求模型表現(xiàn)穩(wěn)定的應(yīng)用場景或內(nèi)存有限的設(shè)備,因為這兩種方法具有合理的壓縮比,精度損失小,也能減小計算中內(nèi)存使用量.

        2.1 剪枝方法

        剪枝方法依據(jù)一定標準來衡量網(wǎng)絡(luò)結(jié)構(gòu)的重要性,通過移除不重要的網(wǎng)絡(luò)結(jié)構(gòu)來降低計算量和權(quán)重數(shù)量,加速推理.以基于稀疏約束的剪枝方法[14]為代表,在網(wǎng)絡(luò)的優(yōu)化目標中加入權(quán)重的稀疏正則項,使得訓(xùn)練時網(wǎng)絡(luò)的部分權(quán)重趨向于0 值,再將這些0 值清除以實現(xiàn)剪枝.最簡單直接的衡量重要性的指標是權(quán)重的幅值.文獻[14]利用批歸一化層的縮放因子 γ來高效鑒別與裁剪不重要的通道,并在損失函數(shù)中增加一個關(guān)于γ的正則項作約束.

        表3 各類神經(jīng)網(wǎng)絡(luò)壓縮方法總結(jié)

        包括文獻[14]在內(nèi)的傳統(tǒng)剪枝方法需要對壓縮后網(wǎng)絡(luò)模型進行微調(diào)來補償壓縮造成的準確率損失,而微調(diào)既耗時又耗資源.文獻[17]提出了推理時剪枝方式,在前向推理過程中進行壓縮處理,在剪枝后不再微調(diào)網(wǎng)絡(luò).該文算法在進行通道裁剪之后,直接通過最小均方誤差得到特征重建誤差最小化的新網(wǎng)絡(luò)參數(shù),因而不需要再微調(diào)網(wǎng)絡(luò)來恢復(fù)精度[17].

        傳統(tǒng)剪枝方法直接丟棄被裁減的網(wǎng)絡(luò)結(jié)構(gòu),使得網(wǎng)絡(luò)容量隨算法的迭代不斷減少,而且錯誤的裁剪所造成的精度損失無法通過微調(diào)彌補.針對這一問題衍生出的動態(tài)剪枝算法,保證被裁剪掉的權(quán)重在后續(xù)訓(xùn)練過程中仍會更新,能夠動態(tài)恢復(fù)裁剪部分或者對網(wǎng)絡(luò)進行擴充.文獻[23]提出SFP (Soft Filter Pruning)方法,在訓(xùn)練的每次迭代后進行濾波器剪枝,并在下一次迭代中繼續(xù)更新被裁剪部分的梯度.

        由于神經(jīng)網(wǎng)絡(luò)中各層的稀疏性不同,剪枝方法需要以預(yù)定義或自動設(shè)定的方式為每層設(shè)置適合的壓縮比,以減小壓縮造成的準確率損失.有研究工作提出漸變式壓縮比設(shè)定方法[18],預(yù)設(shè)每層壓縮比與算法迭代次數(shù)的函數(shù)關(guān)系式,逐漸地調(diào)整壓縮比至目標壓縮率.現(xiàn)有方法更傾向于制定策略在剪枝過程中自動設(shè)定壓縮比,例如AMC (AutoML for Model Compression)方法[24],根據(jù)不同需求(如保證精度或限制計算量),應(yīng)用強化學(xué)習(xí)來學(xué)習(xí)每層最優(yōu)的壓縮比,再通過基于幅度的通道剪枝壓縮網(wǎng)絡(luò)模型.

        AMC 方法將自動機器學(xué)習(xí)引入剪枝方法,減輕了人工調(diào)節(jié)神經(jīng)網(wǎng)絡(luò)超參數(shù)的壓力,但其剪枝操作是逐層執(zhí)行的.現(xiàn)有剪枝方法大多忽略層間的關(guān)聯(lián)性,逐層移除不重要的權(quán)重來壓縮神經(jīng)網(wǎng)絡(luò).而最近的研究工作發(fā)現(xiàn)剪枝的本質(zhì)是識別約束下最優(yōu)的壓縮網(wǎng)絡(luò)結(jié)構(gòu)[25],而不是篩選每層中重要的權(quán)重.已有剪枝方法[26]借鑒神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索的算法來獲取最優(yōu)的壓縮網(wǎng)絡(luò)結(jié)構(gòu),但在搜索空間設(shè)計和性能評估加速方面的優(yōu)化是開放性問題.

        2.2 低秩分解

        低秩分解又稱低秩近似,利用卷積神經(jīng)網(wǎng)絡(luò)的參數(shù)張量和激活張量低秩且稀疏的特點,將大尺寸張量分解成多個小尺寸張量的乘積,即用若干個小張量對原張量進行估計,減少推理時計算量[27].常見的張量分解有奇異值分解(SVD)、Tucker 分解和Canonical Polyadic (CP)分解[28]等,這些分解方法能使壓縮后模型在較少參數(shù)下保持高精度,例如CP 分解法[28]在AlexNet上實現(xiàn)了4 倍速度提升而只損失了1%的精度,SVD分解后的NIN[29]在CIFAR-10 數(shù)據(jù)集上達到的精度比原始NIN 高1%.

        低秩分解方法在全連接層和卷積層的性能表現(xiàn)不同,對全連接層的壓縮效果更好.針對全連接層低秩分解的研究[30],僅對卷積網(wǎng)絡(luò)最后一層全連接層進行分解就將參數(shù)減少30-50%,訓(xùn)練速度提升30-50%,語音識別的精度并沒有下降.

        低秩分解方法中,保留多少秩關(guān)系到壓縮后準確率與推理速度的權(quán)衡.但是保留多少秩是不確定的,文獻[31]可以通過全連接層5%的權(quán)重值準確地預(yù)測出剩余95%的權(quán)重值.對于面向卷積核的低秩分解方法,秩的估計也是待優(yōu)化的問題,保留的秩多能保證高準確率,但相應(yīng)地加速效果下降.文獻[29]提出基于批歸一化(BN)訓(xùn)練的SVD 分解方法,針對基于非線性最小二乘的CP 分解法[28]的最優(yōu)秩很難求解且最優(yōu)秩可能不存在的問題進行了優(yōu)化,保證最優(yōu)秩總是存在,并且能夠訓(xùn)練層數(shù)大于30 的深度神經(jīng)網(wǎng)絡(luò).文獻[32]設(shè)計了基于tucker 分解的一步式(One-shot)全網(wǎng)壓縮方法,首先利用變分貝葉斯矩陣分解進行一步式的秩選擇后,再進行核張量tucker 分解和模型微調(diào),并且解決了1×1卷積在硬件實現(xiàn)層面的問題,降低了采用inception模塊的GoogleNet 網(wǎng)絡(luò)在壓縮后的功耗.

        低秩分解后的網(wǎng)絡(luò)模型在參數(shù)量壓縮之外表現(xiàn)出兩點提升,一是關(guān)于局部最小值尋優(yōu)[30],經(jīng)過低秩分解,優(yōu)化過程的尋優(yōu)方向受限,迭代次數(shù)減少,尋優(yōu)更有效率.二是參數(shù)減少有助于降低神經(jīng)網(wǎng)絡(luò)過擬合的風(fēng)險[29],低秩分解后的網(wǎng)絡(luò)模型具有更小的測試誤差,對新數(shù)據(jù)集的泛化能力更好.

        低秩分解方法并沒有改變基礎(chǔ)的卷積運算,但由于受到幾點缺陷的制約而不易于部署.一是分解操作的計算成本昂貴.二是目前的方法逐層執(zhí)行,無法進行全局參數(shù)壓縮[27],文獻[29]雖然設(shè)計了低秩分解的全局優(yōu)化器,但其對網(wǎng)絡(luò)的分解也是逐層單獨進行.三是分解后模型的收斂需要大量的訓(xùn)練.

        2.3 參數(shù)量化

        權(quán)值共享常用的算法有K-means 聚類算法和哈希共享.文獻[20]利用K-means 算法將每一層權(quán)重矩陣聚類成若干個簇,用同一簇的聚類中心值代替該簇的權(quán)重值,因此只需存儲每個簇的聚類中心值就能保存完整的模型參數(shù),以此來壓縮模型的存儲大小.文獻[34]設(shè)計了一種HashNet,利用哈希函數(shù)隨機將網(wǎng)絡(luò)連接權(quán)重分組到哈希桶,每個哈希桶內(nèi)的網(wǎng)絡(luò)連接共享相同的權(quán)重參數(shù),該方法可顯著減小模型體積,且對結(jié)果精度影響較小.

        權(quán)值精簡方法是指利用低位寬精度參數(shù)(如8-bit)代替原始的高位寬精度參數(shù)(如32-bit)以達到模型壓縮和計算加速的目的,包括直接量化和模型重訓(xùn)兩種模式.直接量化是指對預(yù)訓(xùn)練得到的網(wǎng)絡(luò)模型,直接通過量化權(quán)重或(和)激活輸出來縮減模型大小,加快預(yù)測速度.文獻[35]設(shè)計了一種基于線性映射的直接量化方法,通過KL 散度尋找最佳裁剪閾值來計算量化參數(shù)以減小量化帶來的精度損失.目前常用的最佳裁剪閾值計算方法有最小均方差(MMSE)、KL 散度,ACIQ[36]等.不同于KL 的窮舉搜索模式,文獻[36]提出的ACIQ方法計算速度快,得到的裁剪閾值更優(yōu).相對于直接量化,模型重訓(xùn)則更復(fù)雜,但它能在模型參數(shù)位寬精度更低時(如1 bit),保證模型精度不受影響.在模型重訓(xùn)中,研究者主要側(cè)重于訓(xùn)練方案的設(shè)計.文獻[37]提出了一種漸進式量化模式,通過訓(xùn)練將浮點型神經(jīng)網(wǎng)絡(luò)模型轉(zhuǎn)換為無損的低比特二進制模型,并通過移位計算實現(xiàn)乘法過程,方便模型在移動平臺的部署和加速.文獻[38]提出了一種量化模式,在前向傳播時使用8-bit整型計算,但在后向傳播時仍使用32-bit 浮點型計算損失參數(shù)以保證訓(xùn)練精度.文獻[39]則從訓(xùn)練最佳裁剪閾值的角度提出了PACT 量化方法,該方法將權(quán)重和激活都量化為4-bits,仍然能保持與全精度(32-bit)幾乎相近的精度.

        綜上所述可見,單一的權(quán)值共享方法重點在于對模型參數(shù)進行壓縮,無法加速推理端的計算過程,很少被單獨使用.直接量化因為操作簡單且方便部署,得到了很多硬件廠商的青睞,但因為精度損失的影響,單一的直接量化無法做到較低位寬精度(如1-bit,2-bit)的量化.模型重訓(xùn)的量化方法則能在保證模型精度的同時,得到位寬精度更低的模型參數(shù)(如1-bit),但該方法訓(xùn)練耗時較長且不易部署.同時訓(xùn)練方案的設(shè)計,以及如何有效地應(yīng)用到CPU、FPGA、ASIC 和GPU 等硬件來加速訓(xùn)練過程,也是重訓(xùn)方法的研究重點.因此如何快速且更低位的對模型進行量化壓縮,同時保持模型精度,是當(dāng)前技術(shù)研究的核心方向.如文獻[40]在ACIQ方法[36]的基礎(chǔ)上,通過對權(quán)重采用K-means 聚類,激活輸出采用逐通道量化,以及偏置誤差補償?shù)姆椒▉肀WC低位(4-bit)量化模型后的分類精度.文獻[41]則提出了一種基于無標簽數(shù)據(jù)訓(xùn)練的網(wǎng)絡(luò)壓縮方法,能在快速量化的同時保持模型精度.文獻[42]則從混合精度的角度出發(fā),提出了自動化的HAQ 方法,該方法能對不同硬件的性能進行自動識別以采用不同的低精度適配不同硬件.

        2.4 知識蒸餾

        知識蒸餾是指將訓(xùn)練好的復(fù)雜模型的“知識”遷移到一個結(jié)構(gòu)簡單的網(wǎng)絡(luò)中,或者通過簡單網(wǎng)絡(luò)去學(xué)習(xí)復(fù)雜模型的“知識”.Hinton[43]首次提出了知識蒸餾的概念,通過引入與教師網(wǎng)絡(luò)相關(guān)的軟目標作為總損失函數(shù)的一部分,以引導(dǎo)學(xué)生網(wǎng)絡(luò)的訓(xùn)練,實現(xiàn)知識遷移的過程.

        知識蒸餾的核心在于學(xué)生網(wǎng)絡(luò)如何去學(xué)習(xí)教師網(wǎng)絡(luò)以得到教師網(wǎng)絡(luò)的“知識”.文獻[44]提出了一種基于空域注意力的知識遷移模式,針對CNN 網(wǎng)絡(luò),將教師網(wǎng)絡(luò)的注意力信息遷移給學(xué)生網(wǎng)絡(luò).文獻[45]則從學(xué)習(xí)網(wǎng)絡(luò)層與層之間關(guān)系的角度進行知識蒸餾.文獻[46]通過學(xué)習(xí)教師網(wǎng)絡(luò)和學(xué)生網(wǎng)絡(luò)的樣本間的相似度進行知識蒸餾.文獻[47]將知識遷移的過程看作學(xué)習(xí)教師-學(xué)生之間對應(yīng)特征分布匹配的過程,采用最大平均差異MMD (Maximum Mean Discrepancy)進行優(yōu)化.文獻[48]從KD 損失函數(shù)入手,將可學(xué)習(xí)損失函數(shù)GAN引入到知識蒸餾框架中,作者認為教師-學(xué)生網(wǎng)絡(luò)就是學(xué)生對教師的模仿過程,因此學(xué)生網(wǎng)絡(luò)可看作一個生成器,產(chǎn)生對于輸入的logits.文獻[49]嘗試在大規(guī)模分布式計算環(huán)境下使用在線蒸餾的方法,即分布式環(huán)境中的每個節(jié)點之間都可以互為教師和學(xué)生,并且相互提取內(nèi)在知識,以提升其它節(jié)點的模型性能.

        綜上各種蒸餾方法可以看出,當(dāng)前很多的知識蒸餾方法都是基于各自的一種“知識”假設(shè)模型進行蒸餾,因此可能存在知識學(xué)習(xí)的不全面性,如何設(shè)置一種更加自動化的知識蒸餾方法,是以后研究的重點.另外隨著硬件的發(fā)展,文獻[49]所提出的大規(guī)模分布式在線蒸餾方法也將會是發(fā)展趨勢之一.同時知識蒸餾方法與其它各種學(xué)習(xí)方法的結(jié)合也將帶來新的發(fā)展,如GAN,監(jiān)督學(xué)習(xí),半監(jiān)督學(xué)習(xí),以及弱監(jiān)督學(xué)習(xí)等.

        3 已有方法性能對比

        現(xiàn)有文獻提出了多種衡量比較其壓縮性能的量化準則,本節(jié)將對這些量化準則進行總結(jié),簡述在評測模型壓縮方法時常用的數(shù)據(jù)集,并且對比分析了代表性壓縮方法的壓縮性能.

        3.1 評價指標

        模型壓縮算法的評價指標通常涵蓋準確率壓縮(或準確率損失)、參數(shù)量壓縮、推理時延壓縮(或加速比)、MAC 量壓縮、能耗壓縮、索引空間壓縮率.各個指標的定義與計算如下:

        親子閱讀的書目以繪本為主。孩子在兒童時期閱讀繪本,不僅可以增加孩子對書的親近感,而且會對孩子產(chǎn)生深遠而重大的影響。為此,學(xué)校給一年級每個班都配發(fā)了十種繪本,每種十本,同時還把上一屆學(xué)生創(chuàng)編的繪本作為禮物送給每一位新生。繪本中一個個有趣的故事情節(jié),展現(xiàn)了一幅幅奇妙的、充滿童真、童趣的世界。生動的畫面拓展了孩子們的想象力,他們借助圖畫與文字了解了故事,又因故事而明理,因明理而不斷聰慧。圖像化的繪本故事,恰如點點甘霖,滋潤著孩子們幼小心靈的成長,逐漸成為成長需要的精神食糧。

        (1)準確率壓縮率rA:原始模型M的圖像分類準確率Aoriginal與壓縮后模型M*的分類準確率Acompressed之比,即rA=Aoriginal/Acompressed.

        (2)參數(shù)量壓縮率rp:壓縮后模型M*的所有參數(shù)所占的內(nèi)存開銷Scompressed與原始模型M的所有參數(shù)所占的內(nèi)存開銷Soriginal之比,即rp=Scompressed/Soriginal.

        (3)時延壓縮率rT(加速比):存在兩種定義方式,一種是平均測試時間即推理時間的壓縮比,另外一種是每次迭代的平均訓(xùn)練時間的壓縮比,同樣都是壓縮后模型與原模型的時間比,即rT=Tcompressed/Toriginal.

        (4)MAC 量壓縮率rc:壓縮后模型M*中所有的相乘累加操作數(shù)量Ccompressed與原始模型M中所有的相乘累加操作數(shù)量Coriginal之比,即rc=Ccompressed/Coriginal.

        (5)能耗壓縮率rE:壓縮后模型M*中進行推理所消耗的能量Ecompressed與原始模型M中進行推理所消耗的能量Eoriginal之比,即rE=Ecompressed/Eoriginal.

        (6)索引空間壓縮率rD:壓縮后模型M*中索引空間維度Dcompressed與原始模型M中索引空間維度Doriginal之比,即rD=Dcompressed/Doriginal.

        有關(guān)文獻[7]指出,單一的評價指標不能夠很好的評價壓縮模型的性能,由于這些指標并不是獨立、不相關(guān)的,因此其提出對上述所有評價指標進行平均加權(quán),全面、綜合地評價壓縮模型的性能.同時,該文獻建議在不同資源限制的硬件平臺中選用壓縮方法時,應(yīng)考慮多項指標的綜合結(jié)果作為選擇的標準,除了加權(quán)平均的方法之外還可以再進一步研究其他綜合考量多項指標的方法.

        3.2 常用評測數(shù)據(jù)集

        MNIST、CIFAR 和ImageNet 數(shù)據(jù)集是評測模型壓縮方法在分類任務(wù)中性能的常用數(shù)據(jù)集[50].表4列舉了MNIST 數(shù)據(jù)集和CIFAR 數(shù)據(jù)集的類別數(shù)和包含的圖像數(shù)量.用于小圖像分類的CIFAR 數(shù)據(jù)集分為CIFAR-10 和CIFAR-100 兩個版本,CIFAR-100 數(shù)據(jù)集的100個類被分成20 個超類,每個圖像都帶有一個“精細”標簽(小類)和一個“粗糙”標簽(超類).ImageNet 是一個大尺度圖像數(shù)據(jù)集[6],包含1000 個類別彩色圖像,根據(jù)WordNet 層次結(jié)構(gòu)組織而成.ImageNet 可以測試分類任務(wù)及目標檢測的準確率.

        表4 分類任務(wù)中常用數(shù)據(jù)集[50]

        除了分類數(shù)據(jù)集外,Pascal VOC 數(shù)據(jù)集和MS COCO數(shù)據(jù)集是常用的目標檢測數(shù)據(jù)集.Pascal VOC 包含VOC2007 和VOC2012 兩個版本.Pascal VOC 中20 個類別圖像的標注情況和標注出的對象實例數(shù)目如表5所示.MS COCO 數(shù)據(jù)集以場景理解為目標,從復(fù)雜的日常場景中截取圖像,圖像中的目標通過精確的分割進行位置的標定,包含91 類目標.與Pascal VOC 相比,MS COCO 數(shù)據(jù)集中小尺寸目標多,單幅圖片中目標多,物體大多非中心分布,更符合日常環(huán)境,所以MS COCO檢測難度更大.

        表5 目標檢測任務(wù)中常用數(shù)據(jù)集

        3.3 分類任務(wù)中的模型壓縮

        已有研究在移動端測試分析剪枝方法和低秩分解方法的代表性算法的壓縮效果,并分別評估低秩分解方法在全連接(FC)層和卷積(CONV)層的性能[7],移動端的運行環(huán)境是Xiaomi RedMi 3S (DRAM:3 GB,Battery:4100 mAh,MAC:691.3 Mflops).實驗結(jié)果如表6所列舉,包括12 層AlexNet 網(wǎng)絡(luò)在CIFAR-10 數(shù)據(jù)集上的測試數(shù)據(jù).其中,用于評價的剪枝方法是deep compression[20],而低秩分解方法選用的代表性算法是基于SVD 分解的算法[51].該研究工作中,剪枝方法被應(yīng)用于第一個FC 層,減少了40% 的MAC 計算量;SVD 低秩分解方法分別作用于第一個FC 層和第二個卷積層,各自縮減了20%和40%的MAC 計算量.

        表6 AlexNet 中模型壓縮方法在移動端的性能對比[7]

        表6中參數(shù)壓縮率的值等于原始網(wǎng)絡(luò)的參數(shù)量與壓縮后網(wǎng)絡(luò)的參數(shù)量之比,反映了壓縮算法所取得的參數(shù)量壓縮倍數(shù).由表中數(shù)據(jù)可見,對于AlexNet 剪枝算法取得了35 倍的參數(shù)壓縮率.表中的時延壓縮率等于原始網(wǎng)絡(luò)的推理時延與壓縮后網(wǎng)絡(luò)的推理時延之比,衡量網(wǎng)絡(luò)前向處理時間的加速倍數(shù).這個指標的對比結(jié)果表明時延與MAC 量或內(nèi)存消耗量無直接關(guān)系,而是由神經(jīng)網(wǎng)絡(luò)的計算與存儲開銷和設(shè)備CPU 的動態(tài)使用情況聯(lián)合影響的.參數(shù)量和MAC 量的減少,不一定會帶來時延的壓縮,在設(shè)計模型壓縮算法時,優(yōu)化時延壓縮率等直接指標比減少MAC 計算量等間接指標所取得加速效果更好,這一結(jié)論與其他研究工作[52]的實驗結(jié)果保持一致.

        文獻[27]還比較了模型壓縮方法在VGG 網(wǎng)絡(luò)中的壓縮效果,在表7的結(jié)果中,剪枝方法可以在獲取較低模型準確率損失的同時達到49 倍的參數(shù)壓縮率,高于基于CP 分解的低秩分解方法的參數(shù)壓縮率.此外,最初的深度神經(jīng)網(wǎng)絡(luò)會采用較大尺寸的卷積核,例如AlexNet 采用11×11、5×5、3×3 卷積核,而隨著深度可分離卷積的出現(xiàn),越來越多的深度神經(jīng)網(wǎng)絡(luò)模型采用小尺寸的卷積核,例如ResNet 和MobileNet 采用的1×1 卷積核,低秩分解方法對1×1 卷積核的壓縮無顯著效果,因而對于低秩分解方法的研究文獻數(shù)呈下降趨勢.

        表7 VGG 中模型壓縮方法的性能對比[27]

        3.4 識別任務(wù)中的模型壓縮

        現(xiàn)有工作還在移動端對參數(shù)剪枝方法、低秩分解等壓縮方法在幾種識別任務(wù)中的性能進行了測評[7],包括:(1)任務(wù)一,LeNet 在MNIST 數(shù)據(jù)集上的數(shù)字識別;(2)任務(wù)二,AlexNet 在CIFAR-10 數(shù)據(jù)集上的圖像識別;(3)任務(wù)三,AlexNet 在CIFAR-10 數(shù)據(jù)集上的圖像識別;(4)任務(wù)四,LeNet 在UbiSound 數(shù)據(jù)集上的語音識別.在文獻[7]的實驗結(jié)果中,參數(shù)剪枝方法在任務(wù)一中性能優(yōu)于低秩分解等方法,可取得參數(shù)壓縮率rp=0.21,推理時延壓縮率rT=0.44,MAC 壓縮率rc=0.3;在任務(wù)三中將深度可分離卷積應(yīng)用于AlexNet的輕量化方法呈現(xiàn)了最好的性能,取得參數(shù)壓縮率rp=0.32,推理時延壓縮率rT=0.23,MAC 壓縮率rc=0.13;而低秩分解方法在4 個識別任務(wù)中均未取得最佳性能表現(xiàn).

        此外,文獻[7]在具有不同資源約束的移動設(shè)備端測試了各類壓縮方法的性能,表8給出了移動設(shè)備端的DRAM、Cache、MAC 處理速率的設(shè)置情況以及性能表現(xiàn)最佳的壓縮方法.測試結(jié)果表明,在MAC處理速率最低的Device 1 上綜合性能最佳的是參數(shù)剪枝方法deep compression.而且該文章指出,沒有一種壓縮方法可以同時在精度損失、參數(shù)壓縮率、時延壓縮率、MAC 量壓縮率和能量消耗壓縮率等5 個評價指標取得最優(yōu),設(shè)計融合多類壓縮算法的復(fù)雜方法可以集成各類算法的優(yōu)勢,并突破各類算法的性能提升瓶頸.

        表8 不同移動設(shè)備端壓縮方法性能對比[7]

        4 壓縮技術(shù)展望

        壓縮技術(shù)是深度神經(jīng)網(wǎng)絡(luò)得以迅速發(fā)展和廣泛應(yīng)用的助推器,還存在很多需要解決的問題.就目前的研究重點來看,這些問題基本都集中在網(wǎng)絡(luò)參數(shù)上.這些參數(shù)所要處理的大批量數(shù)據(jù),其中往往只有少許的關(guān)鍵特征信息是我們所關(guān)心的.如何從海量的數(shù)據(jù)中提取出關(guān)鍵信息,過濾掉冗余數(shù)據(jù),也是深度神經(jīng)網(wǎng)絡(luò)壓縮技術(shù)所要面對的一個難點.

        目前雖然各方研究者提出了多種算法和理論,但是都有一定的適用范圍或適用條件,沒有一種方法可以兼顧各種應(yīng)用的特點.而深度神經(jīng)網(wǎng)絡(luò)本身所能夠支持的機器視覺任務(wù)種類將越來越多樣化,不再僅僅集中于某一種特定任務(wù).因此能夠集成目標檢測、目標跟蹤、圖像分割等多種任務(wù)于一體的模型壓縮方法會發(fā)展成新的研究熱點.

        同時,之前相對獨立發(fā)展的各種壓縮技術(shù)也將進行融合,集成各個壓縮方法的優(yōu)勢,突破單個壓縮方法的局限.另一方面也可以將神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索NAS 技術(shù)、自動調(diào)參技術(shù)等加入到模型壓縮方法中,實現(xiàn)自動化壓縮.

        人工智能中的模型壓縮技術(shù)研究,其最重要的參考對象就是人類大腦.隨著對人類大腦機理本質(zhì)的認識逐步深入,各種類腦芯片將會不斷涌現(xiàn).人類大腦的自身機能將對神經(jīng)網(wǎng)絡(luò)壓縮技術(shù)的發(fā)展產(chǎn)生深遠影響,將會提出效率更高、更為貼近人腦機能特點的壓縮理論及算法,應(yīng)用于新型的人工智能行業(yè).

        5 總結(jié)

        本文對神經(jīng)網(wǎng)絡(luò)壓縮技術(shù)的進展進行了概述.在總結(jié)深度神經(jīng)網(wǎng)絡(luò)的最新發(fā)展成果的基礎(chǔ)上,本文詳細介紹了參數(shù)剪枝、低秩分解、參數(shù)量化和知識蒸餾這四種主要的神經(jīng)網(wǎng)絡(luò)壓縮方法的原理,并且分析了這四種方法各自的優(yōu)缺點.本文對已有的神經(jīng)網(wǎng)絡(luò)壓縮方法進行了性能上的對比,介紹了常用的壓縮方法評價指標、常用來驗證壓縮方法性能的經(jīng)典神經(jīng)網(wǎng)絡(luò)模型和數(shù)據(jù)集,并總結(jié)了在不同移動設(shè)備的資源約束下模型壓縮方法的性能.除此之外,本文還討論了神經(jīng)網(wǎng)絡(luò)壓縮加速領(lǐng)域的發(fā)展趨勢和熱點問題,希望本文的總結(jié)工作能為模型壓縮方法的研究發(fā)展提供一些參考與幫助.

        猜你喜歡
        方法模型
        一半模型
        重要模型『一線三等角』
        重尾非線性自回歸模型自加權(quán)M-估計的漸近分布
        學(xué)習(xí)方法
        可能是方法不對
        3D打印中的模型分割與打包
        用對方法才能瘦
        Coco薇(2016年2期)2016-03-22 02:42:52
        FLUKA幾何模型到CAD幾何模型轉(zhuǎn)換方法初步研究
        四大方法 教你不再“坐以待病”!
        Coco薇(2015年1期)2015-08-13 02:47:34
        賺錢方法
        无码一区二区三区不卡AV| 久久精品国产亚洲av蜜臀久久| 深夜福利国产精品中文字幕| 白白发在线视频免费观看2| 国产精品亚洲а∨无码播放不卡 | 国产小毛片| 国产在线观看网址不卡一区| 中文字幕乱码亚洲在线| 深夜福利啪啪片| 国产精品高潮呻吟av久久4虎| 98国产精品永久在线观看| 日韩精品午夜视频在线| 狂猛欧美激情性xxxx大豆行情| 曰韩人妻无码一区二区三区综合部| 国产精品黄网站免费观看| 亚洲一级av大片在线观看| 美日韩毛片| 国产一区二区三区经典| 操风骚人妻沉沦中文字幕| 欧美人与物videos另类| 无码天堂亚洲国产av麻豆 | 91精品啪在线观九色| 国产av一区二区三区传媒| 国产爽爽视频在线| 黑丝国产精品一区二区| 久久青青草原国产毛片| 国产特级毛片aaaaaa高清| 久久中文字幕亚洲精品最新| av免费观看在线网站| 国产av天堂亚洲av刚刚碰| 午夜性无码专区| 亚洲情a成黄在线观看动漫尤物| 国产精品高清一区二区三区人妖| 伊人情人色综合网站| 国产在线无码制服丝袜无码| 久久久久久久久高潮无码 | 黑人一区二区三区在线| 亚洲精品一区二区三区播放| 亚洲国产中文字幕精品| 日本亚洲欧美色视频在线播放| 2022Av天堂在线无码|