超越EfficientNet!MutualNet:一種自適應(yīng)相互學(xué)習(xí)網(wǎng)絡(luò)寬度和分辨率的網(wǎng)絡(luò)
點(diǎn)擊上方“小白學(xué)視覺”,選擇加"星標(biāo)"或“置頂”
重磅干貨,第一時(shí)間送達(dá)
閱讀大概需要15分鐘
Follow小博主,每天更新前沿干貨
【導(dǎo)讀】今天給大家介紹一篇 ECCV 2020 Oral論文 ,該論文強(qiáng)調(diào)了同時(shí)考慮網(wǎng)絡(luò)寬度和輸入分辨率對(duì)有效網(wǎng)絡(luò)設(shè)計(jì)的重要性。提出了一種新的互相學(xué)習(xí)的網(wǎng)絡(luò)框架,即網(wǎng)絡(luò)寬度和輸入分辨率這兩者互相學(xué)習(xí),從而來實(shí)現(xiàn)自適應(yīng)的精度-效率之間的平衡。

論文鏈接:https://arxiv.org/abs/1909.12978
代碼地址:https://github.com/taoyang1122/MutualNet
我們提出了一種width-resolution相互學(xué)習(xí)的方法(MutualNet),根據(jù)動(dòng)態(tài)的資源約束來訓(xùn)練網(wǎng)絡(luò),這種方法在運(yùn)行時(shí)實(shí)現(xiàn)了自適應(yīng)精度-效率的平衡。我們的方法根據(jù)不同的輸入分辨率來訓(xùn)練一批具有不同寬度的子網(wǎng)絡(luò),以相互學(xué)習(xí)每個(gè)子網(wǎng)絡(luò)的多尺度表示。在不同的計(jì)算約束條件下,它在最先進(jìn)的自適應(yīng)網(wǎng)絡(luò)US-Net上始終取得更好的ImageNet top-1精度,并且比最優(yōu)的復(fù)合尺度的MobileNet和EfficientNet 的性能還高出1.5%。該方法在COCO目標(biāo)檢測(cè)和實(shí)例分割以及遷移學(xué)習(xí)上也得到了驗(yàn)證。令人驚訝的是,MutualNet的訓(xùn)練策略也可以提高單個(gè)網(wǎng)絡(luò)的性能,在效率(GPU搜索時(shí)間:15000 vs. 0)和準(zhǔn)確性(ImageNet: 77.6% vs. 78.6%),這兩方面都顯著超過了AutoAugmentation。
深度神經(jīng)網(wǎng)絡(luò)在多項(xiàng)感知任務(wù)上都很成功。然而,深度網(wǎng)絡(luò)通常需要大量的計(jì)算資源,這使得它們很難部署在移動(dòng)設(shè)備和嵌入式系統(tǒng)上。這激發(fā)了人們?nèi)パ芯?,如何設(shè)計(jì)出更高效的卷積模塊或裁剪掉不重要的網(wǎng)絡(luò)連接,來降低神經(jīng)網(wǎng)絡(luò)中的冗余。然而,這些工作忽略了計(jì)算成本是由由網(wǎng)絡(luò)規(guī)模和輸入規(guī)模共同決定的。只想著降低網(wǎng)絡(luò)的大小是沒法實(shí)現(xiàn)最優(yōu)的準(zhǔn)確率-效率平衡的。EfficientNet 已經(jīng)考慮到了網(wǎng)絡(luò)深度、寬度和分辨率之間平衡的重要性,但是它只分別考慮了網(wǎng)絡(luò)的大小和輸入的大小。EfficientNet的論文作者針對(duì)不同配置進(jìn)行網(wǎng)格搜索,選擇性能最好的配置,同時(shí)提出在學(xué)習(xí)充分利用不同配置中嵌入的信息時(shí),應(yīng)同時(shí)考慮網(wǎng)絡(luò)規(guī)模和輸入規(guī)模。另一個(gè)阻礙深度網(wǎng)絡(luò)實(shí)際部署的問題是,資源預(yù)算(例如,電池條件)在現(xiàn)實(shí)應(yīng)用中是不同的,而傳統(tǒng)網(wǎng)絡(luò)只能在特定的限制下運(yùn)行。為了解決這個(gè)問題,SlimNets提出訓(xùn)練一個(gè)單一的模型來滿足運(yùn)行時(shí)資源預(yù)算的變化。但他們只是減少網(wǎng)絡(luò)寬度來滿足更低的資源預(yù)算。因此,隨著計(jì)算資源的減少,模型的性能會(huì)急劇下降。
在這里,我們提供一個(gè)具體的例子來說明在輸入分辨率和網(wǎng)絡(luò)寬度對(duì)于實(shí)現(xiàn)更好的精度-效率平衡的重要性。具體來說,為了在MobileNet v1 backbone上滿足動(dòng)態(tài)資源約束從13到569 MFLOPs ,US-Net 在面對(duì)輸入是224×224224\times 224224×224的圖片時(shí),所需的網(wǎng)絡(luò)寬度在[0.05,1.0],而這個(gè)要求也可以在{224,192,160,128}的范圍內(nèi)調(diào)節(jié)輸入分辨率,而網(wǎng)絡(luò)寬度在[0.25,1.0]×來得到滿足。作者將第二個(gè)模型叫做US-Net+。如圖1所示,推理時(shí)我們將不同的分辨率和網(wǎng)絡(luò)寬度結(jié)合,可以實(shí)現(xiàn)更優(yōu)的準(zhǔn)確率-效率平衡。


基于上述觀察,作者提出了一個(gè)相互學(xué)習(xí)的方法,將網(wǎng)絡(luò)寬度和輸入分辨率融入到一個(gè)統(tǒng)一的學(xué)習(xí)框架內(nèi)。如圖2所示,我們的框架為不同的子網(wǎng)絡(luò)提供不同的輸入分辨率。由于子網(wǎng)絡(luò)之間共享權(quán)值,每個(gè)子網(wǎng)絡(luò)可以學(xué)習(xí)其他子網(wǎng)絡(luò)共享的知識(shí),從而可以從網(wǎng)絡(luò)尺度和輸入分辨率中獲取多尺度表示。表1提供了我們的框架與以前工作的比較。
綜上所述,我們作出的貢獻(xiàn)如下:
本文強(qiáng)調(diào)了輸入分辨率對(duì)有效網(wǎng)絡(luò)設(shè)計(jì)的重要性。以往的工作要么忽略它,要么將其脫離了網(wǎng)絡(luò)結(jié)構(gòu)而單獨(dú)來看待它。相反,我們將網(wǎng)絡(luò)寬度和輸入分辨率嵌入到一個(gè)統(tǒng)一的互學(xué)習(xí)框架中,從而學(xué)習(xí)一個(gè)深度神經(jīng)網(wǎng)絡(luò)(MutualNet),它可以在準(zhǔn)確率-效率之間實(shí)現(xiàn)自適應(yīng)的平衡。
我們進(jìn)行了大量的實(shí)驗(yàn)來證明MutualNet的有效性。在不同資源約束條件下,在不同的網(wǎng)絡(luò)結(jié)構(gòu)、數(shù)據(jù)集、任務(wù)上,它的性能明顯優(yōu)于單獨(dú)訓(xùn)練的網(wǎng)絡(luò)和US-Net。據(jù)我們所知,本文應(yīng)該是第一個(gè)在目標(biāo)檢測(cè)和實(shí)例分割任務(wù)上對(duì)任意約束自適應(yīng)網(wǎng)絡(luò)做benchmark的。
作者進(jìn)行了充分的消融實(shí)驗(yàn),全面分析了本文提出來的相互學(xué)習(xí)方法。進(jìn)一步證明了該框架可以作為即插即用策略來提高單個(gè)網(wǎng)絡(luò)的性能,其性能顯著優(yōu)于流行的性能提升方法,如數(shù)據(jù)增廣, SENet 和知識(shí)蒸餾等。
該框架是一個(gè)通用的訓(xùn)練機(jī)制,與模型無關(guān)。它可以用在任何的網(wǎng)絡(luò)上,而無需調(diào)整其結(jié)構(gòu)。這使得它與其它SOTA技術(shù)可以兼容(例如,神經(jīng)結(jié)構(gòu)搜索(NAS),AutoAugmentation)。
不同分辨率包含不同的信息。作者想利用該特性,學(xué)到魯棒的特征表示和更優(yōu)的寬度-分辨率平衡。US-Net里的sandwich rule 可以看作為相互學(xué)習(xí)的一個(gè)機(jī)制,協(xié)作學(xué)習(xí)一組網(wǎng)絡(luò)。由于子網(wǎng)絡(luò)之間共享權(quán)重,協(xié)同優(yōu)化,它們的知識(shí)可以互相遷移。較大的網(wǎng)絡(luò)能夠利用較小網(wǎng)絡(luò)的特征。同樣,較小網(wǎng)絡(luò)也可以受益于較大網(wǎng)絡(luò)的特征。因此,作者給各子網(wǎng)絡(luò)輸入不同的分辨率輸入。通過共享知識(shí),每個(gè)子網(wǎng)絡(luò)都可以獲取多尺度表示。

作者在上圖2中提供了一個(gè)例子,來介紹該框架。作者訓(xùn)練了一個(gè)網(wǎng)絡(luò),其寬度范圍從0.25到1.0。作者首先按照sandwich rule選擇了2個(gè)子網(wǎng)絡(luò),即最小的(0.25×),最大的(1.0×),和2個(gè)隨機(jī)寬度比值的α1,α2∈(0.25,1),然后,與傳統(tǒng)的用224×224作為輸入的ImageNet訓(xùn)練不同,作者將輸入圖像縮放到{224,196,160,128},將它們輸入進(jìn)不同的子網(wǎng)絡(luò)中。作者將子網(wǎng)絡(luò)的權(quán)重表示為W_{0,w}。其中w∈(0,1]是子網(wǎng)絡(luò)的寬度,0:w意思是子網(wǎng)絡(luò)會(huì)采用原網(wǎng)絡(luò)每一層權(quán)重的w×100%, 代表一個(gè)r×r輸入圖片。然后表示子網(wǎng)絡(luò)的輸出,寬度是w,分辨率是r×r。對(duì)于最大的子網(wǎng)絡(luò)(即圖2中的原網(wǎng)絡(luò)),作者總是用最高的分辨率輸入和ground truth標(biāo)簽來訓(xùn)練它。原網(wǎng)絡(luò)的損失是:
對(duì)于其它的子網(wǎng)絡(luò),作者隨機(jī)從{224,196,160,128}中選擇一個(gè)輸入分辨率,用原網(wǎng)絡(luò)的輸出來訓(xùn)練它。第i個(gè)子網(wǎng)絡(luò)的損失是:
其中KLDiv是 Kullback-Leibler散度。原網(wǎng)絡(luò)和子網(wǎng)絡(luò)的總的損失是:
用最高分辨率來訓(xùn)練原網(wǎng)絡(luò)的原因是,最高分辨率包含著更多的細(xì)節(jié)信息。同樣,原網(wǎng)絡(luò)也具有最強(qiáng)的學(xué)習(xí)能力,獲取圖像數(shù)據(jù)的判別信息。
Mutual learning from width and resolution. 這一部分,作者解釋了為何該框架能夠從不同的寬度和分辨率中相互學(xué)習(xí)。為了展示簡(jiǎn)單些,作者只考慮了2個(gè)網(wǎng)絡(luò)寬度,0.4×,0.8×,2個(gè)分辨率128,192。如圖3所示,0.4×的子網(wǎng)絡(luò)選擇輸入分辨率為128,而0.8×的子網(wǎng)絡(luò)選擇輸入分辨率為192。然后,作者將0.4×的子網(wǎng)絡(luò)定義為
將0.8×的子網(wǎng)絡(luò)定義為
由于0.8×的子網(wǎng)絡(luò)與0.4×的子網(wǎng)絡(luò)共享權(quán)重,我們可以將它的梯度拆分為:

其中⊕是向量concat操作。因?yàn)檫@2個(gè)子網(wǎng)絡(luò)的梯度在訓(xùn)練時(shí)會(huì)積累起來,總的梯度計(jì)算如下:
因此,0.4×的子網(wǎng)絡(luò)的梯度就是,由2部分組成。第一部分來自于它自己(0:0.4×),分辨率是128。第二部分來自于0.8×子網(wǎng)絡(luò)(即0:0.4×部分),分辨率是192。因此,子網(wǎng)絡(luò)能夠從不同的輸入分辨率和網(wǎng)絡(luò)尺度中獲取多尺度特征表示。因?yàn)榫W(wǎng)絡(luò)寬度的隨機(jī)選取,該框架的每個(gè)子網(wǎng)絡(luò)都可以學(xué)習(xí)多尺度特征表示。
模型推理:訓(xùn)練好的模型可以在不同的寬度-分辨率配置上執(zhí)行。目的是在給定資源下找到最佳的配置。一個(gè)簡(jiǎn)單的實(shí)現(xiàn)方式就是query table。特別地,作者用step-size 0.05×來從0.25×到1.0×中選取網(wǎng)絡(luò)的寬度,從{224,192,160,128}中選擇分辨率。作者在驗(yàn)證集上測(cè)試了所有的寬度-分辨率配置,根據(jù)約束條件(FLOPs或延遲)選擇最佳的一個(gè)。因?yàn)闊o需重復(fù)訓(xùn)練,整個(gè)流程只要訓(xùn)練一次。
在ImageNet數(shù)據(jù)集上,作者將MutualNet和US-Net等獨(dú)立訓(xùn)練的網(wǎng)絡(luò)進(jìn)行了比較。作者也在兩個(gè)輕量級(jí)模型MobileNetV1和MobileNetV2上評(píng)價(jià)了該框架。這2個(gè)網(wǎng)絡(luò)也分別代表了非殘差和殘差結(jié)構(gòu)。
作者首先在MobileNetV1和MobileNetV2主干網(wǎng)絡(luò)上將本文框架與US-Net做比較。圖4是準(zhǔn)確率-FLOPs的曲線??梢钥吹奖疚目蚣芤恢币萓S-Net效果好。在較小的計(jì)算開支下,MutualNet 取得了顯著的提升。這是因?yàn)?,MutualNet 既考慮了網(wǎng)絡(luò)寬度,也考慮了輸入分辨率,能夠在二者間找到平衡。例如,假設(shè)資源限制在150 MFLOPs,給定輸入分辨率為224,US-Net 必須降低其網(wǎng)絡(luò)寬度到0.5×,而MutualNet 可以通過平衡的配置(0.7×?160) 來滿足該預(yù)算,實(shí)現(xiàn)更高的準(zhǔn)確率(65.6%(MutualNet) vs. 62.9%(US-Net),如圖4a)。另一方面,MutualNet 能夠?qū)W習(xí)多尺度特征,進(jìn)一步提升每個(gè)子網(wǎng)絡(luò)的性能。可以看到,即使對(duì)于相同的配置(1.0×?224),MutualNet 也要超過US-Net,即在MobileNetV1上 72.4%(MutualNet) vs. 71.7% (US-Net),在MobileNetV2上 72.9%(MutualNet) vs. 71.5% (US-Net),如圖4。

與單獨(dú)訓(xùn)練的網(wǎng)絡(luò)進(jìn)行比較,效果圖展示:


EfficientNet 指出了平衡網(wǎng)絡(luò)寬度、深度、分辨率的重要性。但是它是單獨(dú)考慮這些因素。作者在這3個(gè)維度上使用網(wǎng)格搜索法,單獨(dú)地訓(xùn)練每個(gè)配置,根據(jù)約束條件來找到最佳的配置。而MutualNet則是在一個(gè)統(tǒng)一的框架中融入寬度和分辨率。當(dāng)資源約束在 2.3 BFLOPs,作者用最佳的EfficientNet來改造MobileNetV1,并與MutualNet進(jìn)行比較。具體效果顯示如下:

在目標(biāo)檢測(cè)和分割任務(wù)上,多尺度數(shù)據(jù)增廣也很流行。首先,作者從原則方面介紹MutualNet與多尺度數(shù)據(jù)增廣不同。其次,本文方法要遠(yuǎn)比多尺度數(shù)據(jù)增廣好。具體實(shí)驗(yàn)效果如下:

作者也在COCO數(shù)據(jù)集和實(shí)例分割任務(wù)上做了評(píng)測(cè)。基于Mask-RCNN-FPN和以VGG-16作為主干網(wǎng)絡(luò)的MMDetection toolbox做的實(shí)驗(yàn)。


本文強(qiáng)調(diào)了同時(shí)考慮網(wǎng)絡(luò)寬度和輸入分辨率對(duì)有效網(wǎng)絡(luò)設(shè)計(jì)的重要性。提出了一種新的網(wǎng)絡(luò)互相學(xué)習(xí)框架,在這里即網(wǎng)絡(luò)寬度和輸入分辨率之間的相互學(xué)習(xí),來實(shí)現(xiàn)自適應(yīng)的精度-效率之間的trade-off。大量的實(shí)驗(yàn)表明,它可以顯著地提高每個(gè)觸發(fā)器在各種數(shù)據(jù)集和任務(wù)上的推理性能?;ハ鄬W(xué)習(xí)是提高單網(wǎng)絡(luò)性能的有效訓(xùn)練策略。該框架的通用性使其能夠很好地轉(zhuǎn)換到其它問題上。通過向框架中添加其他網(wǎng)絡(luò)維度,例如網(wǎng)絡(luò)深度和位寬,這也使得邏輯擴(kuò)展很容易獲得。該框架還可以擴(kuò)展到視頻輸入和3D神經(jīng)網(wǎng)絡(luò),在其中便可以利用空間和時(shí)間信息。(感覺這個(gè)套路后續(xù)可出好多論文
)
好消息!
小白學(xué)視覺知識(shí)星球
開始面向外開放啦??????
下載1:OpenCV-Contrib擴(kuò)展模塊中文版教程 在「小白學(xué)視覺」公眾號(hào)后臺(tái)回復(fù):擴(kuò)展模塊中文教程,即可下載全網(wǎng)第一份OpenCV擴(kuò)展模塊教程中文版,涵蓋擴(kuò)展模塊安裝、SFM算法、立體視覺、目標(biāo)跟蹤、生物視覺、超分辨率處理等二十多章內(nèi)容。 下載2:Python視覺實(shí)戰(zhàn)項(xiàng)目52講 在「小白學(xué)視覺」公眾號(hào)后臺(tái)回復(fù):Python視覺實(shí)戰(zhàn)項(xiàng)目,即可下載包括圖像分割、口罩檢測(cè)、車道線檢測(cè)、車輛計(jì)數(shù)、添加眼線、車牌識(shí)別、字符識(shí)別、情緒檢測(cè)、文本內(nèi)容提取、面部識(shí)別等31個(gè)視覺實(shí)戰(zhàn)項(xiàng)目,助力快速學(xué)校計(jì)算機(jī)視覺。 下載3:OpenCV實(shí)戰(zhàn)項(xiàng)目20講 在「小白學(xué)視覺」公眾號(hào)后臺(tái)回復(fù):OpenCV實(shí)戰(zhàn)項(xiàng)目20講,即可下載含有20個(gè)基于OpenCV實(shí)現(xiàn)20個(gè)實(shí)戰(zhàn)項(xiàng)目,實(shí)現(xiàn)OpenCV學(xué)習(xí)進(jìn)階。 交流群
歡迎加入公眾號(hào)讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動(dòng)駕駛、計(jì)算攝影、檢測(cè)、分割、識(shí)別、醫(yī)學(xué)影像、GAN、算法競(jìng)賽等微信群(以后會(huì)逐漸細(xì)分),請(qǐng)掃描下面微信號(hào)加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三 + 上海交大 + 視覺SLAM“。請(qǐng)按照格式備注,否則不予通過。添加成功后會(huì)根據(jù)研究方向邀請(qǐng)進(jìn)入相關(guān)微信群。請(qǐng)勿在群內(nèi)發(fā)送廣告,否則會(huì)請(qǐng)出群,謝謝理解~


