ICCV 2021|超越MobileNet V3 !詳解SkipNet+Bias Loss=輕量化模型新的里程碑

極市導(dǎo)讀
本文提出了一個有效的神經(jīng)結(jié)構(gòu)SkipNet模型,以增加數(shù)據(jù)點的數(shù)量與大量獨特的描述特征。在資源受限的條件下,SkipNet模型在ImageNet分類任務(wù)上達到了最先進的性能。>>加入極市CV技術(shù)交流群,走在計算機視覺的最前沿

1 簡介
近年來,Compact卷積神經(jīng)網(wǎng)絡(luò)(CNNs)的性能有了顯著的提高。然而,在參數(shù)眾多的情況下,它們?nèi)匀粺o法提供與普通CNN相同的預(yù)測能力。這些層捕獲的多樣且豐富的特征是這些CNN的一個重要特征。然而,大型CNN和小型CNN在這一特性上的差異很少被研究。在Compact CNN中,由于參數(shù)數(shù)量有限,不太可能獲得豐富的特征,特征多樣性成為本質(zhì)特征。在模型推斷期間,從數(shù)據(jù)點派生的激活映射中呈現(xiàn)的不同特征可能表明存在一組惟一描述符,這是區(qū)分不同類的對象所必需的。相比之下,特征多樣性較低的數(shù)據(jù)點可能無法提供足夠數(shù)量的描述符來進行有效預(yù)測;作者稱之為隨機預(yù)測。隨機預(yù)測會對優(yōu)化過程產(chǎn)生負面影響,并損害最終性能。

本文提出通過重塑標準交叉熵來解決隨機預(yù)測帶來的問題,使其偏向具有有限數(shù)量獨特描述特征的數(shù)據(jù)點。本文所提出的新型Bias Loss將訓(xùn)練重點放在一組有價值的數(shù)據(jù)點上,防止大量學(xué)習特征差的樣本誤導(dǎo)優(yōu)化過程。此外,為了說明多樣性的重要性,作者提出了一系列SkipNet模型,其體系結(jié)構(gòu)增加了最后一層的唯一描述符的數(shù)量。實驗表明,所提出的損失函數(shù)優(yōu)于交叉熵損失。此外,與MobileNetV3 Large相比,Skipnet-M在相似的計算條件下,在ImageNet上分類準確率提高了1%。

總結(jié)起來,本文的貢獻有3個方面:
設(shè)計了損失函數(shù),以減少隨機預(yù)測在Compact CNN優(yōu)化中的誤導(dǎo); 提出了一個有效的神經(jīng)結(jié)構(gòu)SkipNet模型,以增加數(shù)據(jù)點的數(shù)量與大量獨特的描述特征; 在資源受限的條件下,SkipNet模型在ImageNet分類任務(wù)上達到了最先進的性能。
2 相關(guān)工作
2.1 Mobile Architectures
在已經(jīng)開發(fā)的幾種CNN架構(gòu)中,MobileNet和ShuffleNet系列是比較優(yōu)秀的工作,因為他們具有好性能的同時實現(xiàn)了更少的FLOPs。MobileNetV2引入了inverted residual blocks,以改進MobileNetV1的性能。此外,MobileNetV3利用NAS(神經(jīng)體系結(jié)構(gòu)搜索)技術(shù),以更少的FLOPs實現(xiàn)更高的性能。ShuffleNet引入了通道shuffle操作,以提高通道組內(nèi)的信息流動。ShuffleNetV2進一步提高了硬件上的實際速度。盡管用很少的flop實現(xiàn)了高性能,但是在網(wǎng)絡(luò)的最后一層保持獨特描述特性的重要性一直沒有得到很好的利用。為此,作者提出了SkipNet體系結(jié)構(gòu),該體系結(jié)構(gòu)旨在增加最后一層中唯一描述特性的數(shù)量,并減少隨機預(yù)測的數(shù)量。SkipNet與以前的高性能CNN有很多相似之處,特別是MobileNetV3中使用的inverted residual blocks和U-Net中使用的跳連的概念。作者強調(diào)通過簡單修改取得了卓越的結(jié)果,該修改不是由于設(shè)計上的創(chuàng)新,而是由于網(wǎng)絡(luò)與損失的結(jié)合。
2.2 損失函數(shù)
在許多任務(wù)中,最常見的目標函數(shù)選擇是交叉熵。然而,各種研究表明,旨在解決特定問題的損失函數(shù)的設(shè)計可以有顯著的好處。Focal loss提出對標準交叉熵進行重塑,以解決目標檢測器在訓(xùn)練過程中遇到的前景-背景類不平衡的問題。標簽平滑的機理建議在交叉熵計算中使用soft目標。這些soft目標是原始目標的加權(quán)混合,并在標簽上均勻分布。這項技術(shù)有助于防止網(wǎng)絡(luò)在圖像分類、語言翻譯和語音識別等眾多任務(wù)中出現(xiàn)過擬合。各種各樣的研究試圖解決噪音標簽造成的障礙。在reweight論文中,作者引入了加權(quán)交叉熵的變化,其中權(quán)值由多層感知器學(xué)習。這些工作的重點主要是優(yōu)化具有大量參數(shù)的模型的性能。相反,本文的損失是為了解決Compact模型中缺少參數(shù)而產(chǎn)生的問題,即隨機預(yù)測可能導(dǎo)致優(yōu)化過程中出現(xiàn)誤導(dǎo)的問題。
3 Bias Loss
本文所設(shè)計的Bias Loss是為了解決在深度卷積神經(jīng)網(wǎng)絡(luò)優(yōu)化過程中由于隨機預(yù)測而導(dǎo)致的誤導(dǎo)問題。作者認為在compact神經(jīng)網(wǎng)絡(luò)中,數(shù)據(jù)點無法提供足夠數(shù)量的獨特特征來描述物體,迫使模型產(chǎn)生隨機預(yù)測,也就是說,在沒有特征多樣性的情況下進行預(yù)測。作者在所有的實驗中,作者采用信號方差來作為多樣性的一個簡單度量,它可以表明特征圖從平均值擴散到多遠。這種選擇背后的直覺是,方差越高獲得大量獨特特征的機會就越高。對于方差計算,作者使用最后一個卷積層(在池化和dropout操作之前)的特征映射。這有助于避免在結(jié)果和估計更好的學(xué)習信號的數(shù)據(jù)點。設(shè)為卷積層的輸出,其中b為batchsize,c為輸入通道數(shù)量,h和w為張量的高度和寬度。在方差計算之前,T被展開成一個二維數(shù)組,其中。批處理中第個數(shù)據(jù)點的特征圖方差為:

其中:

此外,在損失函數(shù)中方差被縮放到[0,1]范圍內(nèi),即:

式中,在每次迭代時,Max和min分別為該批特征圖中激活量的最大值和最小值。這樣做是為了確保方差值中的異常值不會導(dǎo)致?lián)p失的大變化,也不會使模型不穩(wěn)定。此外,作者建議將關(guān)于缺乏唯一描述特征的知識注入優(yōu)化過程中,為此,作者提出了新的損失函數(shù),即Bias Loss。Bias Loss是一種動態(tài)縮放的交叉熵損失,其尺度隨著數(shù)據(jù)點方差的減小而衰減。設(shè)為特征空間,其中c為若干輸入通道,h,w為輸入數(shù)據(jù)的高度和寬度,為標簽空間,其中k為類的數(shù)量。在一個標準場景中有一個數(shù)據(jù)集,其中每個,神經(jīng)網(wǎng)絡(luò),其中θ為模型參數(shù)。通常,訓(xùn)練的目的是通過最小化訓(xùn)練集的期望損失來學(xué)習模型。一般來說,分類問題的交叉熵損失為:

其中,作者認為神經(jīng)網(wǎng)絡(luò)的輸出層是一個softmax。為了校準每個數(shù)據(jù)點對累積損失的貢獻,作者建議添加一個非線性尺度函數(shù),其目的是在低方差和高方差的數(shù)據(jù)點之間產(chǎn)生bias。bias loss定義為:

式中,α和β為可調(diào)參數(shù),v為卷積層輸出的縮放方差。下圖顯示了幾個α和β值的偏置函數(shù)。

作者注意到偏差函數(shù)的2個性質(zhì):
當方差較低時,函數(shù)值達到最小值(1?β),這些數(shù)據(jù)點的影響是向下加權(quán)的。隨著方差的增加,z(v)的值隨著數(shù)據(jù)點的影響呈指數(shù)增加。 參數(shù)α平滑地調(diào)整高方差示例的影響率。隨著α的增大,高方差數(shù)據(jù)點的影響也增大。
此外,下圖給出了基于方差和預(yù)測得分的偏差損失值。

對于正確和錯誤預(yù)測的低置信度和低方差數(shù)據(jù)點,損失是向下加權(quán)的。此外,對于高置信度和高方差的錯誤預(yù)測,它是向上加權(quán)的,因為從這類具有大量獨特特征的數(shù)據(jù)點學(xué)習,可以對優(yōu)化過程產(chǎn)生積極的影響。實驗結(jié)果表明,選擇α=0.3;β=0.3獲得最佳性能。從直觀上看,所提出的函數(shù)有助于將學(xué)習重點放在能夠提供大量獨特特征的樣本上,并減少在優(yōu)化過程中可能因隨機預(yù)測而造成的誤導(dǎo)。
4 SkipNet
作者還引入了一個新的計算塊。所提出的block可以很容易地集成到現(xiàn)有的體系結(jié)構(gòu)中,并且不需要額外的工作就可以促進向最后一層的信息流。
4.1 Skip Block
skip block想法是直接將low-level features從第一層傳遞到最后一層。塊的設(shè)計是由U-Net架構(gòu)驅(qū)動的,在自動編碼器風格的架構(gòu)中,編碼器和解碼器中具有相同空間維度的層的輸出通過skip connections連接起來。一般來說,在分類網(wǎng)絡(luò)中,層空間大小逐漸減小,無法直接使用skip connections。為了解決這一限制,作者提出了一個中間塊,它將不同空間大小的層連接起來,并利用從第一層提取的low-level特征來豐富最后一層。

如圖所示,skip block由池操作和卷積組成。首先,為了保持關(guān)鍵特征和減小空間大小,作者采用自適應(yīng)平均池化,然后采用3個卷積層。批處理歸一化(BN)和ReLU非線性應(yīng)用在每個卷積層之后,除了最后一個沒有使用ReLU的卷積層。選擇自適應(yīng)平均池化是因為它考慮了所有的特性,使得skip block可以處理所有的輸入值。卷積層參數(shù)采用了MobileNetV3中對inverted residual blocks的setting。
4.2 SkipNet
由于主要目標是增加compact神經(jīng)網(wǎng)絡(luò)中獨特描述特性的數(shù)量,同時降低計算復(fù)雜性,因此提出了一種部署skip blocks的SkipNet架構(gòu)。由于MobileNetV3優(yōu)越的性能,所以將其作為設(shè)計基準。

SkipNet(上圖)由inverted residual blocks和MobileNetV3的分類塊組成,其中包括我們的新skip塊。第一層是由15個inverted residual block進行卷積。在第一個卷積塊之后插入2個skip block(圖4),將信息傳遞給第6和第10個inverted residual block。在skip和inverted residual block之后,再應(yīng)用卷積層和全局平均池化,最終得到由dropout層和全連接層組成的分類塊。與MobileNetV3類似,SkipNet使用hard-swish非線性函數(shù)。從表2中可以看出,SkipNet在移動設(shè)備上的延遲與MobileNetV3相當。

盡管所描述的體系結(jié)構(gòu)已經(jīng)能夠保證高性能和低延遲,但在某些情況下可能需要更快的模型或更高的精度。為了提供一個完全可定制的網(wǎng)絡(luò),作者將inverted residual block中的寬度乘法器集成到skip block中以控制每層通道的數(shù)量。通過操縱寬度乘法器,可以改變整個網(wǎng)絡(luò)的寬度。這將導(dǎo)致模型大小和計算成本的變化,以及性能的變化。通常,乘法器的增加將導(dǎo)致性能和延遲的增加,反之亦然。介紹的體系結(jié)構(gòu)提供了一個基本的設(shè)計供參考,為了進一步改進,可以使用AutoML方法來調(diào)優(yōu)skip block并提高性能。
5 實驗
5.1 ImageNet Classification

5.2 Object Detection

很好的做到了速度與精度的平衡,是一個非常不錯的工作。
參考
[1].Bias Loss for Mobile Neural Networks
本文亮點總結(jié)
設(shè)計了損失函數(shù),以減少隨機預(yù)測在Compact CNN優(yōu)化中的誤導(dǎo);
提出了一個有效的神經(jīng)結(jié)構(gòu)SkipNet模型,以增加數(shù)據(jù)點的數(shù)量與大量獨特的描述特征;
在資源受限的條件下,SkipNet模型在ImageNet分類任務(wù)上達到了最先進的性能。
如果覺得有用,就請分享到朋友圈吧!
公眾號后臺回復(fù)“秋招”獲取CV干貨資源匯總~

# CV技術(shù)社群邀請函 #

備注:姓名-學(xué)校/公司-研究方向-城市(如:小極-北大-目標檢測-深圳)
即可申請加入極市目標檢測/圖像分割/工業(yè)檢測/人臉/醫(yī)學(xué)影像/3D/SLAM/自動駕駛/超分辨率/姿態(tài)估計/ReID/GAN/圖像增強/OCR/視頻理解等技術(shù)交流群
每月大咖直播分享、真實項目需求對接、求職內(nèi)推、算法競賽、干貨資訊匯總、與 10000+來自港科大、北大、清華、中科院、CMU、騰訊、百度等名校名企視覺開發(fā)者互動交流~

