方維維,陳愛方,孟 娜,程虎威,王清立
(北京交通大學 計算機與信息技術學院,北京 100044)
隨著物聯網及4G/5G技術的發(fā)展,位于網絡邊緣的設備數量呈爆炸式增長趨勢。同時,網絡邊緣產生的數據量也在急劇增加。傳統(tǒng)云計算模式需要通過網絡將大量數據發(fā)送到云計算中心進行處理,從而導致網絡傳輸帶寬的負載量增加,進而造成推理時延增加,因此無法完成自動駕駛、增強現實等需要獲取實時檢測結果的計算任務。由于傳統(tǒng)云計算方式存在以上問題,數據在網絡邊緣設備上進行處理的邊緣計算新模式具有低延遲、低帶寬和高安全性等特點[1–2],更適用于滿足目標檢測應用需求。
最早提出的目標檢測模型如Viola–Jones(VJ)檢測器[3]等均是基于手工特征實現。隨著手工設計特征的模型性能趨于飽和,基于深度學習的目標檢測RCNN[4]、Fast R-CNN[5]和Faster R-CNN[6]開始出現,其中Faster R-CNN以端到端的方式完成推理。為了加速模型推理,YOLO[7]系列算法被提出。為了獲得精度和速度的平衡,SSD[8]算法被提出。為取消錨框的使用,近年來研究人員提出了基于關鍵點檢測的算法CornerNet和CenterNet等[9]。傳統(tǒng)的目標檢測之類的深度學習方法通常建立在模型訓練前所有數據均已完全獲得的前提條件下,然而在實際邊緣計算應用中,新的數據樣本和新的數據類別往往是逐漸產生、積累和獲得的。所以,傳統(tǒng)方法都會面臨一個挑戰(zhàn)—災難性遺忘,即當接收到新數據時,模型會趨向于擬合新數據而欠擬合舊數據。
為了解決上述挑戰(zhàn),越來越多的研究開始關注增量學習(incremental learning, IL)[10]這一主題。 增量學習方法能夠不斷地從新樣本中學習到新知識,同時也會保存大部分之前已學習的舊知識。目前的增量學習方法主要包括基于參數回放、基于動態(tài)網絡和基于正則化3大類。基于參數回放的方法主要思想是從舊類數據集中挑選出重要數據進行保存,利用保存的部分舊類數據和所有新類數據完成模型的訓練,例如:iCaRL[10]中先使用特征均值衡量舊類數據的重要性,再保存靠近特征均值的舊類數據;Wang[11]、Kemker[12]等在寬度或深度維度上擴大模型或者訓練多個模型,來增加模型的表示能力,以避免模型在新數據上的過擬合;為這些新的數據和類別獨立地訓練新的模型固然可行,但模型的部署將會給資源受限的邊緣設備帶來非常大的計算資源開銷和管理維護成本?;趧討B(tài)網絡的方法為每個類的執(zhí)行固定不同的前饋通路,例如,PackNet[13]算法中利用權重剪枝技術為每個類挑選出最優(yōu)的前饋通路,但是需要進行多次剪枝和重訓練,導致計算成本增加?;谡齽t化的方法主要對神經網絡的權值更新施加約束,例如:LwF[14]、LwM[15]中使用知識蒸餾技術延緩舊類知識的遺忘;Chen等[16]將增量學習方法用于目標檢測領域。此類基于正則化的方法采用的知識蒸餾技術中,學生模型只學習了教師模型最后的logits知識,而教師模型的中間層特征圖的知識大部分無法學習到,這使得大模型無法部署或部署在邊緣設備上無法獲得好的性能。
因此,針對上述問題及輸入數據樣本成批更新替換且邊緣設備硬件資源受限的應用場景,本文提出了一種高效的基于多中間層知識蒸餾的增量學習方法ILMIL。首先,ILMIL將在舊數據上訓練好的模型權重遷移到教師網絡,并將壓縮后的模型作為學生網絡。其次,教師網絡通過設計的存儲多個網絡中間層知識的MFRRK蒸餾指標來訓練學生網絡,最終得到一個存儲友好的高性能學生模型。該方法可在有效降低模型計算和存儲開銷的前提下,緩解已有知識的災難性遺忘現象,并維持可接受的推理精度。
本文使用的目標檢測模型是基于VGG16[17]的Faster R-CNN,原因如下:1)實現了端到端的檢測流程,在兩階段目標檢測模型中具有較高的檢測速度;2)相比于YOLO和SSD等常用模型,具有較高的檢測精度;3)其區(qū)域建議網絡(region proposal network,RPN)設計包含有目標定位信息,有助于緩解增量學習過程中舊類知識的遺忘。
圖1展示了本文提出的ILMIL方法的總體結構。本文采用“教師–學生(T–S)”知識蒸餾架構[18],數據集劃分為舊類Do和新類Dn,其中,舊類數據集的標簽中僅含有舊類目標Co,新類數據集的標簽中僅含有新類目標Cn,且Co∩Cn=?。使用Do訓練得到教師模型,將其復制一份得到初始的學生模型。在增量學習過程中,使用Dn訓練學生模型,同時,教師模型的指導降低其對舊知識的遺忘速度,最終使得學生模型可以識別所有的目標C=Co∪Cn。如圖1所示,一般情況下該增量學習過程可通過步驟①、②和⑤完成。如考慮到邊緣設備的資源,對目標檢測模型的執(zhí)行速度和模型大小有進一步的要求,則可選擇在獲得教師模型后進行適度的剪枝壓縮,即通過步驟①、③、④和⑤完成。
圖1 ILMIL方法概述Fig.1 Overview of the ILMIL approach
1.2.1 知識蒸餾指標
本文提出一種新的知識蒸餾指標MFRRK(multilayer feature map, RPN and RCN knowledge),其融合了多個中間層的特征圖信息、RPN,以及分類和回歸網絡(classification and regression network,RCN)。在現有的文獻[17]研究中,將Faster R-CNN特征提取模塊VGG16的卷積層部分劃分為Stage1、Stage2、Stage3、Stage4和Stage5。在增量學習中,教師模型中間層的特征圖包含了大量的舊類信息,通過最小化學生模型和教師模型特征圖之間的差異,可幫助學生模型有效地保留舊類知識,因此,將特征提取模塊的特征圖信息作為蒸餾知識所考慮的指標之一。對于不同深度的特征圖,提取出的信息側重點不同,其中:越靠近圖片輸入層的特征圖越關注具體的圖像細節(jié)特征,比如紋理特征;越遠離輸入層的特征圖越關注圖像的語義信息,即抽象信息。所以,與傳統(tǒng)相關知識蒸餾技術[14,16]不同的是,本文在選取該部分指標時,除選取Stage5模塊的輸出特征圖外,還選取了Stage4模塊的輸出特征圖。通過向教師模型學習不同層次的特征圖知識,使學生模型可以學習到舊類目標的細節(jié)信息和語義信息,從而緩解學生模型對舊類知識的遺忘現象。與現有的利用知識蒸餾完成增量學習方法[13,19]相同的是,本文采用的知識蒸餾方法也使用了RPN和RCN的輸出信息,其中:RPN包含了目標建議;RCN針對每一個目標建議,再給出類別評分和空間位置調整向量。
1.2.2 知識蒸餾方法
式中,T4、T5和S4、S5分別為教師網絡T和學生網絡S的Stage4和Stage5的輸出特征圖。
式(2)和(3)中:令*號代表soft和hard,分類損失L*–cls均為交叉熵損失,如式(5)所示;回歸損失L*–reg均為平滑L1損失,如式(6)所示。
2.整合。課程整合是超越不同知識體系,以關注共同要素的方式安排學習的課程開發(fā)活動,目的是減少知識的分割和學科間的隔離,把受教育者所需要的不同知識體系統(tǒng)一聯合起來,傳授對人類和環(huán)境的連貫一致的看法。課程整合的方法有開發(fā)關聯課程和跨學科課程兩種。教學中,筆者主要采用了開發(fā)跨學科課程。如周杰倫的《青花瓷》就可以與相關美術、語文內容整合,通過美術作品感受青花瓷的曼妙和美麗,通過語文朗讀以及理解感受歌詞的魅力和意境。
式中,p和q分別為兩個離散概率分布,t和v分別為兩組不同的目標框位置標注,m和n分別為類別和目標框的總數,smoothL1()表達式為:
如圖1所示,為了在原有的舊類知識基礎上融入新的知識,同時避免災難性遺忘,基于第1.2節(jié)中定義的指標和方法進行增量模型訓練,流程如下:
1)訓練教師模型T。與舊類數據集相對應,教師模型的輸出層神經元個數為|Co|+1,其中,|Co|為舊類目標的個數,“1”為背景類。將訓練完畢后的以上模型作為教師模型T和初始的學生模型。
2)構建學生模型S。將拷貝得到的學生模型輸出層神經元個數修改為C+1,其中,C為總目標數量,“1”表示背景類。隨機初始化輸出層中新添加神經元的權重。修改后的學生模型S將參與蒸餾訓練。
3)增量訓練?;?)中的T和2)中的S構成T–S知識蒸餾架構,進行第1.2.2節(jié)中提出的蒸餾方法完成增量模型訓練。
通過第1.3節(jié)所述增量訓練流程所得到的學生模型的總體計算和存儲開銷與原教師模型幾乎相同,避免了獨立訓練和使用多個檢測不同種類目標的模型所帶來的較高資源開銷。但是,邊緣側設備往往資源較為受限。為有效降低推理過程中的計算和存儲開銷,可在知識蒸餾前對教師模型執(zhí)行基于剪枝技術的壓縮操作,即圖1中的步驟③。
本文在模型壓縮階段使用的是基于L1范數的通道剪枝算法[20],主要原因如下:1)通道剪枝屬于結構化剪枝,其實現不依賴于任何稀疏卷積計算庫和專門設計的硬件;2)實現較為簡單,表征通道重要性的L1范數值可以直接通過計算獲得,無需額外操作;3)該剪枝算法可以在壓縮的同時,有效地維持原模型的推理精度[20]。
使用Python 3.6.9開發(fā)語言在PyTorch 1.1.0深度學習框架上進行模型構建和實驗,選擇PASCAL VOC 2007作為數據集,該數據集共包含了20個類別的圖像數據。訓練過程中,使用了隨機梯度下降法(SGD)作為反向傳播算法,SGD的動量為0.9,初始學習率為0.000 1。在對未壓縮模型的增量訓練中,共迭代20輪次,其中,每迭代10輪次,學習率下降為當前的0.1倍;在對壓縮后模型的增量訓練中,共迭代30輪次,其中,每迭代5輪次,學習率下降為當前的0.5倍。本文采用mAP(mean average precision)[21]衡量模型準確度,采用FLOPS(floating point operations per second)衡量模型的計算量。
為了驗證本文方法在新類出現時的有效性,設置了不同的實驗,其中涉及到的實驗組別及訓練方法含義如表1所示。
表1 實驗組別Tab.1 Experiment groups
1)單次增加一個類
為了驗證本文提出的方法在單次增加一個新類別時的有效性,一次性使用前19個類訓練教師網絡,再加入第20個類進行訓練。圖2展示了未壓縮模型單次增加一個類的mAP的對比實驗結果。如圖2所示:對學生模型微調后,舊類的mAP從70.8降到18.4。與其他指標和方法對比,本文提出的增量學習方法在舊類別目標和總目標上均維持了最高的mAP,降低了災難性遺忘問題對舊類別的影響,同時獲得了較高的新類別mAP。
圖2 單次增加一個類的實驗結果Fig.2 Experimental results of adding a class
2)單次增加多個類
圖3展示了未壓縮模型單次增加多個類的mAP的對比實驗結果。如圖3所示,未進行知識蒸餾的訓練中舊類的mAP從72.1降為7.2。本文提出的增量學習方法得到的實驗結果在總目標的mAP結果上達到了最優(yōu),同時在舊類和新類上的檢測mAP也優(yōu)于絕大多數方法,驗證本文提出的方法在單次增加多個新類別時的有效性。
圖3 單次增加多個類的實驗結果Fig.3 Experimental results of adding multiple classes
3)逐步增加多個類
使用前一次訓練(如+D(16))得到模型作為當前訓練的教師模型(如+D(17))。表2展示了未壓縮模型逐步增加多個類的mAP的對比實驗結果。
表2 逐步增加多個類的實驗結果Tab.2 Experimental results of gradually adding multiple classes
如表2所示,直接訓練會造成災難性遺忘問題,舊類別目標的mAP從17.1快速降到8.8,總目標從17.9快速降到10.0。與其他方法相比,本文提出的增量學習方法在逐步增加多個類時,維持了相對較高的舊類、新類和總目標mAP,舊類的mAP在59.5~70.7之間,新類的mAP在27.4~42.3之間,而總目標mAP在58.6以上,這說明提出的ILMIL方法使學生模型額外學習到了教師模型的中間層Stage4、Stage5的特征知識,以及本文設計的目標函數所包含的硬損失、軟損失和提示損失起到了關鍵作用。
4)超參數γ的影響
圖4展示了超參數γ的不同取值對mAP的影響。γ作為超參數對式(1)中的提示損失和其他損失進行平衡,從而影響學生模型在各個類別上的檢測mAP。以單次增加一個類為例進行實驗。如圖4所示:將γ設為1時,蒸餾訓練既使學生模型沒有忘記舊類的知識,也學習到了新類的信息;模型對舊類和總類的檢測mAP最高,對新類的檢測mAP居中。因此本文實驗中均將該參數值設定為1。
圖4 參數γ的影響Fig.4 Influence of parameter γ
1)構建學生模型
構建了4個不同壓縮率的模型,圖5以單次增加一個類為例,展示了1個原始模型和4個壓縮模型的參數量和計算量。兩個實驗場景使用的原始模型和壓縮模型的參數量和計算量與圖5中的數據一致。其中,GFLOPS(giga floating point operations per second)表示109FLOPS。
如圖5所示:原始模型的參數量為130.48 MB,計算量為728.32 GFLOPS。學生模型1的壓縮比例為18.2%,其參數量為106.8 MB,計算量為616.3 GFLOPS;學生模型2的壓縮比例為29.9%;學生模型3的壓縮比例為35.6%,參數量和計算量逐步降低;學生模型4具有最大的壓縮比例46.8%,其參數量為69.4 MB,計算量為406.8 GFLOPS。
圖5 模型參數量和計算量Fig.5 Amount of model parameters and computation
2)單次增加一個類
圖6展示了非壓縮模型與4個學生模型對應的壓縮率取值,以及在增加一個類后對應的mAP的實驗結果。如圖6所示:非壓縮模型在舊類、新類和總類上的檢測mAP均最高。隨著壓縮比例不斷升高,壓縮模型在各類上的檢測精度均在緩慢降低,其中,以總類mAP為例,非壓縮模型為68.7,最低壓縮比例為18.2%的模型1為65.7,最高壓縮比例為46.8%的模型4為59.4??傮w來看,利用第1.4節(jié)介紹的增量訓練流程既可有效降低目標檢測模型的復雜度,也可有效緩解對舊類別知識的災難性遺忘現象,在一定mAP損失內,采用的模型壓縮方法極大地降低了模型的大小。
圖6 壓縮后增加一個類的實驗結果Fig.6 Experimental results of adding a class after compression
3)單次增加多個類
圖7展示了非壓縮模型與4個學生模型對應的壓縮率取值,以及在增加多個類后對應的mAP的實驗結果。如圖7所示:隨著模型壓縮比例的增大,在各類上的檢測mAP總體呈下降趨勢。從各模型對總類的檢測mAP來看,非壓縮模型為61.5,最低壓縮比例為18.2%的模型1為61.3,最高壓縮比例為46.8%的模型4為59.8??傮w來看,在目標檢測模型復雜度降低的同時,壓縮后的模型的mAP損失降低在可接收范圍內,只有0.2~1.7,且在增量過程中有效緩解了災難性遺忘現象,說明本文所提出的增量學習方法在壓縮率較大,模型參數量減少的情況下,依然能有效地學習到教師模型的中間層信息,保證了模型的性能。
圖7 壓縮后增加多個類的實驗結果Fig.7 Experimental results of adding multiple classes after compression
在具備目標檢測能力的物聯網設備不斷增加,從而導致網絡邊緣數據爆炸式增長的場景下,針對目標檢測實際應用中深度學習所需的訓練數據及其類別難以一次性完全獲得的實際問題,考慮到網絡邊緣設備的資源限制,本文提出了一種基于知識蒸餾的目標檢測模型增量深度學習方法。首先,提出了包含多個網絡中間層知識的蒸餾指標;然后,在此基礎上提出了相應的增量模型訓練方法,該方法可進一步與模型剪枝壓縮技術相結合來適應邊緣設備的資源能力;最后,基于PASCAL VOC 2007目標檢測數據集進行了在多種不同增量組合方式和模型訓練方式下的對比實驗。實驗結果表明,本文所提出的增量學習方法能夠有效地避免和緩解災難性遺忘現象的發(fā)生,維持較高的目標檢測性能。通過與剪枝技術相結合,可進一步減少模型參數大小和計算總量,便于在邊緣設備上部署和使用。對于未來的研究工作:一個方向是,準備通過在更多的DNN模型和目標檢測數據集中的評估來完善ILMIL的方法設計;另一個方向是,采用ILMIL方法解決其他相關類型的任務,例如,在圖像分類[22]中結合內存高效的增量學習方法[23]和推理高效的早期退出[24]方法來解決遺忘問題,以及結合少樣本學習來完成圖像分割[25]中的增量學習任務等等。