人工智能正在驅(qū)動新一輪的商業(yè)變革,而算法技術(shù)則是推動核心底層技術(shù)的重要力量。算法崛起時代,技術(shù)浪潮可謂一日千里,算法工程師也只有不斷精進自身技術(shù),才能與時俱進、馭浪前行。近日,奇點云算法工程師三角肌在目標(biāo)檢測算法領(lǐng)域又有新突破。
成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),滎經(jīng)企業(yè)網(wǎng)站建設(shè),滎經(jīng)品牌網(wǎng)站建設(shè),網(wǎng)站定制,滎經(jīng)網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,滎經(jīng)網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。摘要
卷積神經(jīng)網(wǎng)絡(luò)對目標(biāo)檢測的精度有著顯著的提升,并且隨著卷積神經(jīng)網(wǎng)絡(luò)的深度加深,對目標(biāo)檢測精度提升也越大,但是也需要更多的浮點計算。許多研究者通過知識蒸餾的方法,通過把一個更深更大的教師網(wǎng)絡(luò)中的知識轉(zhuǎn)移到一個小的學(xué)生網(wǎng)絡(luò)中,以提高學(xué)生網(wǎng)絡(luò)在目標(biāo)檢測中的效果。而大部分知識蒸餾的方法都需要設(shè)計復(fù)雜的代價函數(shù),并且多數(shù)針對兩步目標(biāo)檢測算法,本文針對一步目標(biāo)檢測算法提出一個干凈有效的知識蒸餾方案。將教師網(wǎng)絡(luò)生成的特征層作為真實樣本,學(xué)生網(wǎng)絡(luò)生成的特征層做為假樣本,并對兩者做生成對抗訓(xùn)練,以提高學(xué)生網(wǎng)絡(luò)在一步目標(biāo)檢測中的表現(xiàn)。
1 Introduction
近些年來,隨著目標(biāo)檢測算法的發(fā)展,研究者們發(fā)現(xiàn)利用更深更大的卷積神經(jīng)網(wǎng)絡(luò)作為骨架,對目標(biāo)檢測算法的精度提升越大。并且隨著目標(biāo)檢測算法的檢測精度提升,使視覺檢測算法逐漸從非關(guān)鍵性領(lǐng)域,走向關(guān)鍵性領(lǐng)域(比如無人駕駛和醫(yī)療等領(lǐng)域)。但是為了保證檢測精度,不得不使用更大的卷積神經(jīng)網(wǎng)絡(luò)作為骨架,造成檢測速度下降,計算設(shè)備成本增加。因此許多研究者在確保檢測精度的前提下,提高檢測速度提出了很多方法和總結(jié),如通過深度分離卷積 [1,2],或者通過點群卷積(pointwise group convolution)和通道混洗(channel shuffle)[3, 4] 來降低卷積神經(jīng)網(wǎng)絡(luò)浮點運算次數(shù)的方法,在保證骨架網(wǎng)絡(luò)精度和容量的情況下減少計算量。雖然獲得可觀的提速效果,但是這些方法需要精心設(shè)計和調(diào)整骨架網(wǎng)絡(luò)。很多研究者認為更深的骨架網(wǎng)絡(luò)雖然有著更大的網(wǎng)絡(luò)容量,因此在圖像分類、目標(biāo)檢測等任務(wù)上有著更優(yōu)秀的表現(xiàn)。但是一些特定的任務(wù)并不需要這么大的容量,所以在保證卷積神經(jīng)網(wǎng)絡(luò)精度的情況和下,對卷積神經(jīng)網(wǎng)絡(luò)做壓縮、量化、通道減枝等[5, 6, 7, 8, 9]。
另一方面,有關(guān)于知識蒸餾的工作表明[10, 11, 12, 13],使用一個更深更大的模型,并且在充分訓(xùn)練完畢后作為teacher net,然后再選取一個比較淺的模型作為student net,最后使用teacher net輸出的結(jié)果或者中間結(jié)果作為soft label結(jié)合真實樣本的true label同時訓(xùn)練student net,可以極大的提升student net在特定任務(wù)上的表現(xiàn)。但是大部分這些方法都需要設(shè)計非常復(fù)雜的代價函數(shù)和訓(xùn)練方式,并且這些方法多用于圖像分類和兩步目標(biāo)檢測等,極少用于一步目標(biāo)檢測。因此,我們需要一個更加簡單而有效,并且可以適用于一步目標(biāo)檢測的知識蒸餾方式。本文提出一種簡單而有效知識蒸餾神經(jīng)網(wǎng)絡(luò)架構(gòu),并且可以明顯的提升student net在一步目標(biāo)檢測網(wǎng)絡(luò)的表現(xiàn)。和常規(guī)的知識蒸餾方式不同的是,我們參考對抗生成的神經(jīng)網(wǎng)絡(luò)架構(gòu)[14],將重型目標(biāo)檢測神經(jīng)網(wǎng)絡(luò)和輕型目標(biāo)檢測神經(jīng)網(wǎng)絡(luò)的骨架分別拆分出來作為teacher net和student net,然后把teacher net 生成的feature map作為真實樣本,而student net則作為生成器,并把student net生成的feature map作為假樣本,最后根據(jù)真實樣本和假樣本設(shè)計一個神經(jīng)網(wǎng)絡(luò)作為判別器,做生成對抗訓(xùn)練。
我們的貢獻主要有兩點:
1 提出一種不需要設(shè)計復(fù)雜的代價函數(shù)的網(wǎng)絡(luò)架構(gòu),并且可以適用于一步目標(biāo)檢測。
2 利用對抗生成網(wǎng)絡(luò)架構(gòu),避免復(fù)雜的知識遷移設(shè)計,讓student net自動的從teacher net中獲取暗知識。
2 Related Works
深度學(xué)習(xí)目標(biāo)檢測算法架構(gòu)主要分為兩種,一種是一步檢測,比如Liu W等人提出的SSD[15],直接通過通過卷積神經(jīng)網(wǎng)絡(luò)回歸出物體的位置和類別,另一種是二步檢測,如girshick等人提出的fast rcnn[16],以及后來Faster-RCNN [17] and R-FCN [18]等,首先通過卷積神經(jīng)網(wǎng)絡(luò)回歸候選框,最后根據(jù)候選框再次識別每個候選框的類別,并回歸出正確的位置。
網(wǎng)絡(luò)裁剪,許多研究者認為深度神經(jīng)網(wǎng)絡(luò)被過度參數(shù)化,并且有很多冗余的神經(jīng)元和連接,He Y等人認為[8],cnn每層神經(jīng)元都是稀疏的,利用lasso regression回歸找出cnn每層最有代表性的神經(jīng)元重構(gòu)該層的輸出。Zhuang Z等人[9]認為layer-by-layer進行通道剪枝會影響cnn的鑒別能力,所以通過在fine-tune和剪枝階段加入輔助loss,來保留cnn每層的鑒別能力。
網(wǎng)絡(luò)量化, Wu J等人[20]通過k-means聚類算法加速和壓縮模型的卷積層和全連接層,通過減小每層輸出響應(yīng)的估計誤差可實現(xiàn)更好的量化結(jié)果,并提出一種有效的訓(xùn)練方案抑制量化后的多層累積誤差 。Jacob B[21]等人提出將weights和inputs量化為uint8 bias量化為unit32同時訓(xùn)練期間前向時候采用量化,反向修正誤差不量化,以確保cnn表現(xiàn)的情況下提高inference速度。
知識蒸餾是一種壓縮模型并確保準確的一種方法。hinton 等人提出[2]將teacher net輸出的結(jié)果作為soft label,并提倡使用溫度交叉熵而不是L2損失。romero 等人[19]認為需要更多的unlabeled data讓student net去mimic才能使student net經(jīng)可能的接近teacher net,Chen G[12]等人在優(yōu)化2步目標(biāo)檢測網(wǎng)絡(luò)分別將teacher net的中間feature map 以及rpn/rcnn的暗知識提取出來讓student net去mimic。其他研究者也有將teacher net的attention信息給student網(wǎng)絡(luò),如Zagoruyko S[22]等人提出spatial-attention,將teacher net的熱力信息傳遞給student net。Yim J等人[23]將teacher net層與層之間的關(guān)系作為student網(wǎng)絡(luò)mimic的目標(biāo)。但是他們設(shè)計的的知識蒸餾都是要設(shè)計非常復(fù)雜的loss function,和復(fù)雜的暗知識的提取方式,并且這些方法多是在兩步目標(biāo)檢測算法中很少用于一步目標(biāo)檢測中。為了能用一個簡單有效的知識蒸餾的方式,我們參考生成對抗網(wǎng)絡(luò)的架構(gòu)方式[14]將教師網(wǎng)絡(luò)生成的特征層作為真實樣本,學(xué)生網(wǎng)絡(luò)生成的特征層做為假樣本,并對兩者做生成對抗訓(xùn)練,以提高學(xué)生網(wǎng)絡(luò)在一步目標(biāo)檢測中的表現(xiàn)。
3 Method
在本文中,我們采用一步目標(biāo)檢測算法SSD[15]作為我們的目標(biāo)檢測算法,SSD目標(biāo)檢測算法結(jié)構(gòu)主要分成兩部分,1)骨架網(wǎng)絡(luò),作為特征提取器。2)Head,在骨架網(wǎng)絡(luò)提取的特征上,檢測出目標(biāo)的類別和位置。為了能獲取更好的知識蒸餾效果,合理利用這個兩個部分至關(guān)重要。
3.1 Overall Structure
fig 1為我們算法模型的整體結(jié)構(gòu),我們首先使用一個容量更大的SSD模型,在充分訓(xùn)練后將該SSD模型拆分成骨架網(wǎng)絡(luò)和SSD-Head,其中骨架網(wǎng)絡(luò)作為teacher net,然后再挑選一個容量較小的CNN作為student net。我們把teacher net生成的多個feature map作為true sample,而student net生成的多個feature map作為fake sample,并且將true sample和fake sample送入D Net中相對應(yīng)的每個判別網(wǎng)絡(luò)(fig 2)中,同時把fake sample輸入到SSD-Head中。
3.2 Training Process
(1)
公式1中的N代表batchsize的大小,D代表判別網(wǎng)絡(luò),Teacher和Student分別代表teacher net和student net, θt、θs、θd分別代表teacher net、student net 和D Net模塊中每個判別網(wǎng)絡(luò)的weights。Lconf表示SSD中分類的損失函數(shù),Lloc表示SSD中邊界框的損失函數(shù)。
4 Experiment
在本章節(jié),我們將在PASCAL VOC中做實驗來驗證我們的方法,包含20個類別。并且我們的方法訓(xùn)練的硬件為two NVIDIA GTX 1080Ti GPUs。訓(xùn)練所用的軟件框架為gluoncv。
4.1 Training and testing data
由于時間的關(guān)系,我們訓(xùn)練使用的數(shù)據(jù)集Pascal Voc 2012trainval和Pascal Voc 2007 trainval sets,測試數(shù)據(jù)集為Pascal Voc 2007 test sets。該數(shù)據(jù)集包含檢測物體的類別和位置信息。評估標(biāo)準按照Pascal Voc競賽所約定的,通過iou=0.5時的mAP來評估模型檢測精度。而coco數(shù)據(jù)集上,使用coco 2017 trainset作為訓(xùn)練集,coco 2017 test作為測試集。
4.2 Results
我們將原生的SSD和在不同的Teacher net下知識蒸餾的SSD做比較,高可以提升student net 2.8mAP。不過有趣的是,當(dāng)teacher net為ResNet101,student net為ResNet18時,提升的效果反而不如ResNet50。而在coco上使用resnet50作為teacher net,moblinet作為student net,提升Moblient-SSD 4個mAP。
Table 1. Different student nets are not used GAN-knowledge distillation and the use of a GAN-knowledge distillation in different teacher net test results.
目前已經(jīng)將該方法使用在faster rcnn上,考慮到時間,目前僅僅在pascal voc 2007上進行測試,coco正在訓(xùn)練。
Table 2. moblienetv1 use GAN-knowledge distillation in coco.
Table 3. Teacher net為骨架網(wǎng)絡(luò)為ResNet101的faster rcnn,且使用Pascal Voc 2007 trainval作為訓(xùn)練集,在Pascal Voc 2007 test測試集上mAP為74.8+。第一行和第二行使用GAN Knowledge Distillation[1]方法,第三行為cvpr2019的 Distilling Object Detectors with Fine-grained Feature Imitation[2]的方法效果。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。