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

    深度學(xué)習(xí)模型壓縮與加速綜述*

    2021-05-18 11:28:28田育龍許封元
    軟件學(xué)報(bào) 2021年1期
    關(guān)鍵詞:效果方法模型

    高 晗,田育龍,許封元,仲 盛

    (計(jì)算機(jī)軟件新技術(shù)國家重點(diǎn)實(shí)驗(yàn)室(南京大學(xué)),江蘇 南京 210023)

    深度學(xué)習(xí)模型的壓縮和加速是指利用神經(jīng)網(wǎng)絡(luò)參數(shù)的冗余性和網(wǎng)絡(luò)結(jié)構(gòu)的冗余性精簡模型,在不影響任務(wù)完成度的情況下,得到參數(shù)量更少、結(jié)構(gòu)更精簡的模型.被壓縮后的模型計(jì)算資源需求和內(nèi)存需求更小,相比原始模型能夠滿足更加廣泛的應(yīng)用需求.

    本文系統(tǒng)地介紹模型壓縮與加速方面的進(jìn)展.第1 節(jié)主要介紹深度學(xué)習(xí)模型壓縮與加速技術(shù)提出的研究背景和研究動(dòng)機(jī),以及本文的主要貢獻(xiàn).第2 節(jié)主要對(duì)目前主流的模型壓縮與加速方法進(jìn)行分類總結(jié),從參數(shù)剪枝、參數(shù)量化、緊湊網(wǎng)絡(luò)、知識(shí)蒸餾、低秩分解、參數(shù)共享、混合方式這7 個(gè)方面探究相關(guān)技術(shù)的發(fā)展歷程,并分析其特點(diǎn).第3 節(jié)主要比較各類壓縮與加速技術(shù)中一些代表性方法的壓縮效果.第4 節(jié)探討模型壓縮與加速領(lǐng)域未來的發(fā)展方向.第5 節(jié)對(duì)全文進(jìn)行總結(jié).

    1 簡介

    1.1 研究背景

    神經(jīng)網(wǎng)絡(luò)的概念在20 世紀(jì)40 年代提出后,發(fā)展一直不溫不火.直到1989 年,LeCun 教授提出應(yīng)用于手寫字體識(shí)別的卷積神經(jīng)網(wǎng)絡(luò)[1],取得了良好效果,才使其得到更廣泛的發(fā)展和關(guān)注.卷積神經(jīng)網(wǎng)絡(luò)(CNN)的得名即來自于其使用了卷積運(yùn)算的結(jié)果.如圖1 所示,特征圖(feature map)是輸入數(shù)據(jù)的中間抽象表示結(jié)果,輸入特征圖(input feature map)是由Cin個(gè)Hin×Win的2D 輸入特征圖組合而成,每一個(gè)濾波器(filter)與輸入特征圖的通道數(shù)相同,由Cin個(gè)d×d的卷積核(kernel)構(gòu)成,輸出特征圖(output feature map)的每個(gè)通道(channel)都是由輸入特征圖與每一個(gè)filter 通過卷積運(yùn)算而得到.但是由于當(dāng)時(shí)數(shù)據(jù)集規(guī)模較小,容易出現(xiàn)過擬合問題,卷積神經(jīng)網(wǎng)絡(luò)并沒有引起足夠的重視.隨著大數(shù)據(jù)時(shí)代的到來,數(shù)據(jù)集的規(guī)模不斷擴(kuò)大,計(jì)算硬件,特別是GPU 的飛速發(fā)展,神經(jīng)網(wǎng)絡(luò)重新獲得關(guān)注.2009 年,Deng 等人發(fā)布當(dāng)時(shí)世界上最大的通用物體識(shí)別數(shù)據(jù)庫——ImageNet 數(shù)據(jù)庫[2].從2010年開始,每年都會(huì)舉辦基于該數(shù)據(jù)庫的大規(guī)模圖像識(shí)別比賽——ILSVRC[3].2012 年,Hinton 的研究小組采用深度學(xué)習(xí)模型AlexNet[4]贏得了該比賽,突破性地將錯(cuò)誤率從26.2%降到15.3%.此后,深度學(xué)習(xí)模型開始廣泛用于人工智能的各個(gè)領(lǐng)域,在許多任務(wù)中得到了超越人類的正確率,在自動(dòng)駕駛、醫(yī)療影像分析、智能家居等領(lǐng)域給予人們的生產(chǎn)和生活以更大的幫助.

    Fig.1 Convolutional operator圖1 卷積計(jì)算

    深度學(xué)習(xí)模型性能提高的同時(shí),計(jì)算也越來越復(fù)雜,計(jì)算開銷和內(nèi)存需求逐漸增加.僅8 層的AlexNet[4]需要0.61 億個(gè)網(wǎng)絡(luò)參數(shù)和7.29 億次浮點(diǎn)型計(jì)算,花費(fèi)約233MB 內(nèi)存.隨后的VGG-16[5]的網(wǎng)絡(luò)參數(shù)達(dá)到1.38 億,浮點(diǎn)型計(jì)算次數(shù)為1.56 億,需要約553MB 內(nèi)存.為了克服深層網(wǎng)絡(luò)的梯度消失問題,He 提出了ResNet[6]網(wǎng)絡(luò),首次在ILSVRC 比賽[3]中實(shí)現(xiàn)了低于5%的top-5 分類錯(cuò)誤,偏淺的ResNet-50 網(wǎng)絡(luò)參數(shù)就達(dá)到0.25 億,浮點(diǎn)型計(jì)算次數(shù)高達(dá)3.9 億,內(nèi)存花費(fèi)約102MB.龐大的網(wǎng)絡(luò)參數(shù)意味著更大的內(nèi)存存儲(chǔ),而增長的浮點(diǎn)型計(jì)算次數(shù)意味著訓(xùn)練成本和計(jì)算時(shí)間的增長,這極大地限制了在資源受限設(shè)備,例如智能手機(jī)、智能手環(huán)等上的部署.如表1 所示,深度模型在Samsung Galaxy S6 的推理時(shí)間遠(yuǎn)超Titan X 桌面級(jí)顯卡,實(shí)時(shí)性較差,無法滿足實(shí)際應(yīng)用的需要.

    Table 1 Inference time of different deep models[7] (unit:ms)表1 不同深度模型的推理時(shí)間[7] (單位:毫秒)

    在深度學(xué)習(xí)技術(shù)日益火爆的背景下,對(duì)深度學(xué)習(xí)模型強(qiáng)烈的應(yīng)用需求使得人們對(duì)內(nèi)存占用少、計(jì)算資源要求低、同時(shí)依舊保證相當(dāng)高的正確率的“小模型”格外關(guān)注.利用神經(jīng)網(wǎng)絡(luò)的冗余性進(jìn)行深度學(xué)習(xí)的模型壓縮和加速引起了學(xué)術(shù)界和工業(yè)界的廣泛興趣,各種工作層出不窮.

    1.2 研究動(dòng)機(jī)

    綜述能為讀者省去大量閱讀時(shí)間,以高屋建瓴的視角對(duì)該領(lǐng)域技術(shù)進(jìn)行了解.然而截止到目前,在技術(shù)不斷推陳出新的背景下,關(guān)于模型壓縮的綜述文章數(shù)量不多且年代久遠(yuǎn),分類簡單,難以展示新的趨勢和方法.表2 是本文與目前國內(nèi)外最新相關(guān)綜述進(jìn)行方法分類的種類以及與該分類下的文章數(shù)量進(jìn)行對(duì)比的情況,從中可以看出:無論是方法分類還是涉及到的文章數(shù)量,已有的綜述文章都難以展示新的趨勢,對(duì)參數(shù)剪枝、參數(shù)量化和緊湊網(wǎng)絡(luò)這3 類方法介紹得都較為粗略,對(duì)于混合方式這一新型加速方法未給出詳細(xì)介紹,不能滿足新進(jìn)入這一領(lǐng)域的初學(xué)者了解整體發(fā)展方向的需求.

    Table 2 Literature classification and quantity of the reviews表2 綜述的文獻(xiàn)分類與數(shù)量

    根據(jù)圖2 所示的文章發(fā)表年份來看,文獻(xiàn)[8-11]的最新文章發(fā)表于2017 年,對(duì)近年來熱門研究方向和新方法的介紹較少.

    Fig.2 Article publication time and quantity of the reviews圖2 綜述的文章發(fā)表時(shí)間與數(shù)量

    根據(jù)我們的最新整理,2018 年之后,發(fā)表在各大頂級(jí)會(huì)議上的文章達(dá)到64 篇,占本文統(tǒng)計(jì)文章總數(shù)的大約40%,其中,文獻(xiàn)[13]首先提出在裁剪權(quán)重時(shí)加入能耗、延遲等硬件限制作為優(yōu)化約束,為后續(xù)工作[14-16]提供了啟發(fā).Network Trimming[17]將激活值為0 的通道數(shù)量作為判斷filter 是否重要的標(biāo)準(zhǔn),是結(jié)構(gòu)化剪枝領(lǐng)域最有影響力的工作,開創(chuàng)了設(shè)置filter 評(píng)價(jià)因子的技術(shù)分支.文獻(xiàn)[18]提出的依據(jù)參數(shù)對(duì)應(yīng)損失函數(shù)(loss)的梯度來自適應(yīng)確定每個(gè)參數(shù)量化位數(shù)的方法,打破了固有的手工確定量化位數(shù)的觀念,引領(lǐng)了新的自適應(yīng)量化技術(shù)體系.由此可以看出:近年來出現(xiàn)的熱門文章提供了不少新的研究方向,極大地促進(jìn)了模型壓縮與加速領(lǐng)域的發(fā)展,非常值得收錄到我們的綜述中,從而為讀者帶來新的思考.

    1.3 主要貢獻(xiàn)

    對(duì)比模型壓縮與加速領(lǐng)域已有的綜述文章,本文提出的技術(shù)分類更加齊全,收錄的文章更新穎、熱門,對(duì)于主流研究方向進(jìn)行了重點(diǎn)介紹和分析.本文調(diào)研了近年來發(fā)表在國際頂級(jí)會(huì)議上的近200 篇文章,對(duì)主流模型壓縮與加速方法分類進(jìn)行了總結(jié)和詳細(xì)分析;同時(shí)對(duì)一些具有代表性的方法在公開模型上進(jìn)行了性能對(duì)比,探討了模型壓縮與加速領(lǐng)域未來的研究方向.希望本文能給研究者對(duì)模型壓縮與加速領(lǐng)域有一個(gè)全面的了解,抓住熱門研究方向,推動(dòng)未來模型壓縮與加速的研究,促進(jìn)深度學(xué)習(xí)模型的實(shí)際應(yīng)用.

    2 壓縮方法概覽

    本節(jié)主要介紹目前主流的模型壓縮與加速方法,見表3,從壓縮參數(shù)和壓縮結(jié)構(gòu)兩個(gè)角度可以將壓縮方法分成以下7 類.

    Table 3 Summarization of methods for deep learning models compression and acceleration表3 深度學(xué)習(xí)模型壓縮與加速方法總結(jié)

    2.1 參數(shù)剪枝

    參數(shù)剪枝是指在預(yù)訓(xùn)練好的大型模型的基礎(chǔ)上,設(shè)計(jì)對(duì)網(wǎng)絡(luò)參數(shù)的評(píng)價(jià)準(zhǔn)則,以此為根據(jù)刪除“冗余”參數(shù).根據(jù)剪枝粒度粗細(xì),參數(shù)剪枝可分為非結(jié)構(gòu)化剪枝和結(jié)構(gòu)化剪枝.非結(jié)構(gòu)化剪枝的粒度比較細(xì),可以無限制地去掉網(wǎng)絡(luò)中期望比例的任何“冗余”參數(shù),但這樣會(huì)帶來裁剪后網(wǎng)絡(luò)結(jié)構(gòu)不規(guī)整、難以有效加速的問題.結(jié)構(gòu)化剪枝的粒度比較粗,剪枝的最小單位是filter 內(nèi)參數(shù)的組合,通過對(duì)filter 或者feature map 設(shè)置評(píng)價(jià)因子,甚至可以刪除整個(gè)filter 或者某幾個(gè)channel,使網(wǎng)絡(luò)“變窄”,從而可以直接在現(xiàn)有軟/硬件上獲得有效加速,但可能會(huì)帶來預(yù)測精度(accuracy)的下降,需要通過對(duì)模型微調(diào)(fine-tuning)以恢復(fù)性能.

    2.1.1 非結(jié)構(gòu)化剪枝

    LeCun 在20 世紀(jì)80 年代末提出的OBD(optimal brain damage)算法[19]使用loss 對(duì)參數(shù)求二階導(dǎo)數(shù),以判斷參數(shù)的重要程度.在此基礎(chǔ)上,Hassibi 等人不再限制于OBD 算法[19]的對(duì)角假設(shè),提出了OBS(optimal brain surgeon)算法[20],除了將次重要權(quán)重值置0 以外,還重新計(jì)算其他權(quán)重值以補(bǔ)償激活值,壓縮效果更好.與OBS 算法[20]類似,Srinivas 等人[21]提出了刪除全連接層稠密的連接,不依賴訓(xùn)練數(shù)據(jù),極大地降低了計(jì)算復(fù)雜度.最近,Dong 等人[22]提出了逐層OBS 算法,每一層都基于逐層loss 函數(shù)對(duì)相應(yīng)參數(shù)的二階導(dǎo)數(shù)獨(dú)立剪枝,修剪后,經(jīng)過輕量再訓(xùn)練以恢復(fù)性能.

    如圖3 所示,卷積層和全連接層的輸入與輸出之間都存在稠密的連接,對(duì)神經(jīng)元之間的連接重要性設(shè)計(jì)評(píng)價(jià)準(zhǔn)則,刪除冗余連接,可達(dá)到模型壓縮的目的.Han 等人[23]提出:根據(jù)神經(jīng)元連接權(quán)值的范數(shù)值大小,刪除范數(shù)值小于指定閾值的連接,可重新訓(xùn)練恢復(fù)性能.為了避免錯(cuò)誤刪除重要連接,Guo 等人[24]提出了DNS(dynamic network surgery)方法,恢復(fù)被誤刪的重要連接.Lin 等人[25]利用生物學(xué)上的神經(jīng)突觸概念,定義突觸強(qiáng)度為Batch Normalization(BN)層放縮因子γ和filter 的Frobinus 范數(shù)的乘積,用突觸強(qiáng)度來表示神經(jīng)元之間連接的重要性.不同于其他方法在預(yù)訓(xùn)練模型上做剪枝,Lee 等人提出的SNIP(single-shot network pruning)方法[26]在模型初始化階段,通過對(duì)訓(xùn)練集多次采樣判斷連接的重要性,生成剪枝模板再進(jìn)行訓(xùn)練,無需迭代進(jìn)行剪枝-微調(diào)的過程.

    Fig.3 Pruning connections圖3 裁剪連接

    除了對(duì)神經(jīng)元之間的連接進(jìn)行評(píng)估以外,也可以如圖4 所示,直接對(duì)神經(jīng)元權(quán)重進(jìn)行評(píng)估,相比原始權(quán)重,3個(gè) filter 各自進(jìn)行權(quán)重置零操作(即刪去某幾個(gè)小方塊),置零的神經(jīng)元可能各不相同.行列式點(diǎn)過程(determinantal point process,簡稱DPP)[27]常用來解決機(jī)器學(xué)習(xí)中的子集選擇問題,Mariet 等人[28]將DPP 應(yīng)用于神經(jīng)元的選擇,再通過重新加權(quán)將刪除神經(jīng)元的信息直接融合到剩余神經(jīng)元中,這種方法不需要再微調(diào)模型.受Kingma 等人提出的變分dropout 技術(shù)[29]的啟發(fā),Molchanov 等人[30]將其用于模型壓縮,同時(shí)對(duì)卷積層和全連接層進(jìn)行稀疏化.另外,正則化項(xiàng)作為機(jī)器學(xué)習(xí)中l(wèi)oss 函數(shù)的懲罰項(xiàng)常用于對(duì)某些參數(shù)進(jìn)行限制,所以關(guān)于權(quán)重參數(shù)的正則化項(xiàng)也可以用于懲罰次重要參數(shù)的存在,達(dá)到模型壓縮的目的.由于參數(shù)的L0 范數(shù)不可微分,很難與loss 共同優(yōu)化,Louizos 等人[31]對(duì)權(quán)重設(shè)置非負(fù)隨機(jī)門來決定哪些權(quán)重設(shè)置為0,轉(zhuǎn)化為可微問題,門上參數(shù)可以與原始網(wǎng)絡(luò)參數(shù)共同優(yōu)化.Tartaglione 等人[32]量化權(quán)重參數(shù)對(duì)于輸出的敏感度,將其作為正則化項(xiàng),逐漸降低敏感度較低的參數(shù)值.延遲、能耗等硬件約束條件也可以作為模型壓縮的懲罰項(xiàng),Chen 等人[13]引入硬件約束(例如延遲),使任務(wù)目標(biāo)(如分類精度)最大化,基于權(quán)重大小刪除范數(shù)值較低的權(quán)重.Yang 等人[14]利用加權(quán)稀疏投影和輸入遮蔽來提供可量化的能耗,將能耗預(yù)算作為網(wǎng)絡(luò)訓(xùn)練的優(yōu)化約束條件,并且由于手工設(shè)置的壓縮閾值對(duì)網(wǎng)絡(luò)的自適應(yīng)性不好,使用能恢復(fù)誤刪重要連接的動(dòng)態(tài)剪枝法可獲得稀疏網(wǎng)絡(luò).Carreira-Perpinán 等人[33]提出交替使用“學(xué)習(xí)”和“壓縮”步驟,探索使loss 最小化的權(quán)重子集的方法.Liu 等人[34]證明卷積可以通過DCT 域乘法來實(shí)現(xiàn),然后對(duì)filter 的DCT 系數(shù)進(jìn)行動(dòng)態(tài)剪枝.

    Fig.4 Parameter pruning圖4 參數(shù)剪枝

    2.1.2 結(jié)構(gòu)化剪枝

    (1)group 級(jí)別剪枝

    如圖4 所示,group 級(jí)別剪枝是指對(duì)每一層的filter 設(shè)置相同的稀疏模式(即圖中每個(gè)立方體都刪去相同位置的小方塊),變成結(jié)構(gòu)相同的稀疏矩陣.Wen 等人[35]利用group Lasso 回歸進(jìn)行正則化規(guī)約,探索filter、channel等不同層次的結(jié)構(gòu)稀疏性.Alvarez 等人[36]提出不需要預(yù)訓(xùn)練模型,加入組稀疏正則化項(xiàng),而是在網(wǎng)絡(luò)訓(xùn)練的同時(shí)自動(dòng)選擇各層神經(jīng)元數(shù)目.Figurnov 等人[37]提出Perforatedcnns,使用不同策略遮蔽激活值,被遮蔽的值用鄰近值表示.Lebedev 等人[38]利用文獻(xiàn)[19]中提出的OBD 算法,將卷積操作視作矩陣乘法計(jì)算,以group 方式稀疏化卷積核,變?yōu)橄∈杈仃嚦朔?提高運(yùn)算速度.Zhou 等人[39]提出引入稀疏約束,減少最后一個(gè)全連接層的參數(shù)數(shù)量.

    (2)filter 級(jí)別剪枝

    filter 級(jí)別剪枝也可以看作channel 級(jí)別剪枝.如圖4 所示,刪去該層的某些filter(即圖中刪去整個(gè)立方體),相當(dāng)于刪去其產(chǎn)生的部分feature map 和原本需要與這部分feature map 進(jìn)行卷積運(yùn)算的下一層部分filter.對(duì)filter 的評(píng)價(jià)準(zhǔn)則可分為以下4 種.

    ? 基于filter 范數(shù)大小

    Li 等人[40]提出計(jì)算filter 的L1 范數(shù),過濾掉較小L1 范數(shù)的filter 對(duì)應(yīng)的feature map,剪枝后再訓(xùn)練.Yang等人[15]利用Chen 等人的工作[41]提出的模型能耗工具Eyeriss 計(jì)算每一層能耗,對(duì)能耗大的層優(yōu)先剪枝;同時(shí),為了避免不正確的剪枝,保留剪枝后精確度下降最大的權(quán)重.Yang 等人在其另一項(xiàng)工作[42]中提出的Netadapt 同樣也是將硬件度量指標(biāo)(延遲和能耗等)作為剪枝評(píng)價(jià)準(zhǔn)則,但與文獻(xiàn)[15]不同的是:使用經(jīng)驗(yàn)度量來評(píng)估,不需要對(duì)平臺(tái)有詳細(xì)的了解.算法在移動(dòng)平臺(tái)上自動(dòng)迭代對(duì)預(yù)訓(xùn)練網(wǎng)絡(luò)進(jìn)行剪枝,直到滿足資源預(yù)算.He 等人[43]提出設(shè)置剪枝概率刪去L2 范數(shù)最小的幾個(gè)卷積核,即將該filter 置0.其特殊之處在于:每次訓(xùn)練完一個(gè)epoch 進(jìn)行剪枝,但在上一個(gè)epoch 中被剪枝的filter 在當(dāng)前epoch 訓(xùn)練時(shí)仍然參與迭代.

    ? 自定義filter 評(píng)分因子

    Hu 等人[17]提出了Network trimming 方法,他們認(rèn)為激活值為0 的神經(jīng)元是冗余的,所以統(tǒng)計(jì)每一個(gè)filter中激活值為0 的數(shù)量,將其作為判斷一個(gè)filter 是否重要的標(biāo)準(zhǔn).Liu 等人[44]根據(jù)BN 層放縮因子γ來判斷channel的重要性.Huang 等人的工作[45]可以看作是文獻(xiàn)[44]的泛化,引入了額外的放縮因子對(duì)channel 加以評(píng)價(jià).Ye 等人[46]在文獻(xiàn)[45]的基礎(chǔ)上進(jìn)行優(yōu)化,提出了基于ISTA 和重標(biāo)技術(shù)的梯度學(xué)習(xí)算法.Dai 等人[47]提出了基于變分信息瓶頸剪枝方法,在每一層只提取與任務(wù)相關(guān)的信息,將冗余神經(jīng)元的激活值推向0.He 等人[48]利用強(qiáng)化學(xué)習(xí)(reinforcement learning)提供壓縮策略,相比于手動(dòng)啟發(fā)式方法,效果更好.

    ? 最小化重建誤差

    設(shè)神經(jīng)網(wǎng)絡(luò)中某一卷積層權(quán)重為W,通道數(shù)為C,輸入為X,輸出為Y,忽略偏置項(xiàng)B,則有:

    令:

    則有:

    令S作為從C個(gè)通道中取得的最優(yōu)子集,裁剪過程其實(shí)就是使子集S的最終輸出與原始C個(gè)通道的最終輸出Y的差別最小.即:

    Luo 等人[49]提出了Thinet,“貪婪地”剪去對(duì)下一層激活值影響最小的channel.He 等人[50]并沒有像文獻(xiàn)[49]那樣直接使用貪心策略,而是通過Lasso 回歸對(duì)channel 進(jìn)行選擇性刪除,然后利用最小二乘法重構(gòu)feature map.Yu 等人[51]定義最后一個(gè)與softmax 層相連的hidden layer 為final response layer(FRL),通過特征選擇器來確定各個(gè)特征的重要性得分,反向傳播,得到整個(gè)網(wǎng)絡(luò)各層的得分,再根據(jù)裁剪比率進(jìn)行裁剪.裁剪的原則是,FRL 輸出的重建誤差最小.Zhuang 等人[52]引入額外的識(shí)別感知loss,輔助選擇真正有助于識(shí)別的channel,聯(lián)合重建誤差共同優(yōu)化.

    ? 其他方法

    Molchanov 等人[53]將剪枝問題當(dāng)作一個(gè)優(yōu)化問題,從權(quán)重參數(shù)中選擇一個(gè)最優(yōu)組合,使得loss 的損失最小,認(rèn)為剪枝后預(yù)測精度衰減小的參數(shù)是不重要的.Lin 等人[54]工作的獨(dú)特之處在于:能夠全局性地評(píng)估各個(gè)filter的重要度,動(dòng)態(tài)地、迭代地剪枝,并且能夠重新調(diào)用之前迭代中錯(cuò)誤剪枝的filter.Zhang 等人[55]將剪枝問題視為具有組合約束條件的非凸優(yōu)化問題,利用交替方向乘法器(ADMM)分解為兩個(gè)子問題,可分別用SGD 和解析法求解.Yang 等人[16]的工作與文獻(xiàn)[55]的工作相比,加入能耗作為約束條件,通過雙線性回歸函數(shù)進(jìn)行建模.

    2.2 參數(shù)量化

    參數(shù)量化是指用較低位寬表示典型的32 位浮點(diǎn)網(wǎng)絡(luò)參數(shù),網(wǎng)絡(luò)參數(shù)包括權(quán)重、激活值、梯度和誤差等等,可以使用統(tǒng)一的位寬(如16-bit、8-bit、2-bit 和1-bit 等),也可以根據(jù)經(jīng)驗(yàn)或一定策略自由組合不同的位寬.參數(shù)量化的優(yōu)點(diǎn)是:(1)能夠顯著減少參數(shù)存儲(chǔ)空間與內(nèi)存占用空間,將參數(shù)從32 位浮點(diǎn)型量化到8 位整型,從而縮小75%的存儲(chǔ)空間,這對(duì)于計(jì)算資源有限的邊緣設(shè)備和嵌入式設(shè)備進(jìn)行深度學(xué)習(xí)模型的部署和使用都有很大的幫助;(2)能夠加快運(yùn)算速度,降低設(shè)備能耗,讀取32 位浮點(diǎn)數(shù)所需的帶寬可以同時(shí)讀入4 個(gè)8 位整數(shù),并且整型運(yùn)算相比浮點(diǎn)型運(yùn)算更快,自然能夠降低設(shè)備功耗.但其仍存在一定的局限性,網(wǎng)絡(luò)參數(shù)的位寬減少損失了一部分信息量,會(huì)造成推理精度的下降,雖然能夠通過微調(diào)恢復(fù)部分精確度,但也帶來時(shí)間成本的增加;量化到特殊位寬時(shí),很多現(xiàn)有的訓(xùn)練方法和硬件平臺(tái)不再適用,需要設(shè)計(jì)專用的系統(tǒng)架構(gòu),靈活性不高.

    2.2.1 二值化

    二值化是指限制網(wǎng)絡(luò)參數(shù)取值為1 或-1,極大地降低了模型對(duì)存儲(chǔ)空間和內(nèi)存空間的需求,并且將原來的乘法操作轉(zhuǎn)化成加法或者移位操作,顯著提高了運(yùn)算速度,但同時(shí)也帶來訓(xùn)練難度和精度下降的問題.

    (1)二值化權(quán)重

    由于權(quán)重占據(jù)網(wǎng)絡(luò)參數(shù)的大部分,一些研究者提出對(duì)網(wǎng)絡(luò)權(quán)重進(jìn)行二值化,以達(dá)到壓縮網(wǎng)絡(luò)的目的.Courbariaux 等人[56]提出了Binaryconnect,將二值化策略用于前向計(jì)算和反向傳播,但在使用隨機(jī)梯度更新法(SGD)更新參數(shù)時(shí),仍需使用較高位寬.Hou 等人[57]提出一種直接考慮二值化權(quán)重對(duì)loss 產(chǎn)生影響的二值化算法,采用對(duì)角海森近似的近似牛頓算法得到二值化權(quán)重.Xu 等人[58]提出局部二值卷積(LBC)來替代傳統(tǒng)卷積,LBC 由一個(gè)不可學(xué)習(xí)的預(yù)定義filter、一個(gè)非線性激活函數(shù)和一部分可以學(xué)習(xí)的權(quán)重組成,其組合達(dá)到與激活的傳統(tǒng)卷積filter 相同的效果.Guo 等人[59]提出了Network sketching 方法,使用二值權(quán)重共享的卷積,即:對(duì)于同層的卷積運(yùn)算(即擁有相同輸入),保留前一次卷積的結(jié)果,卷積核的相同部分直接復(fù)用結(jié)果.McDonnell 等人[60]將符號(hào)函數(shù)作為實(shí)現(xiàn)二值化的方法.Hu 等人[61]通過哈希將數(shù)據(jù)投影到漢明空間,將學(xué)習(xí)二值參數(shù)的問題轉(zhuǎn)化為一個(gè)在內(nèi)積相似性下的哈希問題.

    (2)二值化權(quán)重和激活值

    在二值化網(wǎng)絡(luò)權(quán)重的基礎(chǔ)上,研究人員提出可以同時(shí)二值化權(quán)重和激活值,以加快推理速度.Courbariaux 等人[62]首先提出了Binarized neural network(BNN),將權(quán)重和激活值量化到±1.Rastegari 等人[63]在文獻(xiàn)[62]的基礎(chǔ)上提出了Xnor-net,將卷積通過xnor 和位操作實(shí)現(xiàn),從頭訓(xùn)練一個(gè)二值化網(wǎng)絡(luò).Li 等人[64]在Xnor-net[63]的基礎(chǔ)上改進(jìn)其激活值量化,提出了High-order residual quantization(HORQ)方法.Liu 等人[65]提出了Bi-real net,針對(duì)Xnor-net[63]進(jìn)行網(wǎng)絡(luò)結(jié)構(gòu)改進(jìn)和訓(xùn)練優(yōu)化.Lin 等人[66]提出了ABC-Net,用多個(gè)二值操作加權(quán)來擬合卷積操作.

    2.2.2 三值化

    三值化是指在二值化的基礎(chǔ)上引入0 作為第3 閾值,減少量化誤差.Li 等人[67]提出了三元權(quán)重網(wǎng)絡(luò)TWN,將權(quán)重量化為{-w,0,+w}.不同于傳統(tǒng)的1 或者權(quán)重均值,Zhu 等人[68]提出了Trained ternary quantization(TTQ),使用兩個(gè)可訓(xùn)練的全精度放縮系數(shù),將權(quán)重量化到{-wn,0,wp},權(quán)重不對(duì)稱使網(wǎng)絡(luò)更靈活.Achterhold 等人[69]提出了Variational network quantization(VNQ),將量化問題形式化為一個(gè)變分推理問題.引入量化先驗(yàn),最后可以用確定性量化值代替權(quán)值.

    2.2.3 聚類量化

    當(dāng)參數(shù)數(shù)量龐大時(shí),可利用聚類方式進(jìn)行權(quán)重量化.Gong 等人[70]最早提出將k-means 聚類用于量化全連接層參數(shù),如圖5 所示,對(duì)原始權(quán)重聚類形成碼本,為權(quán)值分配碼本中的索引,所以只需存儲(chǔ)碼本和索引,無需存儲(chǔ)原始權(quán)重信息.Wu 等人[71]將k-means 聚類拓展到卷積層,將權(quán)值矩陣劃分成很多塊,再通過聚類獲得碼本,并提出一種有效的訓(xùn)練方案抑制量化后的多層累積誤差.Choi 等人[72]分析了量化誤差與loss 的定量關(guān)系,確定海森加權(quán)失真測度是量化優(yōu)化的局部正確目標(biāo)函數(shù),提出了基于海森加權(quán)k-means 聚類的量化方法.Xu 等人[73]提出了分別針對(duì)不同位寬的Single-level network quantization(SLQ)和Multi-level network quantization(MLQ)兩種方法,SLQ 方法針對(duì)高位寬,利用k-means 聚類將權(quán)重分為幾簇,依據(jù)量化loss,將簇分為待量化組和再訓(xùn)練組,待量化組的每個(gè)簇用簇內(nèi)中心作為共享權(quán)重,剩下的參數(shù)再訓(xùn)練.而MLQ 方法針對(duì)低位寬,不同于SLQ 方法一次量化所有層,MLQ 方法采用逐層量化的方式.

    Fig.5 Flow chart of clustering quantization圖5 聚類量化流程圖

    2.2.4 混合位寬

    (1)手工固定

    由于二值網(wǎng)絡(luò)會(huì)降低模型的表達(dá)能力,研究人員提出,可以根據(jù)經(jīng)驗(yàn)手工選定最優(yōu)的網(wǎng)絡(luò)參數(shù)位寬組合.Lin 等人[74]在BNN[62]的基礎(chǔ)上,提出把32-bit 權(quán)重概率性地轉(zhuǎn)換為二元和三元值的組合.Zhou 等人[75]提出了DoReFa-Net,將權(quán)重和激活值分別量化到1-bit 和2-bit.Mishra 等人[76]提出了WRPN,將權(quán)重和激活值分別量化到2-bit 和4-bit.K?ster 等人[77]提出的Flexpoint 向量有一個(gè)可動(dòng)態(tài)調(diào)整的共享指數(shù),證明16 位尾數(shù)和5 位共享指數(shù)的Flexpoint 向量表示在不修改模型及其超參數(shù)的情況下,性能更優(yōu).Wang 等人[78]使用8 位浮點(diǎn)數(shù)進(jìn)行網(wǎng)絡(luò)訓(xùn)練,部分乘積累加和權(quán)重更新向量的精度從32-bit 降低到16-bit,達(dá)到與32-bit 浮點(diǎn)數(shù)基線相同的精度水平.除了權(quán)重和激活值,研究者們將梯度和誤差也作為可優(yōu)化的因素.這些同時(shí)考慮了權(quán)重、激活值、梯度和誤差的方法的量化位數(shù)和特點(diǎn)對(duì)比可見表4.表中的W、A、G和E分別代表權(quán)重、激活值、梯度和誤差.

    Table 4 Comparison of several mixed bit-width quantization methods表4 幾種混合位寬量化法對(duì)比

    (2)自主確定

    由于手工確定網(wǎng)絡(luò)參數(shù)位寬存在一定的局限性,可以設(shè)計(jì)一定的策略,以幫助網(wǎng)絡(luò)選擇合適的位寬組合.Khoram 等人[18]迭代地使用loss 的梯度來確定每個(gè)參數(shù)的最優(yōu)位寬,使得只有對(duì)預(yù)測精度重要的參數(shù)才有高精度表示.Wang 等人[84]提出兩步量化方法:先量化激活值再量化權(quán)重.針對(duì)激活值量化,提出了稀疏量化方法.對(duì)于權(quán)重量化,將其看成非線性最小二乘回歸問題.Faraone 等人[85]提出了基于梯度的對(duì)稱量化方法SYQ,設(shè)計(jì)權(quán)值二值化或三值化,并在pixel 級(jí)別、row 級(jí)別和layer 級(jí)別定義不同粒度的縮放因子以估計(jì)網(wǎng)絡(luò)權(quán)重;至于激活值,則量化為2-bit 到8-bit 的定點(diǎn)數(shù).Zhang 等人[86]提出了Learned quantization(LQ-nets),使量化器可以與網(wǎng)絡(luò)聯(lián)合訓(xùn)練,自適應(yīng)地學(xué)習(xí)最佳量化位寬.

    2.2.5 訓(xùn)練技巧

    由于量化網(wǎng)絡(luò)的網(wǎng)絡(luò)參數(shù)不是連續(xù)的數(shù)值,所以不能像普通的卷積神經(jīng)網(wǎng)絡(luò)那樣直接使用梯度下降方法進(jìn)行訓(xùn)練,而需要特殊的方法對(duì)這些離散的參數(shù)值進(jìn)行處理,使其不斷優(yōu)化,最終實(shí)現(xiàn)訓(xùn)練目標(biāo).Zhou 等人[87]提出了一種增量式網(wǎng)絡(luò)量化方法INQ,先對(duì)權(quán)重進(jìn)行劃分,將對(duì)預(yù)測精度貢獻(xiàn)小的權(quán)重劃入量化組;然后通過再訓(xùn)練恢復(fù)性能.Cai 等人[88]提出了Halfwave Gaussian quantizer(HWGQ)方法,設(shè)計(jì)了兩個(gè)ReLU 非線性逼近器(前饋計(jì)算中的半波高斯量化器和反向傳播的分段連續(xù)函數(shù)),以訓(xùn)練低精度的深度學(xué)習(xí)網(wǎng)絡(luò).Leng 等人[89]提出,利用ADMM[90]解決低位寬網(wǎng)絡(luò)訓(xùn)練問題.Zhuang 等人[91]針對(duì)低位寬卷積神經(jīng)網(wǎng)絡(luò)提出3 種訓(xùn)練技巧,以期得到較高精度.Zhou 等人[92]提出一種顯式的loss-error-aware 量化方法,綜合考慮優(yōu)化過程中的loss 擾動(dòng)和權(quán)值近似誤差,采用增量量化策略.Park 等人[93]提出了價(jià)值感知量化方法來降低訓(xùn)練中的內(nèi)存成本和推理中的計(jì)算/內(nèi)存成本,并且提出一種僅在訓(xùn)練過程中使用量化激活值的量化反向傳播方法.Shayer 等人[94]展示了如何通過對(duì)局部再參數(shù)化技巧的簡單修改,來實(shí)現(xiàn)離散權(quán)值的訓(xùn)練.該技巧以前用于訓(xùn)練高斯分布權(quán)值.Louizos 等人[95]引入一種可微的量化方法,將網(wǎng)絡(luò)的權(quán)值和激活值的連續(xù)分布轉(zhuǎn)化為量化網(wǎng)格上的分類分布,隨后被放寬到連續(xù)代理,可以允許有效的基于梯度的優(yōu)化.

    2.3 低秩分解

    神經(jīng)網(wǎng)絡(luò)的filter 可以看作是四維張量:寬度w×高度h×通道數(shù)c×卷積核數(shù)n,由于c和n對(duì)網(wǎng)絡(luò)結(jié)構(gòu)的整體影響較大,所以基于卷積核(w×h)矩陣信息冗余的特點(diǎn)及其低秩特性,可以利用低秩分解方法進(jìn)行網(wǎng)絡(luò)壓縮.低秩分解是指通過合并維數(shù)和施加低秩約束的方式稀疏化卷積核矩陣,由于權(quán)值向量大多分布在低秩子空間,所以可以用少數(shù)的基向量來重構(gòu)卷積核矩陣,達(dá)到縮小存儲(chǔ)空間的目的.低秩分解方法在大卷積核和中小型網(wǎng)絡(luò)上有不錯(cuò)的壓縮和加速效果,過去的研究已經(jīng)比較成熟,但近兩年已不再流行.原因在于:除了矩陣分解操作成本高、逐層分解不利于全局參數(shù)壓縮,需要大量的重新訓(xùn)練才能達(dá)到收斂等問題之外,近兩年提出的新網(wǎng)絡(luò)越來越多地采用1×1 卷積,這種小卷積核不利于低秩分解方法的使用,很難實(shí)現(xiàn)網(wǎng)絡(luò)壓縮與加速.

    2.3.1 二元分解

    Jaderberg 等人[96]將w×h的卷積核分解為w×1 和1×h的卷積核,學(xué)習(xí)到的字典權(quán)重線性組合重構(gòu),得到輸出feature map.Liu 等人[97]使用兩階段分解法研究filter 的通道間和通道內(nèi)冗余.Tai 等人[98]提出一種計(jì)算低秩張量分解的新算法,利用BN 層轉(zhuǎn)換內(nèi)部隱藏單元的激活.Masana 等人[99]主要解決在大數(shù)據(jù)集上訓(xùn)練的網(wǎng)絡(luò)在小目標(biāo)域的使用問題,證明在壓縮權(quán)重時(shí)考慮激活統(tǒng)計(jì)量,會(huì)導(dǎo)致一個(gè)具有閉型解的秩約束回歸問題.Wen 等人[100]提出了Force regularization,將更多權(quán)重信息協(xié)調(diào)到低秩空間中.Wang 等人[101]提出了定點(diǎn)分解,再通過偽全精度權(quán)重復(fù)原,權(quán)重平衡和微調(diào)恢復(fù)性能.與其他基于filter 空間或信道數(shù)的低秩分解算法不同,Peng 等人[102]的工作基于filter 組近似,達(dá)到降低參數(shù)冗余的目的.Qiu 等人[103]提出將filter 分解為帶預(yù)固定基的截?cái)嗾归_,展開系數(shù)從數(shù)據(jù)中學(xué)習(xí).Novikov 等人[104]提出Tensor train 分解來壓縮全連接層的稠密權(quán)值矩陣,而Garipov 等人[105]將其推廣到卷積層.Wang 等人[106]提出了Tensor ring 分解,用于壓縮卷積層和全連接層.

    2.3.2 多元分解

    對(duì)filter 的二元分解會(huì)引入w×h×c×d張量和d×n張量,由于第1 個(gè)張量w×h×c×d很大并且耗時(shí),三元分解提出對(duì)其進(jìn)行分解.Kim 等人[107]提出了Tucker 分解,對(duì)第1 個(gè)張量沿輸入通道維進(jìn)行二元分解,得到w×1、1×h和1×1 的卷積.由于第2 個(gè)分量d×n也需要大量計(jì)算,但其在輸入和輸出通道維數(shù)上的秩已經(jīng)很低,Wang 等人[108]提出了基于低秩和群稀疏分解的塊項(xiàng)分解(BTD),用一些較小的子張量之和近似原始權(quán)重張量.在三元分解的基礎(chǔ)上,Lebedev 等人[109]提出了CP 分解,即位tensor 分解,將四維卷積核分解成4 個(gè):1×1、w×1、1×h和1×1的卷積,即,將1 層網(wǎng)絡(luò)分解為5 層低復(fù)雜度的網(wǎng)絡(luò)層.

    2.4 參數(shù)共享

    參數(shù)共享是指利用結(jié)構(gòu)化矩陣或聚類等方法映射網(wǎng)絡(luò)參數(shù),減少參數(shù)數(shù)量.參數(shù)共享方法的原理與參數(shù)剪枝類似,都是利用參數(shù)存在大量冗余的特點(diǎn),目的都是為了減少參數(shù)數(shù)量.但與參數(shù)剪枝直接裁剪不重要的參數(shù)不同,參數(shù)共享設(shè)計(jì)一種映射形式,將全部參數(shù)映射到少量數(shù)據(jù)上,減少對(duì)存儲(chǔ)空間的需求.由于全連接層參數(shù)數(shù)量較多,參數(shù)存儲(chǔ)占據(jù)整個(gè)網(wǎng)絡(luò)模型的大部分,所以參數(shù)共享對(duì)于去除全連接層冗余性能夠發(fā)揮較好的效果;也由于其操作簡便,適合與其他方法組合使用.但其缺點(diǎn)在于不易泛化,如何應(yīng)用于去除卷積層的冗余性仍是一個(gè)挑戰(zhàn).同時(shí),對(duì)于結(jié)構(gòu)化矩陣這一常用映射形式,很難為權(quán)值矩陣找到合適的結(jié)構(gòu)化矩陣,并且其理論依據(jù)不夠充足.

    2.4.1 循環(huán)矩陣

    如果一個(gè)大小為m×n的矩陣能夠用少于m×n個(gè)參數(shù)來描述,這個(gè)矩陣就是一個(gè)結(jié)構(gòu)化矩陣.循環(huán)矩陣作為結(jié)構(gòu)化矩陣的一種,是參數(shù)共享法常用的一種映射形式.令向量:

    循環(huán)矩陣的每一行都是由上一行的各元素依次右移一個(gè)位置得到,即:

    Cheng 等人[110]提出用循環(huán)投影代替?zhèn)鹘y(tǒng)的線性投影.對(duì)于具有d個(gè)輸入節(jié)點(diǎn)和d個(gè)輸出節(jié)點(diǎn)的神經(jīng)網(wǎng)絡(luò)層,將時(shí)間復(fù)雜度從O(d2)降低到O(d×logd),空間復(fù)雜度從O(d2)降低到O(d).Wang 等人[111]利用循環(huán)矩陣來構(gòu)造特征圖,對(duì)filter 進(jìn)行重新配置,建立從原始輸入到新的壓縮特征圖的映射關(guān)系.Sindhwani 等人[112]提出一個(gè)統(tǒng)一的框架來學(xué)習(xí)以低位移秩(LDR)為特征的結(jié)構(gòu)參數(shù)矩陣.Zhao 等人[113]證明:具有LDR 權(quán)值矩陣的神經(jīng)網(wǎng)絡(luò),在保持較高精度的同時(shí),可以顯著降低空間和計(jì)算復(fù)雜度.Le 等人[114]提出Fastfood 變換,通過一系列簡單矩陣的乘法來代替稠密矩陣與向量的乘積,這些簡單矩陣通過規(guī)則一次生成,后面無需調(diào)整.Yang 等人[115]在文獻(xiàn)[114]的基礎(chǔ)上提出自適應(yīng)Fastfood 變換,對(duì)全連接層的矩陣-向量乘法進(jìn)行重新參數(shù)化,替換成Fastfood 層.

    2.4.2 聚類共享

    Chen 等人[116,117]使用哈希函數(shù)將網(wǎng)絡(luò)參數(shù)隨機(jī)分組到哈希桶中,同一個(gè)桶的參數(shù)共享一個(gè)通過標(biāo)準(zhǔn)反向傳播學(xué)習(xí)到的值.Wu 等人[118]提出對(duì)權(quán)值進(jìn)行k-means 聚類,并引入一種新的頻譜松弛的k-means 正則化方法.Son 等人[119]將k-means 聚類應(yīng)用于3×3 卷積核,一個(gè)filter 用放縮因子×聚類中心來表示.

    2.4.3 其他方法

    Reagen 等人[120]提出了有損權(quán)值編碼方案Bloomier filter,以引入隨機(jī)誤差為代價(jià)來節(jié)省空間,利用神經(jīng)網(wǎng)絡(luò)的容錯(cuò)能力進(jìn)行再訓(xùn)練.Havasi 等人[121]提出了放松權(quán)重決定論,使用權(quán)重上的全變分分布,實(shí)現(xiàn)更加有效的編碼方案,以提高壓縮率.Jin 等人[122]提出了Weight Sampling Network (WSNet),沿著空間維度和通道維度進(jìn)行加權(quán)采樣.Kossaifi 等人[123]提出了Tensorized-network(T-net),使用單個(gè)高階張量來參數(shù)化地表示整個(gè)網(wǎng)絡(luò).

    2.5 緊湊網(wǎng)絡(luò)

    以上4 種利用參數(shù)冗余性減少參數(shù)數(shù)量或者降低參數(shù)精度的方法雖然能夠精簡網(wǎng)絡(luò)結(jié)構(gòu),但往往需要龐大的預(yù)訓(xùn)練模型,在此基礎(chǔ)上進(jìn)行參數(shù)壓縮,并且這些方法大都存在精確度下降的問題,需要微調(diào)來提升網(wǎng)絡(luò)性能.設(shè)計(jì)更緊湊的新型網(wǎng)絡(luò)結(jié)構(gòu),是一種新興的網(wǎng)絡(luò)壓縮與加速理念,構(gòu)造特殊結(jié)構(gòu)的filter、網(wǎng)絡(luò)層甚至網(wǎng)絡(luò),從頭訓(xùn)練,獲得適宜部署到移動(dòng)平臺(tái)等資源有限設(shè)備的網(wǎng)絡(luò)性能,不再需要像參數(shù)壓縮類方法那樣專門存儲(chǔ)預(yù)訓(xùn)練模型,也不需要通過微調(diào)來提升性能,降低了時(shí)間成本,具有存儲(chǔ)量小、計(jì)算量低和網(wǎng)絡(luò)性能好的特點(diǎn).但其缺點(diǎn)在于:由于其特殊結(jié)構(gòu)很難與其他的壓縮與加速方法組合使用,并且泛化性較差,不適合作為預(yù)訓(xùn)練模型幫助其他模型訓(xùn)練.

    2.5.1 卷積核級(jí)別

    (1)新型卷積核

    Iandola 等人[124]提出了Squeezenet,使用1×1 卷積代替3×3 卷積,為了減少feature map 的數(shù)量,將卷積層轉(zhuǎn)變成兩層:squeeze 層和 expand 層,減少了池化層.Howard 等人[125]提出了 MobileNet,將普通卷積拆分成depth-wise 卷積和point-wise 卷積,減少了乘法次數(shù).Sandler 等人[126]提出的MobileNetV2 相比MobileNet[125],在depth-wise 卷積之前多加了一個(gè) 1×1 expand 層以提升通道數(shù),獲得了更多的特征.Zhang 等人[127]提出了ShuffleNet,為克服point-wise 卷積的昂貴成本和通道約束,采用了逐點(diǎn)組卷積(point-wise group convolution)和通道混洗(channel shuffle)的方式.Ma 等人[128]提出的ShuffleNetV2 相比ShuffleNet[127],為了減少內(nèi)存訪問成本,提出了通道分割(channel split)這一概念.Zhang 等人[129]提出了交錯(cuò)組卷積(IGC),引入第2 次組卷積,其每組輸入通道來自于第1 次組卷積中不同的組,從而與第1 次組卷積交替互補(bǔ).Xie 等人[130]在文獻(xiàn)[129]的基礎(chǔ)上進(jìn)行泛化,提出交錯(cuò)的稀疏化組卷積,將兩個(gè)結(jié)構(gòu)化稀疏卷積核組成的構(gòu)建塊擴(kuò)展到多個(gè).Wan 等人[131]提出了完全可學(xué)習(xí)的組卷積模塊(FLGC),可以嵌入任何深度神經(jīng)網(wǎng)絡(luò)進(jìn)行加速.Park 等人[132]提出了直接稀疏卷積,用于稠密的feature map 與稀疏的卷積核之間的卷積操作.Zhang 等人[133]證明:高性能的直接卷積在增加線程數(shù)時(shí)性能更好,消除了所有內(nèi)存開銷.

    (2)簡單filter 組合

    Ioannou 等人[134]提出了從零開始學(xué)習(xí)一組小的不同空間維度的基filter,在訓(xùn)練過程中,將這些基filter 組合成更復(fù)雜的filter.Bagherinezhad 等人[135]提出對(duì)每層構(gòu)建一個(gè)字典,每個(gè)filter 由字典中的某些向量線性組合得到.將輸入向量和整個(gè)字典里的向量進(jìn)行卷積,查表得到該輸入向量和filter 的卷積結(jié)果.Wang 等人[136]提出了構(gòu)建高效CNN 的通用filter,二級(jí)filter 從主filter 中繼承,通過整合從不同感受域提取的信息來增強(qiáng)性能.

    2.5.2 層級(jí)別

    Huang 等人[137]提出了隨機(jī)深度用于類似ResNet 含殘差連接的網(wǎng)絡(luò)的訓(xùn)練,對(duì)于每個(gè)mini-batch,隨機(jī)刪除block 子集,并用恒等函數(shù)繞過它們.Dong 等人[138]為每個(gè)卷積層配備一個(gè)低成本協(xié)同層(LCCL),預(yù)測哪些位置的點(diǎn)經(jīng)過ReLU 后會(huì)變成0,測試時(shí)忽略這些位置的計(jì)算.Li等人[139]將網(wǎng)絡(luò)層分為權(quán)重層(如卷積層和全連接層)和非權(quán)重層(如池化層、ReLU 層等),提出了將非權(quán)重層與權(quán)重層進(jìn)行合并的方法,去除獨(dú)立的非權(quán)重層后,運(yùn)行時(shí)間顯著減少.Prabhu 等人[140]使用同時(shí)稀疏且連接良好的圖來建模卷積神經(jīng)網(wǎng)絡(luò)filter 之間的連接.Wu 等人[141]通過平移feature map 的形式取代傳統(tǒng)的卷積,從而減小了計(jì)算量.Chen 等人[142]引入稀疏移位層(SSL)來構(gòu)造高效的卷積神經(jīng)網(wǎng)絡(luò).在該體系結(jié)構(gòu)中,基本塊僅由1×1 卷積層組成,對(duì)中間的feature map 只進(jìn)行少量的移位操作.

    2.5.3 網(wǎng)絡(luò)結(jié)構(gòu)級(jí)別

    Kim 等人[143]提出了SplitNet,自動(dòng)學(xué)會(huì)將網(wǎng)絡(luò)層分成多組,獲得一個(gè)樹形結(jié)構(gòu)的網(wǎng)絡(luò),每個(gè)子網(wǎng)共享底層權(quán)重.Gordon 等人[144]提出了Morphnet,通過收縮和擴(kuò)展階段循環(huán)優(yōu)化網(wǎng)絡(luò):在收縮階段,通過稀疏正則化項(xiàng)識(shí)別效率低的神經(jīng)元從網(wǎng)絡(luò)中去除;在擴(kuò)展階段,使用寬度乘數(shù)來統(tǒng)一擴(kuò)展所有層的大小,所以含重要神經(jīng)元更多的層擁有更多計(jì)算資源.Kim 等人[145]提出了嵌套稀疏網(wǎng)絡(luò)NestedNet,每一層由多層次的網(wǎng)絡(luò)組成,高層次網(wǎng)絡(luò)與低層次網(wǎng)絡(luò)以Network in network (NIN)的方式共享參數(shù):低層次網(wǎng)絡(luò)學(xué)習(xí)公共知識(shí),高層次網(wǎng)絡(luò)學(xué)習(xí)特定任務(wù)的知識(shí).

    2.6 知識(shí)蒸餾

    知識(shí)蒸餾最早由Buciluǎ 等人[146]提出,用以訓(xùn)練帶有偽數(shù)據(jù)標(biāo)記的強(qiáng)分類器的壓縮模型和復(fù)制原始分類器的輸出.與其他壓縮與加速方法只使用需要被壓縮的目標(biāo)網(wǎng)絡(luò)不同,知識(shí)蒸餾法需要兩種類型的網(wǎng)絡(luò):教師模型和學(xué)生模型.預(yù)先訓(xùn)練好的教師模型通常是一個(gè)大型的神經(jīng)網(wǎng)絡(luò)模型,具有很好的性能.如圖6 所示,將教師模型的softmax 層輸出作為soft target 與學(xué)生模型的softmax 層輸出作為hard target 一同送入total loss 計(jì)算,指導(dǎo)學(xué)生模型訓(xùn)練,將教師模型的知識(shí)遷移到學(xué)生模型中,使學(xué)生模型達(dá)到與教師模型相當(dāng)?shù)男阅?學(xué)生模型更加緊湊高效,起到模型壓縮的目的.知識(shí)蒸餾法可使深層網(wǎng)絡(luò)變淺,極大地降低了計(jì)算成本,但也存在其局限性.由于使用softmax 層輸出作為知識(shí),所以一般多用于具有softmax 損失函數(shù)的分類任務(wù),在其他任務(wù)的泛化性不好;并且就目前來看,其壓縮比與蒸餾后的模型性能還存在較大的進(jìn)步空間.

    Fig.6 Flow chart of knowledge distillation圖6 知識(shí)蒸餾流程圖

    2.6.1 學(xué)生模型的網(wǎng)絡(luò)結(jié)構(gòu)

    知識(shí)蒸餾法的研究方向之一就是如何為學(xué)生模型選擇合適的網(wǎng)絡(luò)結(jié)構(gòu),幫助學(xué)生模型更好地學(xué)習(xí)教師模型的知識(shí).Ba 等人[147]提出:在保證教師模型和學(xué)生模型網(wǎng)絡(luò)參數(shù)數(shù)量相同的情況下,設(shè)計(jì)更淺的學(xué)生模型,每一層變得更寬.Romero 等人[148]與文獻(xiàn)[147]的觀點(diǎn)不同,他們認(rèn)為更深的學(xué)生模型分類效果更好,提出Fitnets 使用教師網(wǎng)絡(luò)的中間層輸出Hints,作為監(jiān)督信息訓(xùn)練學(xué)生網(wǎng)絡(luò)的前半部分.Chen 等人[149]提出使用生長式網(wǎng)絡(luò)結(jié)構(gòu),以復(fù)制的方式重用預(yù)訓(xùn)練的網(wǎng)絡(luò)參數(shù),在此基礎(chǔ)上進(jìn)行結(jié)構(gòu)拓展.Li 等人[150]與文獻(xiàn)[149]觀點(diǎn)一致,提出分別從寬度和深度上進(jìn)行網(wǎng)絡(luò)生長.Crowley 等人[151]提出將知識(shí)蒸餾與設(shè)計(jì)更緊湊的網(wǎng)絡(luò)結(jié)構(gòu)相結(jié)合,將原網(wǎng)絡(luò)作為教師模型,將使用簡化卷積的網(wǎng)絡(luò)作為學(xué)生模型.Zhu 等人[152]提出基于原始網(wǎng)絡(luò)構(gòu)造多分支結(jié)構(gòu),將每個(gè)分支作為學(xué)生網(wǎng)絡(luò),融合生成推理性能更強(qiáng)的教師網(wǎng)絡(luò).

    2.6.2 教師模型的學(xué)習(xí)信息

    除了使用softmax 層輸出作為教師模型的學(xué)習(xí)信息以外,有研究者認(rèn)為,可以使用教師模型中的其他信息幫助知識(shí)遷移.Hinton 等人[153]首先提出使用教師模型的類別概率輸出計(jì)算soft target,為了方便計(jì)算,還引入溫度參數(shù).Yim 等人[154]將教師模型網(wǎng)絡(luò)層之間的數(shù)據(jù)流信息作為學(xué)習(xí)信息,定義為兩層特征的內(nèi)積.Chen 等人[155]將教師模型在某一類的不同樣本間的排序關(guān)系作為學(xué)習(xí)信息傳遞給學(xué)生模型.

    2.6.3 訓(xùn)練技巧

    Czarnecki 等人[156]提出了Sobolev 訓(xùn)練方法,將目標(biāo)函數(shù)的導(dǎo)數(shù)融入到神經(jīng)網(wǎng)絡(luò)函數(shù)逼近器的訓(xùn)練中.當(dāng)訓(xùn)練數(shù)據(jù)由于隱私等問題對(duì)于學(xué)生模型不可用時(shí),Lopes 等人[157]提出了如何通過extra metadata 來加以解決的方法.Zhou 等人[158]的工作主要有兩個(gè)創(chuàng)新點(diǎn):第一,不用預(yù)訓(xùn)練教師模型,而是教師模型和學(xué)生模型同時(shí)訓(xùn)練;第二,教師模型和學(xué)生模型共享網(wǎng)絡(luò)參數(shù).

    2.6.4 其他場景

    由于softmax 層的限制,知識(shí)蒸餾法被局限于分類任務(wù)的使用場景.但近年來,研究人員提出多種策略使其能夠應(yīng)用于其他深度學(xué)習(xí)場景.在目標(biāo)檢測任務(wù)中,Li 等人[159]提出了匹配proposal 的方法,Chen 等人[160]結(jié)合使用文獻(xiàn)[148,153]提出的方法,提升多分類目標(biāo)檢測網(wǎng)絡(luò)的性能.在解決人臉檢測任務(wù)時(shí),Luo 等人[161]提出將更高隱層的神經(jīng)元作為學(xué)習(xí)知識(shí),其與類別輸出概率信息量相同,但更為緊湊.Gupta 等人[162]提出了跨模態(tài)遷移知識(shí)的做法,將在RGB 數(shù)據(jù)集學(xué)習(xí)到的知識(shí)遷移到深度學(xué)習(xí)的場景中.Xu 等人[163]提出一種多任務(wù)指導(dǎo)預(yù)測和蒸餾網(wǎng)絡(luò)(PAD-net)結(jié)構(gòu),產(chǎn)生一組中間輔助任務(wù),為學(xué)習(xí)目標(biāo)任務(wù)提供豐富的多模態(tài)數(shù)據(jù).

    2.7 混合方式

    以上這些壓縮與加速方法單獨(dú)使用時(shí)能夠獲得很好的效果,但也都存在各自的局限性,組合使用可使它們互為補(bǔ)充.研究人員通過組合使用不同的壓縮與加速方法或者針對(duì)不同網(wǎng)絡(luò)層選取不同的壓縮與加速方法,設(shè)計(jì)了一體化的壓縮與加速框架,能夠獲得更好的壓縮比與加速效果.參數(shù)剪枝、參數(shù)量化、低秩分解和參數(shù)共享經(jīng)常組合使用,極大地降低了模型的內(nèi)存需求和存儲(chǔ)需求,方便模型部署到計(jì)算資源有限的移動(dòng)平臺(tái)[164].知識(shí)蒸餾可以與緊湊網(wǎng)絡(luò)組合使用,為學(xué)生模型選擇緊湊的網(wǎng)絡(luò)結(jié)構(gòu),在保證壓縮比的同時(shí),可提升學(xué)生模型的性能.混合方式能夠綜合各類壓縮與加速方法的優(yōu)勢,進(jìn)一步加強(qiáng)了壓縮與加速效果,將會(huì)是未來在深度學(xué)習(xí)模型壓縮與加速領(lǐng)域的重要研究方向.

    2.7.1 組合參數(shù)剪枝和參數(shù)量化

    Ullrich 等人[165]基于Soft weight sharing 的正則化項(xiàng),在模型再訓(xùn)練過程中實(shí)現(xiàn)了參數(shù)量化和參數(shù)剪枝.Tung 等人[166]提出了參數(shù)剪枝和參數(shù)量化的一體化壓縮與加速框架 Compression learning by in parallel pruning-quantization(CLIP-Q).如圖7 所示,Han 等人[167]提出了Deep compression,將參數(shù)剪枝、參數(shù)量化和哈夫曼編碼相結(jié)合,達(dá)到了很好的壓縮效果;并在其基礎(chǔ)上考慮到軟/硬件的協(xié)同壓縮設(shè)計(jì),提出了Efficient inference engine(Eie)框架[168].Dubey 等人[169]同樣利用這3 種方法的組合進(jìn)行網(wǎng)絡(luò)壓縮.

    Fig.7 Flow chart of Deep Compression[167]圖7 Deep Compression[167]流程圖

    2.7.2 組合參數(shù)剪枝和參數(shù)共享

    Louizos 等人[170]采用貝葉斯原理,通過先驗(yàn)分布引入稀疏性對(duì)網(wǎng)絡(luò)進(jìn)行剪枝,使用后驗(yàn)不確定性確定最優(yōu)的定點(diǎn)精度來編碼權(quán)重.Ji 等人[171]通過重新排序輸入/輸出維度進(jìn)行剪枝,并將具有小值的不規(guī)則分布權(quán)重聚類到結(jié)構(gòu)化組中,實(shí)現(xiàn)更好的硬件利用率和更高的稀疏性.Zhang 等人[172]不僅采用正則化器鼓勵(lì)稀疏性,同時(shí)也學(xué)習(xí)哪些參數(shù)組應(yīng)共享一個(gè)公共值以顯式地識(shí)別出高度相關(guān)的神經(jīng)元.

    2.7.3 組合參數(shù)量化和知識(shí)蒸餾

    Polino 等人[173]提出了加入知識(shí)蒸餾loss 的量化訓(xùn)練方法,有浮點(diǎn)模型和量化模型,用量化模型計(jì)算前向loss,并對(duì)其計(jì)算梯度,用以更新浮點(diǎn)模型.每次前向計(jì)算之前,用更新的浮點(diǎn)模型更新量化模型.Mishra 等人[174]提出用高精度教師模型指導(dǎo)低精度學(xué)生模型的訓(xùn)練,有3 種思路:教師模型和量化后的學(xué)生模型聯(lián)合訓(xùn)練;預(yù)訓(xùn)練的教師模型指導(dǎo)量化的學(xué)生模型從頭開始訓(xùn)練;教師模型和學(xué)生模型都進(jìn)行了預(yù)訓(xùn)練,但學(xué)生模型已經(jīng)量化,之后在教師模型的指導(dǎo)下再進(jìn)行微調(diào).

    3 壓縮效果比較

    我們從以上介紹的7 種主流網(wǎng)絡(luò)壓縮技術(shù)中選出其中一些具有代表性的方法,按照文獻(xiàn)中聲明的壓縮與加速效果進(jìn)行對(duì)比.通過對(duì)相關(guān)文獻(xiàn)中使用較多的數(shù)據(jù)集和模型的統(tǒng)計(jì),我們使用MNIST[175]、CIFAR-10[176]和ImageNet[177]這三大常用數(shù)據(jù)集,在LeNet、AlexNet、VGG-16、ResNet 等公開深度模型上進(jìn)行壓縮方法測試,比較其壓縮效果.圖表中的Δaccuracy=壓縮后模型accuracy-原始模型accuracy,#Params↓=原始模型參數(shù)量/壓縮后模型參數(shù)量,#FLOPs↓=原始模型浮點(diǎn)計(jì)算次數(shù)/加速后模型浮點(diǎn)計(jì)算次數(shù).Weight bits 和activation bits 分別代表權(quán)值和激活值被量化后的表示位數(shù).T-accuracy代表教師模型的accuracy,S-accuracy代表學(xué)生模型的accuracy.T-#Params代表教師模型的參數(shù)數(shù)量,S-#Params代表學(xué)生模型的參數(shù)數(shù)量.

    表5 展示了參數(shù)剪枝、緊湊網(wǎng)絡(luò)、參數(shù)共享、知識(shí)蒸餾和混合方式這5 類壓縮技術(shù)的一些代表性方法使用MNIST 數(shù)據(jù)集在LeNet-5 上的壓縮效果,可以看出,除了文獻(xiàn)[157]帶來較大的accuracy損失以外,其他方法的壓縮效果都不錯(cuò).從accuracy的角度來看,自適應(yīng)fastfood 變換[115]的效果更好,在達(dá)到壓縮效果的同時(shí),還提升了accuracy;從參數(shù)壓縮量的角度來看,混合方式在accuracy輕微下降的情況下,都實(shí)現(xiàn)了較大的壓縮比,其中,文獻(xiàn)[169]的效果最好.

    Table 5 Compression effects of different compression methods on LeNet-5 on MNIST表5 不同壓縮方法在LeNet-5 on MNIST 上的壓縮效果

    表6 展示了參數(shù)剪枝、緊湊網(wǎng)絡(luò)、參數(shù)共享和混合方式這4 類壓縮技術(shù)的一些代表性方法使用CIFAR-10數(shù)據(jù)集在VGG-16 上的壓縮效果,可以看出,這4 類方法的壓縮效果差別比較大.整體來看,結(jié)構(gòu)化剪枝[40]效果更好,同時(shí)起到了網(wǎng)絡(luò)壓縮和加速的效果,accuracy甚至有些提升.權(quán)值隨機(jī)編碼方法[121]能夠?qū)崿F(xiàn)高達(dá)159x 的參數(shù)壓縮比,accuracy略有下降.

    Table 6 Compression effects of different compression methods on VGG-16 on CIFAR-10表6 不同壓縮方法在VGG-16 on CIFAR-10 上的壓縮效果

    表7 展示了參數(shù)剪枝、緊湊網(wǎng)絡(luò)、低秩分解、參數(shù)共享和混合方式這5 類壓縮技術(shù)的一些代表性方法使用ImageNet 數(shù)據(jù)集在AlexNet 上的壓縮效果.整體來看,5 類方法達(dá)到的壓縮效果和加速效果比較均衡,accuracy都略有下降.其中,參數(shù)剪枝和混合方式能夠?qū)崿F(xiàn)更大的壓縮比,但低秩分解的加速效果更好;另兩類方法都有不同程度的accuracy下降.

    表8 展示了參數(shù)剪枝、低秩分解、參數(shù)共享和混合方式這4 類壓縮技術(shù)的一些代表性方法在使用ImageNet數(shù)據(jù)集在VGG-16 上的壓縮效果.整體的壓縮與加速效果都很明顯,其中,剪枝方法的accuracy略微有所提升;混合方式達(dá)到的壓縮比最高.另外兩類方法雖然accuracy有所下降,但加速效果更優(yōu)秀.

    表9 展示了參數(shù)剪枝、緊湊網(wǎng)絡(luò)、參數(shù)共享和混合方式這4 類壓縮技術(shù)的一些代表性方法在使用ImageNet數(shù)據(jù)集在ResNet-50 上的壓縮效果.整體來看,accuracy的下降趨勢比較明顯,壓縮與加速效果不如其他網(wǎng)絡(luò)在ImageNet 上的好.其中,混合方式壓縮效果最好,文獻(xiàn)[169]達(dá)到15.8x 的壓縮比;而在參數(shù)共享方法中,循環(huán)矩陣[111]達(dá)到了最高加速比5.82x.

    Table 7 Compression effects of different compression methods on AlexNet on ImageNet表7 不同壓縮方法在AlexNet on ImageNet 上的壓縮效果

    Table 8 Compression effects of different compression methods on VGG-16 on ImageNet表8 不同壓縮方法在VGG-16 on ImageNet 上的壓縮效果

    Table 9 Compression effects of different compression methods on ResNet-50 on ImageNet表9 不同壓縮方法在ResNet-50 on ImageNet 上的壓縮效果

    表10 展示了一些主流量化技術(shù)使用ImageNet 數(shù)據(jù)集在AlexNet 上的壓縮效果,其中,weight bits 為1 表示二值化網(wǎng)絡(luò),weight bits 為2 表示三值化網(wǎng)絡(luò).除此之外還有一些特殊位寬,其中,文獻(xiàn)[89]中的3{±2}表示權(quán)值從{0,±1,±2}中選擇,3{±2 ±4}表示權(quán)值從{0,±1,±2,±4}中選擇.XNOR-Net[63]雖然能夠達(dá)到比較好的壓縮性能,但accuracy損失太大.SYQ[85]在實(shí)現(xiàn)權(quán)重二值化、三值化的同時(shí),將激活值也量化到8 位,accuracy幾乎沒有損失,還略有提升.

    Table 10 Compression effects of different quantization methods on AlexNet on ImageNet表10 不同量化方法在AlexNet on ImageNet 上的壓縮效果

    表11 展示了一些主流量化技術(shù)使用ImageNet 數(shù)據(jù)集在ResNet-18 上的壓縮效果.整體來看,accuracy的下降程度更大,對(duì)權(quán)值和激活值的大尺度量化帶來不同程度的精度損失,SLQ[73]和INQ[87]將權(quán)值量化到5 位,accuracy略有提升.

    Table 11 Compression effects of different quantization methods on ResNet-18 on ImageNet表11 不同量化方法在ResNet-18 on ImageNet 上的壓縮效果

    表12 展示了一些有代表性的知識(shí)蒸餾方法在MNIST、CIFAR-10、CIFAR-100 和ImageNet 數(shù)據(jù)集上的壓縮效果.由于使用的教師模型和學(xué)生模型的網(wǎng)絡(luò)結(jié)構(gòu)不同,所以我們將兩個(gè)模型的accuracy和參數(shù)數(shù)量都展示出來,以方便讀者對(duì)比.可以看出,相比其他方法,知識(shí)蒸餾的模型accuracy下降更多,壓縮比更小.目前來看,未來知識(shí)蒸餾在模型壓縮與加速領(lǐng)域還有很大的發(fā)展空間.

    Table 12 Compression effects of different knowledge distillation methods表12 不同知識(shí)蒸餾方法的壓縮效果

    結(jié)論:我們總結(jié)的7 類壓縮與加速方法各有利弊,由于實(shí)驗(yàn)使用的硬件平臺(tái)不同,并不能量化地確定孰優(yōu)孰劣.依據(jù)不同的應(yīng)用場景和現(xiàn)實(shí)需要,可以進(jìn)行方法的選取.例如:對(duì)于存儲(chǔ)有限的嵌入式設(shè)備,可以使用非結(jié)構(gòu)化剪枝或者二值、三值量化,以大幅度地減少模型占用的內(nèi)存大小.對(duì)于沒有預(yù)訓(xùn)練模型的情況,可以考慮緊湊網(wǎng)絡(luò)法,直接訓(xùn)練網(wǎng)絡(luò).對(duì)于期望較高壓縮比與加速比的應(yīng)用場景,可以使用混合方式,組合使用幾種壓縮與加速方法.

    4 未來研究方向

    截止到目前,深度學(xué)習(xí)模型壓縮與加速技術(shù)尚未發(fā)展成熟,在實(shí)際部署和產(chǎn)品化水平上還有很大的進(jìn)步空間.下面介紹幾個(gè)值得關(guān)注與討論的研究方向.

    (1)知識(shí)蒸餾作為一種遷移學(xué)習(xí)的形式,可使小模型盡可能多地學(xué)習(xí)到大模型的知識(shí),具有方法靈活、不依賴硬件平臺(tái)的特點(diǎn),但目前,其壓縮比和蒸餾后性能都有待提高.未來知識(shí)蒸餾可從以下幾個(gè)方向展開研究:打破softmax 函數(shù)的限制,結(jié)合中間特征層,使用不同形式的知識(shí);在選擇學(xué)生模型的結(jié)構(gòu)時(shí),可以與其他方法集成;打破任務(wù)的限制,例如將圖片分類領(lǐng)域的知識(shí)遷移到其他領(lǐng)域;

    (2)將模型壓縮技術(shù)與硬件架構(gòu)設(shè)計(jì)相結(jié)合.目前的壓縮與加速方法大多僅從軟件層面對(duì)模型進(jìn)行優(yōu)化,并且不同方法由于使用的硬件平臺(tái)不同,也很難比較其加速效果的好壞.未來可針對(duì)主流的壓縮與加速方法專門設(shè)計(jì)硬件架構(gòu),既能在現(xiàn)有基礎(chǔ)上加速模型,又方便不同方法的比較;

    (3)制定更智能的模型結(jié)構(gòu)選擇策略.目前,無論是參數(shù)剪枝方法還是設(shè)計(jì)更緊湊的網(wǎng)絡(luò)結(jié)構(gòu),都是基于現(xiàn)有模型作為主干網(wǎng)絡(luò),手動(dòng)選擇或使用啟發(fā)式策略進(jìn)行結(jié)構(gòu)縮減,縮小了模型搜索空間.未來可以利用強(qiáng)化學(xué)習(xí)等策略進(jìn)行自動(dòng)網(wǎng)絡(luò)結(jié)構(gòu)搜索,得到更優(yōu)的網(wǎng)絡(luò)結(jié)構(gòu);

    (4)將模型壓縮技術(shù)推廣到更多任務(wù)和更多平臺(tái).目前的壓縮與加速方法多是為圖片分類任務(wù)的卷積神經(jīng)網(wǎng)絡(luò)模型設(shè)計(jì),然而實(shí)際應(yīng)用中,還有大量其他模型應(yīng)用于人工智能領(lǐng)域,例如語音識(shí)別和機(jī)器翻譯領(lǐng)域常使用的遞歸神經(jīng)網(wǎng)絡(luò)(RNN)、知識(shí)圖譜領(lǐng)域的圖神經(jīng)網(wǎng)絡(luò)(GNN).為卷積神經(jīng)網(wǎng)絡(luò)模型設(shè)計(jì)的壓縮與加速方法能否直接用于RNN 與GNN,還需要探索.同時(shí),小型移動(dòng)平臺(tái)(如智能手機(jī)、機(jī)器人、無人駕駛汽車等)的硬件限制及其有限的計(jì)算資源阻礙了深度學(xué)習(xí)模型的直接部署,如何為這些平臺(tái)設(shè)計(jì)獨(dú)有的壓縮方法,仍是一個(gè)巨大的挑戰(zhàn);

    (5)模型壓縮后的安全問題.由于當(dāng)前壓縮與加速方法更注重壓縮完成后的任務(wù)完成度(例如分類任務(wù)accuracy是否有降低),而忽略了模型壓縮可能帶來的安全隱患,例如:相比原模型,是否更容易被對(duì)抗樣本攻擊.所以,未來在提升模型性能的同時(shí),也應(yīng)注意模型是否安全.

    5 總結(jié)

    本文首先介紹深度學(xué)習(xí)模型壓縮與加速技術(shù)的研究背景;其次,對(duì)目前主流的方法進(jìn)行分析,從參數(shù)剪枝、參數(shù)量化、緊湊網(wǎng)絡(luò)、知識(shí)蒸餾、低秩分解、參數(shù)共享、混合方式這7 個(gè)方面進(jìn)行分類總結(jié);然后,對(duì)各類壓縮技術(shù)中的一些代表性方法進(jìn)行壓縮效果比較;最后,探討了模型壓縮領(lǐng)域未來的發(fā)展方向.希望本文能夠給研究者帶來關(guān)于模型壓縮與加速技術(shù)的更多了解,促進(jìn)和推動(dòng)模型壓縮與加速技術(shù)的未來發(fā)展.

    猜你喜歡
    效果方法模型
    一半模型
    按摩效果確有理論依據(jù)
    重要模型『一線三等角』
    重尾非線性自回歸模型自加權(quán)M-估計(jì)的漸近分布
    迅速制造慢門虛化效果
    抓住“瞬間性”效果
    中華詩詞(2018年11期)2018-03-26 06:41:34
    可能是方法不對(duì)
    3D打印中的模型分割與打包
    模擬百種唇妝效果
    Coco薇(2016年8期)2016-10-09 02:11:50
    用對(duì)方法才能瘦
    Coco薇(2016年2期)2016-03-22 02:42:52
    中亚洲国语对白在线视频| 亚洲不卡免费看| 非洲黑人性xxxx精品又粗又长| 国产亚洲av嫩草精品影院| 热99re8久久精品国产| 午夜福利在线观看吧| 日本a在线网址| 校园人妻丝袜中文字幕| 亚洲精品456在线播放app | 此物有八面人人有两片| 色综合站精品国产| 在线免费十八禁| 亚洲人成网站在线播| 尾随美女入室| 日本与韩国留学比较| 亚洲精品粉嫩美女一区| 午夜免费激情av| 人妻久久中文字幕网| 国产色婷婷99| 国产一级毛片七仙女欲春2| 精品一区二区免费观看| 欧美成人a在线观看| 如何舔出高潮| 亚洲专区国产一区二区| 久久精品国产亚洲av香蕉五月| 最近视频中文字幕2019在线8| 久久午夜亚洲精品久久| 国产在线精品亚洲第一网站| 全区人妻精品视频| 丰满的人妻完整版| 久久久久国内视频| 日韩欧美国产在线观看| av.在线天堂| 精品一区二区免费观看| 久久国内精品自在自线图片| 成人综合一区亚洲| 成人国产一区最新在线观看| 久久精品国产清高在天天线| 久久久久国内视频| 精品午夜福利视频在线观看一区| 亚洲精华国产精华液的使用体验 | 国产精品一区二区三区四区免费观看 | 熟妇人妻久久中文字幕3abv| 亚洲乱码一区二区免费版| 露出奶头的视频| 欧美色视频一区免费| 日韩欧美精品v在线| 天堂动漫精品| 性色avwww在线观看| 特大巨黑吊av在线直播| 波野结衣二区三区在线| 在线观看一区二区三区| 97热精品久久久久久| 亚洲久久久久久中文字幕| 天天一区二区日本电影三级| 午夜a级毛片| 女人十人毛片免费观看3o分钟| 久久久久性生活片| 欧美绝顶高潮抽搐喷水| 久久久成人免费电影| 啪啪无遮挡十八禁网站| 内地一区二区视频在线| 国产熟女欧美一区二区| 国产黄a三级三级三级人| 1024手机看黄色片| 18+在线观看网站| 日韩精品青青久久久久久| 琪琪午夜伦伦电影理论片6080| 日本欧美国产在线视频| 精品久久久久久久人妻蜜臀av| 午夜福利在线观看免费完整高清在 | 91在线观看av| 国产午夜精品久久久久久一区二区三区 | 黄色女人牲交| 久久久久国内视频| 国产色婷婷99| 又粗又爽又猛毛片免费看| 丰满乱子伦码专区| 日本撒尿小便嘘嘘汇集6| 看片在线看免费视频| 欧美日韩瑟瑟在线播放| 一个人看视频在线观看www免费| 天堂动漫精品| 国产亚洲91精品色在线| 成年人黄色毛片网站| 天堂影院成人在线观看| 国产高清视频在线播放一区| 露出奶头的视频| 中文字幕精品亚洲无线码一区| 免费人成在线观看视频色| av.在线天堂| 天堂√8在线中文| 国产精品久久视频播放| 非洲黑人性xxxx精品又粗又长| 欧美潮喷喷水| 国产又黄又爽又无遮挡在线| 亚洲av电影不卡..在线观看| 少妇被粗大猛烈的视频| 无遮挡黄片免费观看| 男女下面进入的视频免费午夜| 精品久久久久久久久亚洲 | 免费看美女性在线毛片视频| 久久久久国内视频| 久久精品国产亚洲网站| 亚洲天堂国产精品一区在线| 成人永久免费在线观看视频| 日本成人三级电影网站| 人人妻人人澡欧美一区二区| 国产精品一及| 超碰av人人做人人爽久久| 美女cb高潮喷水在线观看| 成年女人毛片免费观看观看9| 亚洲欧美日韩高清在线视频| 日韩,欧美,国产一区二区三区 | 国产一区二区三区av在线 | 免费av毛片视频| 春色校园在线视频观看| 日韩欧美在线乱码| 国产精品无大码| 夜夜爽天天搞| 精品一区二区三区av网在线观看| 日韩人妻高清精品专区| 成人午夜高清在线视频| 精品久久久噜噜| 99久久久亚洲精品蜜臀av| 欧美性猛交黑人性爽| 99热6这里只有精品| netflix在线观看网站| 亚洲欧美日韩无卡精品| 春色校园在线视频观看| 看黄色毛片网站| 国产精品一区二区性色av| 日韩强制内射视频| 别揉我奶头 嗯啊视频| 亚洲电影在线观看av| 亚洲内射少妇av| 亚洲欧美激情综合另类| 国产精品人妻久久久久久| 午夜福利18| 丝袜美腿在线中文| 成人一区二区视频在线观看| 村上凉子中文字幕在线| 18禁裸乳无遮挡免费网站照片| 中文在线观看免费www的网站| 亚洲中文字幕日韩| 色综合站精品国产| 欧美极品一区二区三区四区| 欧美三级亚洲精品| 国产高清视频在线观看网站| 性色avwww在线观看| 日日夜夜操网爽| 内射极品少妇av片p| 无遮挡黄片免费观看| 一区二区三区免费毛片| 成人欧美大片| 国产一区二区三区av在线 | 国产一区二区三区在线臀色熟女| 欧美另类亚洲清纯唯美| 国产成人a区在线观看| 欧美+亚洲+日韩+国产| 草草在线视频免费看| 国内精品宾馆在线| 免费看光身美女| 国产91精品成人一区二区三区| 我要看日韩黄色一级片| av黄色大香蕉| 久久久午夜欧美精品| 一区二区三区四区激情视频 | 欧美在线一区亚洲| 久久午夜亚洲精品久久| 成人亚洲精品av一区二区| av在线亚洲专区| 一级黄色大片毛片| 国产真实伦视频高清在线观看 | 校园春色视频在线观看| 天堂影院成人在线观看| 18+在线观看网站| 亚洲国产精品sss在线观看| 久久亚洲真实| 成人欧美大片| 日日撸夜夜添| 夜夜夜夜夜久久久久| 不卡视频在线观看欧美| 国产欧美日韩精品亚洲av| 麻豆精品久久久久久蜜桃| 少妇高潮的动态图| 国产黄a三级三级三级人| 久久精品国产99精品国产亚洲性色| 国产毛片a区久久久久| 我的女老师完整版在线观看| 中文字幕精品亚洲无线码一区| 国产探花极品一区二区| 亚洲国产欧洲综合997久久,| 国产精品久久电影中文字幕| 免费看a级黄色片| av视频在线观看入口| 黄色欧美视频在线观看| 草草在线视频免费看| 18禁黄网站禁片午夜丰满| 成人永久免费在线观看视频| 日日撸夜夜添| 97超级碰碰碰精品色视频在线观看| 免费看光身美女| 色在线成人网| 国产亚洲av嫩草精品影院| 欧美日韩中文字幕国产精品一区二区三区| 国产精品精品国产色婷婷| 人妻少妇偷人精品九色| 亚洲三级黄色毛片| 国内精品美女久久久久久| 亚洲18禁久久av| 亚洲欧美日韩高清专用| 国产在线精品亚洲第一网站| 成年版毛片免费区| 亚洲乱码一区二区免费版| 免费大片18禁| 免费看av在线观看网站| 尾随美女入室| 深夜a级毛片| 精品免费久久久久久久清纯| 久久久国产成人精品二区| 久久久久国产精品人妻aⅴ院| 精品人妻视频免费看| 嫁个100分男人电影在线观看| 成人精品一区二区免费| 3wmmmm亚洲av在线观看| 亚洲成a人片在线一区二区| 精品福利观看| 国产精品爽爽va在线观看网站| 精品午夜福利视频在线观看一区| 午夜福利在线观看免费完整高清在 | 日韩一区二区视频免费看| 久久精品国产自在天天线| 精品人妻熟女av久视频| 亚洲人成网站在线播放欧美日韩| 免费看美女性在线毛片视频| 看黄色毛片网站| 热99在线观看视频| 亚洲精品456在线播放app | 亚洲人与动物交配视频| 久久精品91蜜桃| а√天堂www在线а√下载| 国内精品久久久久精免费| 美女免费视频网站| 久久久久性生活片| 身体一侧抽搐| 夜夜爽天天搞| 欧美人与善性xxx| 国产精品一区二区三区四区久久| 亚洲精品456在线播放app | 少妇人妻精品综合一区二区 | 别揉我奶头 嗯啊视频| 国产av在哪里看| 美女cb高潮喷水在线观看| 日本熟妇午夜| 极品教师在线免费播放| 国产探花在线观看一区二区| 高清日韩中文字幕在线| 日本在线视频免费播放| 欧美bdsm另类| 性欧美人与动物交配| 色哟哟哟哟哟哟| 亚洲国产精品成人综合色| 中文字幕高清在线视频| 长腿黑丝高跟| 真实男女啪啪啪动态图| 男女做爰动态图高潮gif福利片| 欧美xxxx性猛交bbbb| 国产精品久久久久久久电影| 欧美成人a在线观看| 国产伦在线观看视频一区| 国产亚洲91精品色在线| 国产综合懂色| 一区福利在线观看| 国产精品久久久久久久久免| 亚洲精品一区av在线观看| 久久九九热精品免费| 不卡视频在线观看欧美| 免费观看人在逋| 99精品在免费线老司机午夜| 热99在线观看视频| 精品99又大又爽又粗少妇毛片 | 成熟少妇高潮喷水视频| 最好的美女福利视频网| 亚洲四区av| 精品福利观看| а√天堂www在线а√下载| 少妇的逼水好多| 精品国产三级普通话版| 女的被弄到高潮叫床怎么办 | 国产69精品久久久久777片| 91久久精品电影网| 久久午夜亚洲精品久久| 国产精品亚洲一级av第二区| 狠狠狠狠99中文字幕| 99热精品在线国产| 国产精品国产三级国产av玫瑰| 国产亚洲欧美98| 麻豆久久精品国产亚洲av| 在线观看午夜福利视频| 国产精品国产高清国产av| 嫩草影院精品99| 淫妇啪啪啪对白视频| 久久国产乱子免费精品| 韩国av在线不卡| 欧美一区二区精品小视频在线| 一个人观看的视频www高清免费观看| 窝窝影院91人妻| 日韩欧美一区二区三区在线观看| 又黄又爽又刺激的免费视频.| 村上凉子中文字幕在线| 精品无人区乱码1区二区| 久久香蕉精品热| av视频在线观看入口| 亚洲无线观看免费| 乱人视频在线观看| 亚洲性久久影院| 亚洲国产欧美人成| 窝窝影院91人妻| 国产91精品成人一区二区三区| 精品午夜福利视频在线观看一区| 亚洲美女黄片视频| 热99re8久久精品国产| 伦理电影大哥的女人| 久久久精品欧美日韩精品| 日韩一区二区视频免费看| 波多野结衣高清作品| 乱码一卡2卡4卡精品| 精品一区二区免费观看| 夜夜夜夜夜久久久久| 久久国产精品人妻蜜桃| 日本爱情动作片www.在线观看 | 乱人视频在线观看| 色av中文字幕| 中文字幕av在线有码专区| 精品一区二区三区视频在线观看免费| av国产免费在线观看| videossex国产| 免费在线观看日本一区| 欧美日韩黄片免| 亚洲无线在线观看| 国产在视频线在精品| 少妇被粗大猛烈的视频| 精品99又大又爽又粗少妇毛片 | 久久99热6这里只有精品| 国产高清视频在线播放一区| 国产精华一区二区三区| 在线a可以看的网站| 国产高清有码在线观看视频| 人妻制服诱惑在线中文字幕| 搡老妇女老女人老熟妇| 亚洲欧美日韩东京热| 免费观看人在逋| 伦精品一区二区三区| 床上黄色一级片| 91精品国产九色| 欧美人与善性xxx| 亚洲人成伊人成综合网2020| 久久久久久久亚洲中文字幕| 国产免费一级a男人的天堂| 亚洲七黄色美女视频| 淫妇啪啪啪对白视频| 精品人妻偷拍中文字幕| 欧美黑人巨大hd| 赤兔流量卡办理| 久久精品国产清高在天天线| 成人av在线播放网站| h日本视频在线播放| or卡值多少钱| 国产aⅴ精品一区二区三区波| 久久欧美精品欧美久久欧美| 国产精品久久视频播放| 赤兔流量卡办理| 香蕉av资源在线| 免费看av在线观看网站| 免费在线观看影片大全网站| 亚洲熟妇中文字幕五十中出| 成熟少妇高潮喷水视频| 欧美又色又爽又黄视频| 日本撒尿小便嘘嘘汇集6| 老熟妇仑乱视频hdxx| 精品欧美国产一区二区三| 国产精品久久久久久久电影| 亚洲国产色片| 99久久久亚洲精品蜜臀av| 国产亚洲精品久久久com| 精品一区二区三区人妻视频| 久99久视频精品免费| 亚洲中文字幕一区二区三区有码在线看| 亚洲精华国产精华精| 亚洲国产精品合色在线| 两个人视频免费观看高清| 亚洲va日本ⅴa欧美va伊人久久| 乱人视频在线观看| 欧美绝顶高潮抽搐喷水| 91久久精品国产一区二区成人| 中文字幕av在线有码专区| 亚洲精品粉嫩美女一区| 波多野结衣巨乳人妻| 最近视频中文字幕2019在线8| 午夜日韩欧美国产| 露出奶头的视频| 久久久久久久久久久丰满 | 国产不卡一卡二| 婷婷丁香在线五月| 久久亚洲精品不卡| av黄色大香蕉| 国产黄a三级三级三级人| 久久久久久久久中文| 99九九线精品视频在线观看视频| 国产精品人妻久久久久久| 最近视频中文字幕2019在线8| 日韩在线高清观看一区二区三区 | 十八禁国产超污无遮挡网站| 色哟哟·www| 91在线观看av| 校园人妻丝袜中文字幕| av福利片在线观看| 久久午夜亚洲精品久久| 欧美一区二区精品小视频在线| 99精品久久久久人妻精品| 91午夜精品亚洲一区二区三区 | 欧美bdsm另类| 国产 一区 欧美 日韩| 久久精品影院6| 色综合婷婷激情| 最近视频中文字幕2019在线8| 中文资源天堂在线| 欧美在线一区亚洲| 成年女人看的毛片在线观看| 在线免费十八禁| 亚洲真实伦在线观看| 久久久国产成人精品二区| 男女下面进入的视频免费午夜| 国产精品久久电影中文字幕| 亚洲精品色激情综合| 免费一级毛片在线播放高清视频| 亚洲狠狠婷婷综合久久图片| 两性午夜刺激爽爽歪歪视频在线观看| 日本a在线网址| 成人国产综合亚洲| a在线观看视频网站| 动漫黄色视频在线观看| 午夜爱爱视频在线播放| 深夜a级毛片| 色尼玛亚洲综合影院| 国产精品一及| 少妇的逼水好多| 日本爱情动作片www.在线观看 | 国产伦精品一区二区三区视频9| 国产精品永久免费网站| 欧美黑人欧美精品刺激| 午夜日韩欧美国产| 亚洲黑人精品在线| 国产老妇女一区| 精品欧美国产一区二区三| 嫩草影视91久久| 又爽又黄无遮挡网站| 成人国产麻豆网| 久久久精品大字幕| 舔av片在线| 欧美日韩瑟瑟在线播放| 嫩草影院新地址| av天堂中文字幕网| 久久久国产成人免费| 精品人妻偷拍中文字幕| 女的被弄到高潮叫床怎么办 | 精品久久久久久久人妻蜜臀av| 色综合站精品国产| 99久久九九国产精品国产免费| 欧美黑人巨大hd| 国产精品一区二区性色av| bbb黄色大片| 国产一区二区三区在线臀色熟女| 亚洲国产色片| 久久久久久久久中文| 亚洲一级一片aⅴ在线观看| 亚洲第一电影网av| 亚洲精品成人久久久久久| 久久精品国产亚洲网站| 国产午夜福利久久久久久| 午夜老司机福利剧场| 伦理电影大哥的女人| 日本a在线网址| 国产在线精品亚洲第一网站| 村上凉子中文字幕在线| 亚洲最大成人手机在线| 亚洲专区国产一区二区| 超碰av人人做人人爽久久| 成人一区二区视频在线观看| 国产精品av视频在线免费观看| 午夜精品久久久久久毛片777| 黄色配什么色好看| 变态另类丝袜制服| 美女cb高潮喷水在线观看| 午夜老司机福利剧场| 国产欧美日韩一区二区精品| videossex国产| 国产日本99.免费观看| 天堂网av新在线| 一区二区三区激情视频| 热99在线观看视频| 久久久久国内视频| 亚洲avbb在线观看| 尾随美女入室| 亚洲精品亚洲一区二区| 超碰av人人做人人爽久久| 啦啦啦啦在线视频资源| 99精品在免费线老司机午夜| 成人永久免费在线观看视频| 午夜福利高清视频| 国产高清视频在线观看网站| 给我免费播放毛片高清在线观看| 日日摸夜夜添夜夜添av毛片 | 性插视频无遮挡在线免费观看| 国产在线精品亚洲第一网站| 少妇熟女aⅴ在线视频| 亚洲乱码一区二区免费版| 免费观看人在逋| 欧美高清性xxxxhd video| 少妇熟女aⅴ在线视频| 99热网站在线观看| 嫁个100分男人电影在线观看| 亚洲av不卡在线观看| 免费无遮挡裸体视频| 国内揄拍国产精品人妻在线| 久久久久九九精品影院| 少妇的逼水好多| 中文字幕av成人在线电影| 色综合站精品国产| 99热6这里只有精品| 欧美激情国产日韩精品一区| avwww免费| 成年人黄色毛片网站| 校园春色视频在线观看| 国产毛片a区久久久久| 高清日韩中文字幕在线| 午夜激情欧美在线| 一个人看视频在线观看www免费| 亚洲自拍偷在线| www.www免费av| 18+在线观看网站| 国内揄拍国产精品人妻在线| 午夜精品在线福利| 美女被艹到高潮喷水动态| 亚洲乱码一区二区免费版| 久久九九热精品免费| 久久久精品大字幕| 此物有八面人人有两片| 深爱激情五月婷婷| 别揉我奶头 嗯啊视频| 免费观看在线日韩| 综合色av麻豆| 一级av片app| 日韩中文字幕欧美一区二区| 国产男人的电影天堂91| 午夜激情福利司机影院| 又黄又爽又免费观看的视频| 99久久精品热视频| 真人一进一出gif抽搐免费| 欧美人与善性xxx| 婷婷六月久久综合丁香| 少妇人妻精品综合一区二区 | 1024手机看黄色片| 91精品国产九色| 人妻制服诱惑在线中文字幕| 精品国产三级普通话版| 69人妻影院| 国产精品一区二区免费欧美| 亚洲成人免费电影在线观看| 99热只有精品国产| 成人av在线播放网站| 亚洲精品一卡2卡三卡4卡5卡| 久久这里只有精品中国| 非洲黑人性xxxx精品又粗又长| 一个人看视频在线观看www免费| 我的女老师完整版在线观看| 欧美极品一区二区三区四区| 国内精品美女久久久久久| 最近最新免费中文字幕在线| 日韩大尺度精品在线看网址| 亚洲美女黄片视频| 一区二区三区四区激情视频 | 三级男女做爰猛烈吃奶摸视频| 我的女老师完整版在线观看| 美女 人体艺术 gogo| 成人永久免费在线观看视频| 日日撸夜夜添| 亚洲欧美精品综合久久99| 国内少妇人妻偷人精品xxx网站| 亚洲aⅴ乱码一区二区在线播放| 中文在线观看免费www的网站| 精品人妻1区二区| 午夜老司机福利剧场| 国产探花极品一区二区| 露出奶头的视频| 国产大屁股一区二区在线视频| 精品久久久久久,| 乱系列少妇在线播放| 国产老妇女一区| 亚洲av第一区精品v没综合| 久久久久久久久中文| 亚洲av成人av| 成人鲁丝片一二三区免费| 成人国产一区最新在线观看| 香蕉av资源在线| 性欧美人与动物交配| 亚洲专区中文字幕在线| 色精品久久人妻99蜜桃| 日日摸夜夜添夜夜添av毛片 | 免费在线观看成人毛片| 久久精品人妻少妇| 久久国内精品自在自线图片| 黄色一级大片看看| 亚洲七黄色美女视频|