張舒嘯,施 琦,陳 雯,余金培
(1.中國科學(xué)院 微小衛(wèi)星創(chuàng)新研究院,上海 201203;2.上??萍即髮W(xué) 信息科學(xué)與技術(shù)學(xué)院,上海 201210;3.中國科學(xué)院大學(xué),北京 100049)
如何對遙感圖像中的重要目標(biāo)進(jìn)行精確的識別分類,是衛(wèi)星遙感領(lǐng)域的一個難點(diǎn)和重要研究方向。近年來,對遙感圖像目標(biāo)檢測的技術(shù)有不少發(fā)展,鈕賽賽等[1]、方青云等[2]都基于YOLO 模型實(shí)現(xiàn)了遙感圖像目標(biāo)檢測。但是遙感在軌圖像存在數(shù)據(jù)量大,存儲、下傳到地面的速度受限,時間延遲大的問題。如果能及時進(jìn)行在軌識別處理,可提高時效性,降低對星上存儲及數(shù)據(jù)下傳的壓力,當(dāng)然這會增加在軌識別處理的資源要求。星上硬件設(shè)備受限,計算能力不足,要做到在軌識別,需要以識別精度為代價來降低計算成本,在計算量受限的條件下進(jìn)行遙感圖像目標(biāo)識別則更是困難。深度學(xué)習(xí)能較好地解決識別分類的問題,但是深度學(xué)習(xí)模型有大量參數(shù),會消耗大量計算和存儲資源,不利于在星上部署。模型壓縮可以有效地去除冗余信息,節(jié)省存儲空間,減少計算量,適合于這種資源受限的應(yīng)用場景。剪枝作為模型壓縮的重要手段,已被廣泛運(yùn)用。
對于剪枝技術(shù)的研究有很多:LUO 等[3]提出了過濾器級別的剪枝方法ThiNet;HE 等[4]提出基于軟更新的軟濾波器剪枝(Soft Filter Pruning,SFP)方法對網(wǎng)絡(luò)進(jìn)行剪枝;YU 等[5]提出了一種根據(jù)情況自適應(yīng)修改通道數(shù)量的網(wǎng)絡(luò)模型,將不同壓縮率的網(wǎng)絡(luò)訓(xùn)練到一個網(wǎng)絡(luò)里。以上幾種方法都是預(yù)定義的剪枝方法,除此之外還有一些自動剪枝的方法。HE[6]提出了一種基于深度確定性策略梯度(Deep Deterministic Policy Gradient,DDPG)的自動壓縮方法。LIN 等[7]提出了ABCPruner 修剪方法,LIU 等[8]提出了一種基于元學(xué)習(xí)的修剪方法,DONG 等[9]使用可變形結(jié)構(gòu)搜索和知識蒸餾的方法來搜索小型網(wǎng)絡(luò)。
預(yù)定義剪枝方法的壓縮率以及每一層的剪枝比例一般通過人工設(shè)置,缺乏選擇依據(jù)。自動剪枝方法如果通過人工設(shè)置總的壓縮率,同樣缺乏選擇依據(jù)。自動剪枝方法如果通過相應(yīng)算法得到每一層的剪枝比例,壓縮算法結(jié)束之前不知道總的壓縮率是多少,且最終得到的總的壓縮率可能不滿足資源限制要求。該搜索方法無法折衷考慮準(zhǔn)確率和運(yùn)算量對實(shí)際應(yīng)用場景的影響。為了根據(jù)應(yīng)用需求確定壓縮率,本文研究貢獻(xiàn)如下:1)提出了一種描述壓縮后計算量與準(zhǔn)確率關(guān)系的函數(shù)模型;2)運(yùn)用該模型可以根據(jù)不同應(yīng)用場景需求確定合適的壓縮率;3)運(yùn)用該模型可以對不同的壓縮方法進(jìn)行比較。
本文從預(yù)定義剪枝方法中選取等比例剪枝作為代表,從自動剪枝方法中選取自動機(jī)器學(xué)習(xí)(Automated Machine Learning,AMC)算法作為代表進(jìn)行實(shí)驗(yàn)。
MITTAL 等[10]通過實(shí)驗(yàn)論證了對過濾器的隨機(jī)裁剪能得到基于權(quán)重裁剪模型相似的準(zhǔn)確率。LIU 等[11]則提出了剪枝的本質(zhì)是對模型的結(jié)構(gòu)的調(diào)整,而不是對重要權(quán)重的保留。在此之前的壓縮方法主要是手動設(shè)置模型結(jié)構(gòu),調(diào)整壓縮率,如Thi-Net,或者是對每一層的結(jié)構(gòu)采用相同的比例進(jìn)行剪枝,如SFP。由于手動調(diào)整結(jié)構(gòu)不具有一般性,本文將對每一層采用相同的比例進(jìn)行剪枝,剪枝后從頭開始訓(xùn)練,然后對剪枝效果進(jìn)行評估。對神經(jīng)網(wǎng)絡(luò)的第i層進(jìn)行剪枝如圖1 所示。
圖1 對神經(jīng)網(wǎng)絡(luò)的第i 層進(jìn)行剪枝Fig.1 Pruning of the ith layer of the neural network
AMC 算法[6]由HE 等提出,是一種基于強(qiáng)化學(xué)習(xí)的壓縮方法,此壓縮方法的核心是DDPG。動作空間at∈(0,1],表示第t層的剪枝率,狀態(tài)空間S為(t,n,c,h,w,stride,k,F(xiàn)LOPs[t],reduced,rest,at-1)。其中:t為層數(shù);n為輸出通道數(shù);c為輸入通道數(shù);h為輸入層的高;w為輸入層的寬;stride為步長;k為卷積核的大?。籉LOPs[t]為第t層浮點(diǎn)運(yùn)算次數(shù)(floating point operatens,F(xiàn)LOPs);reduced 是之前層減掉的FLOPs;rest 是剩余層的FLOPs;at-1是一個(0,1]的動作空間,表示第t-1 層的剪枝率;獎勵函數(shù)R=-Error 或R=-Error*log(FLOPs),這兩種獎勵函數(shù)前一種是確定FLOPs,只針對準(zhǔn)確率進(jìn)行學(xué)習(xí),后一種獎勵函數(shù)要同時對兩者進(jìn)行學(xué)習(xí)。此方法有兩個神經(jīng)網(wǎng)絡(luò):Actor和Critic,其損失函數(shù)分別為
式 中:ri為 第i個獎勵函數(shù);si為第i個狀態(tài);ai為 第i個動作;Q為動作價值函數(shù);b為獎勵函數(shù)的均值;θ為網(wǎng)絡(luò)參數(shù);γ設(shè)置為1;μ(si)為狀態(tài)si下的動作a。
一般情況下,模型壓縮后的計算量越小,即模型壓縮率越大,此時準(zhǔn)確率越低。模型壓縮就是用準(zhǔn)確率的下降換取資源需求的減少。然而不同的應(yīng)用場景,對于壓縮率的要求不同,對壓縮后模型的準(zhǔn)確率要求也不盡相同。為了更加清晰地展示不同情況下準(zhǔn)確率下降與消耗資源減少的關(guān)系,以便更好地確定壓縮率,用函數(shù)來擬合準(zhǔn)確率與模型壓縮之后計算量之間的關(guān)系。
由于模型的準(zhǔn)確率和計算量之間關(guān)系的限制,需要擬合的函數(shù)需滿足以下條件:1)對于任何分類任務(wù),定義域是[0,100],值域是[0,100]的子集,單位是%;2)函數(shù)在定義域內(nèi)連續(xù)且單調(diào)遞增。
選擇滿足上述條件的函數(shù)能在一定程度上避免過擬合。通過分析比較多種函數(shù)模型后發(fā)現(xiàn)分子分母為同階多項(xiàng)式的函數(shù)可以很好地擬合出準(zhǔn)確率與計算量的關(guān)系改變趨勢。而深度學(xué)習(xí)模型計算量大,考慮實(shí)際需求,減少擬合函數(shù)所需要的最少數(shù)據(jù)點(diǎn),可以減少總的計算量,定義函數(shù)關(guān)系如下:
式中:x為剪枝后模型所需計算量占初始模型所需計算量的百分比,即x=1-ratio,ratio 表示壓縮率,即壓縮的計算量占初始模型計算量的百分比;y為模型的Top1 準(zhǔn)確率,即正確分類的目標(biāo)數(shù)量占總數(shù)的百分比;p1、p2、p3、q1、q2為要擬合的參數(shù)。
要用函數(shù)(3)擬合準(zhǔn)確率與計算量的關(guān)系,需要在定義域[0,100]內(nèi)采樣n個點(diǎn)(x1,y1),(x2,y2),…,(xn,yn)。為了更完整地擬合整條曲線,取一個極限的點(diǎn)(0,y0),其中y0的值為理論情況下的極限值,即在不通過模型計算的情況下將隨機(jī)生成的結(jié)果作為模型輸出結(jié)果能得到的準(zhǔn)確率的理論值,最后最小化損失函數(shù)F為
接下來,需要針對p1、p2、p3、q1、q2計算F的偏導(dǎo)數(shù);再使用梯度下降法來得到p1、p2、p3、q1、q2的值。梯度下降的參數(shù)的迭代更新公式為
式中:φ可以用p1、p2、p3、q1、q2這些參數(shù)替換;lr為學(xué)習(xí)率;為偏導(dǎo)數(shù)。
通過式(5)可以得到計算量與準(zhǔn)確率的關(guān)系,并可根據(jù)準(zhǔn)確率或者準(zhǔn)確率與壓縮率的折衷關(guān)系來確定壓縮率。不同的場景對壓縮率的要求各不相同,可根據(jù)實(shí)際需要求壓縮率,如設(shè)定一個閾值ε,并求,或者直接根據(jù)準(zhǔn)確率求,此時的壓縮率即可滿足要求。
本次實(shí)驗(yàn)使用了CIFAR10 數(shù)據(jù)集[12]和遙感圖像數(shù)據(jù)集UCMerced Land-Use[13],其中CIFAR10 數(shù)據(jù)集有60 000 張圖片,其中50 000 張為訓(xùn)練集,10 000 張為測試集,分為10 個類,每張圖片的大小為32×32×3。UCMerced Land-Use 數(shù)據(jù)集共有21類,每個類100 張圖片,每張圖片的大小為256×256×3,訓(xùn)練時將圖片裁剪為224×224×3,隨機(jī)將每個類別的80 張圖片作為訓(xùn)練集,20 張圖片用作測試集。
實(shí)驗(yàn)內(nèi)容為在CIFAR10 數(shù)據(jù)集上分別用等比例剪枝和AMC 自動剪枝方法對ResNet20、ResNet56[14]、VGG16[15]深度神經(jīng)網(wǎng)絡(luò)以不同的壓縮率進(jìn)行剪枝,將剪枝后的模型在數(shù)據(jù)集上進(jìn)行訓(xùn)練和測試,并將結(jié)果中80%的數(shù)據(jù)用函數(shù)擬合不同模型下準(zhǔn)確率與計算量的關(guān)系,剩下的20%的數(shù)據(jù)用來檢驗(yàn)擬合數(shù)據(jù)的效果。
神經(jīng)網(wǎng)絡(luò)都采用交叉熵?fù)p失函數(shù),等比例壓縮方法采用壓縮后從頭訓(xùn)練方式,AMC 方法按照原文采用訓(xùn)練后微調(diào)的方式,兩種方法都訓(xùn)練200 批次,初始學(xué)習(xí)率為0.1,并在第100、150 批次分別衰減0.1,AMC 微調(diào)100 個批次。
擬合函數(shù)采用隨機(jī)梯度下降法,等比例壓縮算法共有19 個數(shù)據(jù)點(diǎn),其中15 個用于擬合,4 個數(shù)據(jù)點(diǎn)用于測試,AMC 算法共有7 個數(shù)據(jù)點(diǎn),其中6 個數(shù)據(jù)點(diǎn)用于擬合,1 個數(shù)據(jù)點(diǎn)用于測試,共迭代60 000 次,初始參數(shù)為1 到100 的隨機(jī)數(shù);初始學(xué)習(xí)率為0.1,并在第500次和第59 500次迭代衰減0.1。
除了上文提到的函數(shù)模型式(3)外,還嘗試使用其他模型來擬合準(zhǔn)確率與計算量關(guān)系的曲線,如圖2 所示。
圖2 其他常用模型擬合效果Fig.2 Fitting effects of other commonly used models
這些數(shù)據(jù)為用等比例剪枝的方法在ResNet20上壓縮后在CIFAR10 上分類的結(jié)果。這三種方法在測試集上的均方根誤差分別為13.96、19.22、4.66。這些方法的擬合效果都不夠理想,而線性插值方法要得到好的結(jié)果需要的數(shù)據(jù)點(diǎn)過多。分子分母為更高階的函數(shù)也可以擬合,但是更容易出現(xiàn)間斷點(diǎn),且對數(shù)據(jù)量的需求更高。因此,式(3)給出的函數(shù)可以較好滿足應(yīng)用需求。擬合曲線參數(shù)及擬合效果見表1。表1 第一列中的Method1 為使用等比例剪枝的方法,Method2 為使用AMC 自動剪枝算法,最后一個數(shù)字表示數(shù)據(jù)集,1 表示CIFAR10,2 表示UCMerced Land-Use 數(shù)據(jù)集,第一行的p1、p2、p3、q1、q2表示擬合參數(shù),RMSE 是擬合的曲線在測試數(shù)據(jù)上的均方根誤差,用以檢測擬合曲線的擬合效果。
表1 擬合曲線參數(shù)及擬合效果Tab.1 Fitting curve parameters and fitting effects
不同剪枝方法在相同模型上進(jìn)行壓縮后的比 較圖如圖3 所示。
圖3 不同剪枝方法在相同模型上進(jìn)行壓縮后的準(zhǔn)確率比較Fig.3 Comparison of the accuracy of the same model obtained by different pruning methods after compression
圖2中的3張圖片分別為對ResNet20、ResNet56、VGG16 用2 種方法以不同的壓縮率壓縮后在CIFAR10 數(shù)據(jù)集上的準(zhǔn)確率,其中,橫坐標(biāo)表示壓縮后的模型的計算量占原始模型的百分比,縱坐標(biāo)表示準(zhǔn)確率??梢钥吹?,在壓縮率較低時,兩種壓縮方法各有優(yōu)劣,在壓縮率較高時等比例剪枝方法較好。2 種壓縮方法壓縮ResNet20 后在UCMerced Land-Use 數(shù)據(jù)集上的結(jié)果如圖4 所示。
圖4 兩種壓縮方法壓縮ResNet20 后在UCMerced Land-Use 數(shù)據(jù)集上的結(jié)果Fig.4 Results of the ResNet20 model on the UCMerced Land-Use dataset obtained by the two compression methods after compression
圖4 中的圖片表示以同樣的方法使用ResNet20在UCMerced Land-Use 數(shù)據(jù)集上的結(jié)果,可以看到數(shù)據(jù)的變化趨勢與在CIFAR10 數(shù)據(jù)集上相同。
通過以上實(shí)驗(yàn)可以得到以下結(jié)論:
1)采用式(3)擬合的曲線與其他函數(shù)形式相比誤差較小,能較好地反映變化的趨勢。
2)有了以上曲線模型后,可以針對應(yīng)用場景需求,根據(jù)準(zhǔn)確率要求或者準(zhǔn)確率與壓縮率的折衷人工確定模型壓縮率后進(jìn)行壓縮,從而可解決選擇壓縮率時無選擇依據(jù)的問題。
3)可以根據(jù)得到的擬合曲線對不同的壓縮方法性能進(jìn)行比較,只要比較曲線與x=0、x=100、y=0 三條直線圍成的面積大?。辞€在定義域內(nèi)的定積分)即可。從圖3 可以看出,不同的壓縮方法要減少相同的計算量時損失的準(zhǔn)確率是不一樣的,等比例剪枝和AMC 算法在壓縮率較小時,效果不相上下,當(dāng)壓縮率較大時,等比例剪枝效果更好。
4)壓縮方法對同一個模型壓縮后在不同數(shù)據(jù)集上的表現(xiàn)相似,使用該方法可以在一定程度上根據(jù)一個數(shù)據(jù)集上的表現(xiàn)推斷此壓縮方法在另一個數(shù)據(jù)集上的表現(xiàn)。
本文針對衛(wèi)星在軌識別使用深度學(xué)習(xí)方法時壓縮率的選擇問題,給出了計算量降低與準(zhǔn)確率損失的量化關(guān)系擬合方法。該方法可給出壓縮率與準(zhǔn)確率兩者之間的折衷關(guān)系,為設(shè)置壓縮率提供依據(jù),可以避免使用算法搜索得到壓縮率方法存在的問題。同時,有了壓縮率與準(zhǔn)確率之間的折衷關(guān)系的曲線后,還可以對不同的壓縮方法進(jìn)行比較。