時(shí)間:2021年10月16日 分類:經(jīng)濟(jì)論文 次數(shù):
摘要:近年來(lái),隨著圖形處理器性能的飛速提升,深度神經(jīng)網(wǎng)絡(luò)取得了巨大的發(fā)展成就,在許多人工智能任務(wù)中屢創(chuàng)佳績(jī)。然而,主流的深度學(xué)習(xí)網(wǎng)絡(luò)模型由于存在計(jì)算復(fù)雜度高、內(nèi)存占用較大、耗時(shí)長(zhǎng)等缺陷,難以部署在計(jì)算資源受限的移動(dòng)設(shè)備或時(shí)延要求嚴(yán)格的應(yīng)用中。因此,在不顯著影響模型精度的前提下,通過(guò)對(duì)深度神經(jīng)網(wǎng)絡(luò)進(jìn)行壓縮和加速來(lái)輕量化模型逐漸引起研究者們的重視。本文回顧了近年來(lái)的深度神經(jīng)網(wǎng)絡(luò)壓縮和加速技術(shù)。這些技術(shù)分為四類:參數(shù)量化、模型剪枝、輕量型卷積核設(shè)計(jì)和知識(shí)蒸餾。對(duì)于每個(gè)技術(shù)類別,本文首先分析了各自的性能及存在的缺陷。另外,本文總結(jié)了模型壓縮與加速的性能評(píng)估方法。最后,討論了模型壓縮與加速領(lǐng)域存在的挑戰(zhàn)和未來(lái)研究的可能方向。
關(guān)鍵詞:深度神經(jīng)網(wǎng)絡(luò)壓縮與加速;深度學(xué)習(xí);模型剪枝;知識(shí)蒸餾;參數(shù)量化
1引言
近年來(lái),深度神經(jīng)網(wǎng)絡(luò)DeepNeuralNetwork,DNN)受到了學(xué)術(shù)界和工業(yè)界的廣泛關(guān)注,被大量應(yīng)用于人工智能各個(gè)領(lǐng)域。然而,深度神經(jīng)網(wǎng)絡(luò)的成功很大程度上依賴于GPU(GraphicProcessingUnit,GPU)計(jì)算能力的發(fā)展。大型深度神經(jīng)網(wǎng)絡(luò)存在結(jié)構(gòu)復(fù)雜、層級(jí)較多、節(jié)點(diǎn)數(shù)量巨大等特點(diǎn),例如早期在ILSVRC競(jìng)賽中取得了重大突破的AlexNet是針對(duì)圖像分類任務(wù)而設(shè)計(jì)的卷積神經(jīng)網(wǎng)絡(luò),僅由個(gè)卷積層與個(gè)全連接層組成,所含參數(shù)量超過(guò)千萬(wàn),模型大小超過(guò)240MB。
此外,業(yè)界廣泛使用的模型VGG16則擁有1.44億個(gè)參數(shù),模型大小超過(guò)00MB,ResNet152擁有0.57億個(gè)參數(shù),模型大小達(dá)到230MB。采用上述模型對(duì)一幅224×224的彩色圖像進(jìn)行分類,分別需要進(jìn)行150億次和13億次浮點(diǎn)型計(jì)算。另外,由于ResNet系列模型具有復(fù)雜的分支結(jié)構(gòu),雖然其參數(shù)量相較于具有平坦結(jié)構(gòu)的GG模型更小,但在實(shí)際訓(xùn)練和推理中耗時(shí)更長(zhǎng)。
神經(jīng)網(wǎng)絡(luò)論文范例: 基于樹分類器神經(jīng)網(wǎng)絡(luò)的雷暴預(yù)測(cè)方法
可見,主流深度學(xué)習(xí)模型的存儲(chǔ)和計(jì)算成本對(duì)于具有嚴(yán)格時(shí)延約束條件的實(shí)時(shí)應(yīng)用來(lái)說(shuō)過(guò)于高昂。隨著移動(dòng)端設(shè)備的普及和市場(chǎng)規(guī)模的擴(kuò)大,工業(yè)界迫切需要將深度學(xué)習(xí)模型部署到資源有限的邊緣設(shè)備上。然而嵌入式設(shè)備和現(xiàn)場(chǎng)可編程門陣列(FieldProgrammableGateArray,F(xiàn)PGA)所具有的內(nèi)存容量、計(jì)算資源與GPU相差幾個(gè)數(shù)量級(jí),面對(duì)龐大的神經(jīng)網(wǎng)絡(luò)模型顯得捉襟見肘,因此模型壓縮及加速的工作變得至關(guān)重要。目前,根據(jù)不同壓縮與加速方法的性質(zhì),深度神經(jīng)網(wǎng)絡(luò)的壓縮和加速方法可分為四類:參數(shù)量化、模型剪枝、輕量型卷積核設(shè)計(jì)和知識(shí)蒸餾。
其中,基于參數(shù)量化的方法是降低權(quán)重參數(shù)的存儲(chǔ)位數(shù);基于參數(shù)剪枝的方法是通過(guò)去除權(quán)重參數(shù)中的非關(guān)鍵冗余部分來(lái)減少參數(shù)量;基于輕量型卷積核設(shè)計(jì)的方法從濾波結(jié)構(gòu)乃至卷積方式的層面進(jìn)行改進(jìn)設(shè)計(jì),從而降低計(jì)算復(fù)雜度;基于知識(shí)蒸餾的方法利用知識(shí)遷移來(lái)訓(xùn)練一個(gè)緊湊的網(wǎng)絡(luò)模型且能復(fù)現(xiàn)大型網(wǎng)絡(luò)的性能。
我們將在下面的章節(jié)中分別對(duì)它們的特性和優(yōu)缺點(diǎn)進(jìn)行分析。具體地,我們將在后續(xù)章節(jié)中作進(jìn)一步的介紹。本文剩余部分的安排如下:第節(jié)介紹模型壓縮的主流方法;第節(jié)介紹常用數(shù)據(jù)集與性能評(píng)價(jià)準(zhǔn)則;第節(jié)給出未來(lái)研究方向的一些相關(guān)探討;第節(jié)給出總結(jié)。模型壓縮方法本節(jié)將按照參數(shù)量化、模型剪枝、輕量型卷積核設(shè)計(jì)以及知識(shí)蒸餾的順序進(jìn)行介紹。
2.1參數(shù)量化
參數(shù)量化通過(guò)減少存儲(chǔ)權(quán)重參數(shù)及激活值所需的比特位數(shù)來(lái)壓縮原始網(wǎng)絡(luò)。通過(guò)該方法,網(wǎng)絡(luò)中權(quán)值和激活值都會(huì)被量化,并且浮點(diǎn)乘法累加操作(MultiplyAccumulate)可以被低比特的乘法累加操作代替。因此,使用降低比特?cái)?shù)的方法可以顯著減少內(nèi)存存儲(chǔ)占用和計(jì)算資源的耗費(fèi)。Gong等人[1]和Wu等人[2]通過(guò)means聚類實(shí)現(xiàn)參數(shù)共享,只需要存儲(chǔ)作為權(quán)重索引值的個(gè)質(zhì)心而不是所有權(quán)重值,顯著減少了內(nèi)存開銷。
Gupta等人[3]在基于隨機(jī)舍入的CNN(ConvolutionalNeuralNetwork)訓(xùn)練中采用了16位定點(diǎn)數(shù)表示,顯著減少了模型的內(nèi)存占用和浮點(diǎn)運(yùn)算,而分類精度幾乎沒(méi)有損失。進(jìn)一步地,Han等人[4]提出的方法利用權(quán)值共享對(duì)權(quán)值進(jìn)行量化,然后對(duì)量化后的權(quán)值和索引表進(jìn)行霍夫曼編碼,以縮減模型大小。如圖所示,首先對(duì)原始網(wǎng)絡(luò)進(jìn)行訓(xùn)練,學(xué)習(xí)神經(jīng)元間的連接(connection),將權(quán)重較小的連接剪除,然后對(duì)稀疏網(wǎng)絡(luò)進(jìn)行重訓(xùn)練,學(xué)習(xí)得到緊湊的新網(wǎng)絡(luò)。Choi等人[5]證明了利用Hessian權(quán)重來(lái)衡量網(wǎng)絡(luò)權(quán)值重要性的可行性,并提出了一種聚類參數(shù),用于最小化Hessian加權(quán)量化誤差。Vanhoucke等人[6]的研究表明,將權(quán)重值量化至位,能夠顯著提升推理速度,同時(shí)保證最小的精度損失。
Jacob等人[7]提出一種量化框架,在訓(xùn)練時(shí)保留位全精度存儲(chǔ)方式,而在前向推理時(shí)對(duì)權(quán)重值與激活值進(jìn)行位量化,從而用整數(shù)運(yùn)算替代浮點(diǎn)數(shù)運(yùn)算,顯著降低了運(yùn)算復(fù)雜度。目前位量化已經(jīng)在工業(yè)界得到了廣泛應(yīng)用,除上述方法外,英偉達(dá)Nvidia)公司推出了TensorRTint量化工具,對(duì)于正負(fù)分布均勻的權(quán)重值與激活值采用最大值映射,將取值范圍按一定比例映射至127,127),對(duì)于分布不均勻的值采用飽和截?cái)嘤成洌丛谟成淝敖財(cái)嗖糠謪^(qū)間,得到在正負(fù)區(qū)間對(duì)稱的截?cái)嘈畔⒑笤龠M(jìn)行量化映射。值得一提的是,二值神經(jīng)網(wǎng)絡(luò)是網(wǎng)絡(luò)量化的極端情況。
一般情況下,網(wǎng)絡(luò)模型中各項(xiàng)參數(shù)都采取32位單精度浮點(diǎn)數(shù)進(jìn)行存儲(chǔ),而二值網(wǎng)絡(luò)中將參數(shù)及特征圖激活值都以+1,形式存儲(chǔ),每個(gè)值僅占用1比特內(nèi)存,類似地,三值網(wǎng)絡(luò)[8]采用+1, 的組合來(lái)量化權(quán)重。早期對(duì)網(wǎng)絡(luò)二值化進(jìn)行探索的幾項(xiàng)工作,如BinaryConnect[9],BinaryNet[10]和XNOR1]等都是在模型訓(xùn)練過(guò)程中直接學(xué)習(xí)二值化權(quán)值或激活值。然而,由于大部分二值網(wǎng)絡(luò)設(shè)計(jì)在利用矩陣近似的思想時(shí)未能充分考慮二值化帶來(lái)的精度損失,并且網(wǎng)絡(luò)量化將參數(shù)離散化,加劇了訓(xùn)練的不穩(wěn)定性,在對(duì)諸如GoogleNet等大型CNN進(jìn)行量化壓縮后,容易導(dǎo)致二值網(wǎng)絡(luò)在分類、檢測(cè)任務(wù)中的精度顯著降低。
為解決這個(gè)問(wèn)題,ou等人[12]的工作提出了一種近似牛頓算法(proximalNewtonalgorithm),該算法利用對(duì)角Hessian近似將二值權(quán)重的損失最小化。iu等人[13]提出一種可求導(dǎo)的軟性量化(Differentiable SoftQuantization,DSQ),使網(wǎng)絡(luò)在反向傳播過(guò)程中獲得更精確的梯度,以彌補(bǔ)二值網(wǎng)絡(luò)前向傳播過(guò)程中的量化損失。
Lin等人[14]提出一種對(duì)權(quán)重進(jìn)行隨機(jī)二值化處理的壓縮方法,隨機(jī)二值化不僅能夠減少浮點(diǎn)運(yùn)算次數(shù),還具有一定的正則化效果,能夠抑制二值化造成的精度損失。Zhang等人[15]認(rèn)為,由于DNN的權(quán)重、激活值在各個(gè)卷積層的數(shù)值分布是不同的,因此對(duì)整個(gè)網(wǎng)絡(luò)采取統(tǒng)一標(biāo)準(zhǔn)的量化策略缺乏靈活性。他們提出一種可習(xí)得的量化器,即聯(lián)合訓(xùn)練模型與其量化器,在訓(xùn)練過(guò)程中逐層優(yōu)化量化策略,以提升壓縮后的模型精度。
Cai等人[16]提出一種基于半波高斯量化(halfwaveGaussianQuantization)的近似方法,在二值化權(quán)重的基礎(chǔ)上,將激活函數(shù)ReLU(RectifiedLinearUnit)進(jìn)行近似處理,以適應(yīng)二值化網(wǎng)絡(luò)的反向傳播計(jì)算,使學(xué)習(xí)過(guò)程更加穩(wěn)定,減小精度損失。Bethge等人[17]中提出一種二值化網(wǎng)絡(luò)結(jié)構(gòu)MeliusNet,該結(jié)構(gòu)采用雙塊設(shè)計(jì),能夠連續(xù)地提升特征數(shù)量,此外該結(jié)構(gòu)對(duì)一些保持32位存儲(chǔ)的卷積層進(jìn)行重新設(shè)計(jì),極大地減少了運(yùn)算量。
2.2模型剪枝
模型剪枝是模型壓縮和加速中使用最為廣泛的研究方法。模型剪枝的基本思想是通過(guò)在預(yù)訓(xùn)練的DNN模型中剪除冗余的、信息量少的權(quán)重,將網(wǎng)絡(luò)結(jié)構(gòu)稀疏化,從而降低內(nèi)存開銷,加速推理過(guò)程。剪枝方法包括非結(jié)構(gòu)化剪枝和結(jié)構(gòu)化剪枝。非結(jié)構(gòu)化剪枝是最細(xì)粒度的方法,其操作對(duì)象是濾波(filter)中的每個(gè)權(quán)重;而結(jié)構(gòu)化剪枝的操作對(duì)象是整個(gè)濾波,乃至整個(gè)卷積層這樣的結(jié)構(gòu)化信息。
2.2.1非結(jié)構(gòu)化剪枝
早期的剪枝方法大都基于非結(jié)構(gòu)化剪枝,由于它裁剪的粒度為單個(gè)神經(jīng)元,因此在對(duì)卷積核進(jìn)行非結(jié)構(gòu)化剪枝時(shí),得到稀疏分布的卷積核,即存在較多元素為0的矩陣,因此可以有效減少內(nèi)存占用,加速推理。
2.2.2結(jié)構(gòu)化剪枝
目前,在基于結(jié)構(gòu)化剪枝的研究工作當(dāng)中已涌現(xiàn)出許多出色的研究成果,解決了無(wú)法對(duì)稀疏矩陣計(jì)算進(jìn)行加速的問(wèn)題。此類方法遵循濾波顯著性準(zhǔn)則(即判別濾波對(duì)于模型性能重要性的準(zhǔn)則),直接批量地剪除非顯著性濾波,達(dá)到壓縮目的。Wen等人[24]利用GroupLasso對(duì)模型中不同粒度的結(jié)構(gòu),包括濾波、通道、濾波形狀、層深度(filters,channels,filtershapes,layerdepth)進(jìn)行正則化,并將此正則化項(xiàng)加入目標(biāo)函數(shù),進(jìn)行結(jié)構(gòu)化稀疏訓(xùn)練。Zhou等人[25]向目標(biāo)函數(shù)中加入稀疏性局限(sparseconstraints),然后在訓(xùn)練階段通過(guò)稀疏限制減少神經(jīng)元數(shù)量。
該方法針對(duì)其特殊的優(yōu)化過(guò)程還提出前后項(xiàng)分裂法,其作用是在標(biāo)準(zhǔn)的反向傳播過(guò)程中,可以繞過(guò)不易求導(dǎo)的稀疏限制項(xiàng)。通過(guò)計(jì)算濾波的范數(shù)值,直接判斷濾波的重要性的方法也相繼被提出[26],該方法首先計(jì)算所有濾波的L1范數(shù),逐層刪除范數(shù)值低于閾值的濾波,同時(shí)移除該濾波在當(dāng)前層生成的特征圖(featuremap)以及該特征圖在下一層中對(duì)應(yīng)的濾波通道,剪枝后再進(jìn)行重訓(xùn)練,恢復(fù)模型的精度。Liu等人[27]提出一種介于粗、細(xì)粒度之間的通道級(jí)別剪枝。
該方法向存在于每個(gè)卷積層的批量標(biāo)準(zhǔn)化(BatchNormalization)中的縮放因子γ添加稀疏正則限制,并將此正則項(xiàng)加入目標(biāo)函數(shù),與模型損失函數(shù)聯(lián)合訓(xùn)練,受正則化限制,部分縮放因子將衰減至接近的區(qū)域。由于批量標(biāo)準(zhǔn)化中超參數(shù)γ的大小能夠直接改變特征圖的分布,進(jìn)而影響模型的表達(dá)能力,因此較小的縮放因子對(duì)應(yīng)著全局貢獻(xiàn)度較低的通道,對(duì)這些通道進(jìn)行剪除,再通過(guò)微調(diào)(finetune)恢復(fù)模型精度,有效降低了網(wǎng)絡(luò)的復(fù)雜度。不同于前述方法,Luo等人[28]越過(guò)當(dāng)前層濾波,著眼于下一層濾波通道的顯著性,建立了一個(gè)有效的通道選擇優(yōu)化函數(shù),實(shí)現(xiàn)對(duì)下一層卷積核中冗余通道及其對(duì)應(yīng)當(dāng)前層濾波的剪枝。
3數(shù)據(jù)集與性能評(píng)估準(zhǔn)則
3.1性能評(píng)估準(zhǔn)則
大多數(shù)研究都是采用每輪(epoch)訓(xùn)練的平均訓(xùn)練時(shí)間來(lái)衡量運(yùn)行時(shí)間。對(duì)于不同的訓(xùn)練集,一般都采用Top正確率和Top正確率兩種分類精度,其中Top正確率指概率最大的預(yù)測(cè)結(jié)果對(duì)應(yīng)正確標(biāo)簽的概率,Top正確率指概率最大的個(gè)預(yù)測(cè)結(jié)果中包含正確標(biāo)簽的概率。
4總結(jié)和展望
本文首先概述了深度神經(jīng)網(wǎng)絡(luò)壓縮與加速技術(shù)的研究背景;接著介紹了深度神經(jīng)網(wǎng)絡(luò)模型壓縮及加速的四類主要方法,包括參數(shù)量化、模型剪枝、輕量型卷積核設(shè)計(jì)以及知識(shí)蒸餾;之后介紹分析了模型壓縮與加速領(lǐng)域常用的數(shù)據(jù)集與性能評(píng)估準(zhǔn)則;接下來(lái)對(duì)各類方法進(jìn)行優(yōu)劣分析。
4.1方法優(yōu)劣分析
1)參數(shù)量化:基于參數(shù)量化的壓縮方法在一定程度上縮減了模型大小,使得模型能夠在計(jì)算資源與存儲(chǔ)空間受限的移動(dòng)端和嵌入式設(shè)備上高效運(yùn)行。但量化后的權(quán)重和激活降低了網(wǎng)絡(luò)的容量和特征圖的質(zhì)量,往往使得模型的表達(dá)能力大打折扣,另外,量化會(huì)向梯度信息中引入噪聲,導(dǎo)致基于梯度下降法的訓(xùn)練過(guò)程收斂難度增加。這些缺陷會(huì)造成量化后網(wǎng)絡(luò)的精度低于原始網(wǎng)絡(luò),二值化網(wǎng)絡(luò)中精度損失更加嚴(yán)重。因此基于網(wǎng)絡(luò)量化的壓縮方法具有一定局限性,但量化具有較好的兼容性,在實(shí)際應(yīng)用中常與其他壓縮方法相結(jié)合。
2)模型剪枝:基于模型剪枝的壓縮方法具有直觀的物理意義,在實(shí)際應(yīng)用中也展現(xiàn)出理想的壓縮性能,但該方法也存在一定缺陷。首先,相比于其他壓縮方法,基于L1或L2正則化的剪枝收斂較慢,需要更多次數(shù)的迭代訓(xùn)練。其次,剪枝相當(dāng)于優(yōu)化網(wǎng)絡(luò)的整體結(jié)構(gòu),對(duì)具有不同結(jié)構(gòu)特點(diǎn)的網(wǎng)絡(luò)模型往往不能采用完全相同的剪枝策略。對(duì)于不同類型網(wǎng)絡(luò)在不同訓(xùn)練數(shù)據(jù)集下的剪枝方法還不能完全統(tǒng)一。
此外,人工設(shè)計(jì)的剪枝方法需要根據(jù)不同層級(jí)的敏感度,手動(dòng)調(diào)節(jié)剪枝閾值,重復(fù)微調(diào)參數(shù),實(shí)現(xiàn)過(guò)程繁瑣。而自動(dòng)化剪枝能夠綜合評(píng)估多種剪枝方案,自動(dòng)搜索最優(yōu)結(jié)構(gòu),確定復(fù)雜的超參數(shù),但對(duì)于大型網(wǎng)絡(luò)來(lái)說(shuō),搜索空間過(guò)于龐大,對(duì)算力要求極高,耗時(shí)較長(zhǎng)。
3)輕量型卷積核設(shè)計(jì):基于輕量型卷積核設(shè)計(jì)的壓縮方法對(duì)原始卷積核進(jìn)行緊湊設(shè)計(jì)或直接采用運(yùn)算量遠(yuǎn)小于標(biāo)準(zhǔn)卷積的新式卷積計(jì)算方式,能夠有效降低參數(shù)量,大幅減少浮點(diǎn)運(yùn)算次數(shù)。但囿于輕量型卷積核設(shè)計(jì)的獨(dú)特性,壓縮后的模型十分緊湊,較難在其中綜合應(yīng)用其他壓縮技術(shù)來(lái)進(jìn)一步提升效果。另外,相比于大而深的原始模型,基于輕量型卷積核設(shè)計(jì)的網(wǎng)絡(luò)模型由于容量受限,訓(xùn)練得到的特征泛化能力稍弱。
4)知識(shí)蒸餾:基于知識(shí)蒸餾的壓縮方法相當(dāng)于用一個(gè)神經(jīng)網(wǎng)絡(luò)訓(xùn)練另一個(gè)神經(jīng)網(wǎng)絡(luò),將大型復(fù)雜網(wǎng)絡(luò)的知識(shí)遷移至小型簡(jiǎn)易網(wǎng)絡(luò)中,利用小型網(wǎng)絡(luò)來(lái)實(shí)現(xiàn)擁有與大型網(wǎng)絡(luò)相同優(yōu)越的性能和良好的泛化能力,并且顯著降低了所需存儲(chǔ)空間和計(jì)算資源。知識(shí)蒸餾的缺陷之一是只能應(yīng)用于具有softmax分類器及交叉熵?fù)p失函數(shù)的分類任務(wù),應(yīng)用場(chǎng)景較為局限。另一個(gè)缺點(diǎn)是與其他類型的方法相比,基于知識(shí)蒸餾的壓縮方法在大型數(shù)據(jù)集的表現(xiàn)略差。
4.2未來(lái)發(fā)展趨勢(shì)
綜合以上對(duì)近期研究成果的分析可以得知,深度神經(jīng)網(wǎng)絡(luò)壓縮與加速的研究仍然具有巨大的潛力和研究空間,未來(lái)的研究工作不僅需要進(jìn)一步提高模型壓縮效率與推理速度,并且應(yīng)打破學(xué)術(shù)界與工業(yè)界之間的壁壘。以下介紹模型壓縮與加速領(lǐng)域需要進(jìn)一步探索和開發(fā)的方向。
1)與硬件緊密結(jié)合。針對(duì)卷積神經(jīng)網(wǎng)絡(luò)在不同硬件平臺(tái)上的使用,提出一些與硬件緊密結(jié)合的壓縮方法就是未來(lái)方向之一。具體包括基于硬件的自動(dòng)量化以及將硬件加速器的反饋信息引入算法設(shè)計(jì)環(huán)中。與硬件密切結(jié)合的模型壓縮方法可以使CNN具有更強(qiáng)的硬件平臺(tái)適應(yīng)性,以應(yīng)對(duì)端設(shè)備部署帶來(lái)的挑戰(zhàn)。
參考文獻(xiàn)
[1]GONGYunchao,LIULiu,YANGMing,etal.Compressingdeepconvolutionalnetworksusingvectorquantization[EB/OL].2014
[2]WUJiaxiang,LENGCong,WANGYuhang,etal.Quantizedconvolutionalneuralnetworksformobiledevices[C]//2016IEEEConferenceonComputerVisionandPatternRecognition(CVPR).LasVegas,NV,USA.IEEE,2016:48204828.
[3]GUPTAS,AGRAWALA,GOPALAKRISHNANK,etal.Deeplearningwithlimitednumericalprecision[C]//InternationalConferenceonMachineLearning.2015:17371746.
[4]HANSong,MAOHuizi,DALLYWJ.Deepcompression:Compressingdeepneuralnetworkswithpruning,trainedquantizationandhuffmancoding[J].rXivreprintarXiv:1510.00149,2015.
作者:曾煥強(qiáng)1,2胡浩麟2林向偉2侯軍輝3蔡燦輝1