
本文作者為 Bbuf
雷鋒網(wǎng)AI科技評(píng)論按:最近何愷明團(tuán)隊(duì)在arXiv 上公布了他們發(fā)表在CVPR 2020 上的最新論文《Designing Network Design Spaces》[1]。和何愷明之前發(fā)表的大多數(shù)論文一樣,一經(jīng)公布,迅速得到眾人的關(guān)注。知乎上迅速有人提出問(wèn)題:“如何評(píng)價(jià)何愷明團(tuán)隊(duì)最新推出的RegNet?”[2]
但需要強(qiáng)調(diào)的是,這篇文章的主角是 Ilija Radosavovic,一位倫敦大學(xué)的助教;其主要研究興趣是搜索空間的優(yōu)化,這篇文章是其系列工作的第二篇。第一篇為《On Network Design Spaces for Visual Recognition》[3]。

針對(duì)最新的這項(xiàng)工作,來(lái)自廈門(mén)大學(xué)知乎名為「丶favor」的碩士生在其知乎解讀文章[4]中寫(xiě)道:
> 一句話(huà)概括就是,傳統(tǒng) NAS 方法這種基于個(gè)體估計(jì)(individual network instance)的方式(每次評(píng)估的時(shí)候采樣一個(gè)網(wǎng)絡(luò))存在以下缺陷:1)非常不靈活(各種調(diào)參大法) ;2)泛化能力差;3)可解釋性差。(搜出來(lái)的效果雖好,但是很多都是大力出奇跡,運(yùn)氣成分+1)。 因此,作者順理成章地提出了對(duì)網(wǎng)絡(luò)設(shè)計(jì)空間進(jìn)行整體估計(jì)(population estimation,意思就是所有的深度寬度之類(lèi)的最佳設(shè)計(jì)空間關(guān)系給它估計(jì)出來(lái))。非常直觀地,如果我們能得到深度(depth),寬度(width)等等一系列網(wǎng)絡(luò)設(shè)計(jì)要素關(guān)于網(wǎng)絡(luò)設(shè)計(jì)目標(biāo)的函數(shù)關(guān)系,那么我們就很輕松地知道大概多深的網(wǎng)絡(luò),多寬的網(wǎng)絡(luò)是最佳選擇。 這也就直接解決了上述三個(gè)問(wèn)題,并且這個(gè)方式實(shí)際上能反應(yīng)出更優(yōu)質(zhì)的網(wǎng)絡(luò)設(shè)計(jì)準(zhǔn)則,從而達(dá)到Designing Network Design Spaces的目的。 讀到這里,牛逼就完事了!一句話(huà)概括就是,傳統(tǒng) NAS 方法這種基于個(gè)體估計(jì)(individual network instance)的方式(每次評(píng)估的時(shí)候采樣一個(gè)網(wǎng)絡(luò))存在以下缺陷:1)非常不靈活(各種調(diào)參大法) ;2)泛化能力差;3)可解釋性差。(搜出來(lái)的效果雖好,但是很多都是大力出奇跡,運(yùn)氣成分+1)。 因此,作者順理成章地提出了對(duì)網(wǎng)絡(luò)設(shè)計(jì)空間進(jìn)行整體估計(jì)(population estimation,意思就是所有的深度寬度之類(lèi)的最佳設(shè)計(jì)空間關(guān)系給它估計(jì)出來(lái))。非常直觀地,如果我們能得到深度(depth),寬度(width)等等一系列網(wǎng)絡(luò)設(shè)計(jì)要素關(guān)于網(wǎng)絡(luò)設(shè)計(jì)目標(biāo)的函數(shù)關(guān)系,那么我們就很輕松地知道大概多深的網(wǎng)絡(luò),多寬的網(wǎng)絡(luò)是最佳選擇。 這也就直接解決了上述三個(gè)問(wèn)題,并且這個(gè)方式實(shí)際上能反應(yīng)出更優(yōu)質(zhì)的網(wǎng)絡(luò)設(shè)計(jì)準(zhǔn)則,從而達(dá)到Designing Network Design Spaces的目的。 讀到這里,牛逼就完事了!

論文鏈接:https://arxiv.org/pdf/2003.13678.pdf
首先雷鋒網(wǎng)AI科技評(píng)論認(rèn)為,這篇論文有望成為今年最熱的CV方面的工作。讀過(guò)EfficientNet的同學(xué)應(yīng)該知道網(wǎng)絡(luò)的分辨率、深度、寬度對(duì)網(wǎng)絡(luò)的性能影響是相互作用的,并且探索了在一定計(jì)算代價(jià)下如何搜索最優(yōu)模型。本文和傳統(tǒng)的網(wǎng)絡(luò)設(shè)計(jì)切入點(diǎn)不同,作者并不專(zhuān)注于設(shè)計(jì)單個(gè)網(wǎng)絡(luò)實(shí)例,而是設(shè)計(jì)”網(wǎng)絡(luò)設(shè)計(jì)空間“對(duì)整個(gè)網(wǎng)絡(luò)進(jìn)行參數(shù)化。**整個(gè)過(guò)程類(lèi)似于經(jīng)典的網(wǎng)絡(luò)手工設(shè)計(jì),但是卻將其提升到了設(shè)計(jì)空間的層次。** 基于此,本文提出了RegNet。在相同的訓(xùn)練設(shè)計(jì)和FLOPs的條件下,RegNet的精度超越了當(dāng)前最SOTA的EfficientNet,并且在GPU上的速度比EfficientNet快5倍。
# 1. 設(shè)計(jì)空間設(shè)計(jì)
我們先談?wù)勂淇傮w思路。這篇文章事實(shí)上依賴(lài)于Radosavovic在第一篇文章中引入的網(wǎng)絡(luò)設(shè)計(jì)空間概念[3]。即設(shè)計(jì)空間是一個(gè)巨大的,可能無(wú)限的模型結(jié)構(gòu)的總體。[3]的核心觀點(diǎn)是,我們可以從一個(gè)設(shè)計(jì)空間中對(duì)模型進(jìn)行抽樣,產(chǎn)生一個(gè)模型分布,然后利用經(jīng)典的統(tǒng)計(jì)工具來(lái)分析設(shè)計(jì)空間。本文注意到,這和架構(gòu)搜索(NAS)不同,架構(gòu)搜索的目標(biāo)是從空間中找到單個(gè)最佳模型。
如Figure1所示,本文使用的整體策略是漸進(jìn)式地設(shè)計(jì)原始的、相對(duì)不受約束的簡(jiǎn)化版設(shè)計(jì)空間,同時(shí)保持或者提升設(shè)計(jì)空間的質(zhì)量。每個(gè)設(shè)計(jì)步驟的目的都是發(fā)現(xiàn)設(shè)計(jì)準(zhǔn)則,從而產(chǎn)生更簡(jiǎn)單或性能更強(qiáng)的模型。

## 1.1 設(shè)計(jì)空間設(shè)計(jì)工具
先來(lái)看一下設(shè)計(jì)空間設(shè)計(jì)的工具,為了評(píng)估和對(duì)比設(shè)計(jì)空間,這里使用Radosavovic等人介紹的工具。他提出通過(guò)從設(shè)計(jì)空間采樣一組模型,并描述由此產(chǎn)生的模型誤差分布,來(lái)量化設(shè)計(jì)空間的質(zhì)量。這種方法背后的關(guān)鍵是,與使用搜索和比較兩個(gè)設(shè)計(jì)空間中的最佳模型相比,比較分布更加可靠且信息更豐富。
下面的Figure2展示了用$n=500$個(gè)抽樣模型計(jì)算的**AnyNetX**設(shè)計(jì)空間的統(tǒng)計(jì)結(jié)果。左:誤差經(jīng)驗(yàn)分布函數(shù)(EDF)是我們可視化設(shè)計(jì)空間質(zhì)量的基本工具。在圖例中,[39.0|49.0] 分別是最小誤差和平均誤差(對(duì)應(yīng)于曲線下的區(qū)域)。中間:網(wǎng)絡(luò)深度d(塊數(shù))與誤差的分布。右:第四階段(w_4)的塊寬度分布與誤差。藍(lán)色陰影區(qū)域包含 95% F 置信度的最佳模型(通過(guò)經(jīng)驗(yàn)引導(dǎo)獲得),黑色垂線是最可能的最優(yōu)值。

為了得到模型的分布,本文從設(shè)計(jì)空間中采樣了 n 個(gè)模型進(jìn)行訓(xùn)練。為了提高效率,這里主要在低計(jì)算量和低epoch的訓(xùn)練模式下進(jìn)行。特別地,在本節(jié)中使用的是4 Million FLOPs(400MF)模式,并對(duì)每個(gè)采樣的模型在ImageNet數(shù)據(jù)集上訓(xùn)練 10 個(gè)Epoch。注意到,這里雖然訓(xùn)練了很多模型,但每次訓(xùn)練都很快:在 400 MF上給 100 個(gè)模型訓(xùn)練 10 個(gè)epoch和在 4 GF下把單個(gè)ResNet-50模型訓(xùn)練 100 個(gè)epoch的時(shí)間相當(dāng)。注意,這里的FLOPs表示的是乘法和加法次數(shù),MF和GF分別代表 10^6 和 10^9個(gè)FLOPs。
和[3]一樣,這里分析設(shè)計(jì)空間質(zhì)量的主要工具是誤差經(jīng)驗(yàn)分布函數(shù)(EDF)。n 個(gè)模型的誤差EDF和誤差 e_I 由下面的公式給出:

F(e)表示錯(cuò)誤率小于 e 的模型百分比。上面的方法總結(jié)如下:
- (1) 我們首先從設(shè)計(jì)空間中抽樣和訓(xùn)練 n 個(gè)模型,獲得模型的分布。
- (2) 我們計(jì)算并繪制誤差EDFs,以評(píng)估設(shè)計(jì)空間質(zhì)量。
- (3) 我們可視化設(shè)計(jì)空間的各種屬性,并使用經(jīng)驗(yàn)準(zhǔn)則監(jiān)督。
- (4) 我們使用這些觀察結(jié)果來(lái)精細(xì)化設(shè)計(jì)空間。
## 1.2 AnyNet 設(shè)計(jì)空間
AnyNet設(shè)計(jì)空間的基本網(wǎng)絡(luò)設(shè)計(jì)如Figure3所示。

給定輸入圖像,接下來(lái)是一個(gè)包含簡(jiǎn)單主干的網(wǎng)絡(luò),再接下來(lái)是執(zhí)行大量計(jì)算的網(wǎng)絡(luò)主體,最后是預(yù)測(cè)輸出類(lèi)別的網(wǎng)絡(luò)頭。本文保持主干和頭部網(wǎng)絡(luò)盡可能簡(jiǎn)單,主要關(guān)注網(wǎng)絡(luò)網(wǎng)絡(luò)主體的結(jié)構(gòu)。可以看到這里網(wǎng)絡(luò)主體由4個(gè)階段(stage)組成,并且分辨率逐漸降低,然后每個(gè)stage里面又是由一系列相同的塊(block)組成。在這個(gè)結(jié)構(gòu)里面,可以改變的參數(shù)包括塊的數(shù)量$d_i$,塊的寬度$w_i$等。這里就完整展示了AnyNet的結(jié)構(gòu)。
然而,我們看到論文的研究幾乎都是在AnyNetX上的結(jié)果。那么AnyNetX和AnyNet又有什么區(qū)別呢?我們來(lái)看看Figure4,可以發(fā)現(xiàn)區(qū)別就是將原始的卷積換成分組卷積。

在AnyNetX上,作者旨在:1)簡(jiǎn)化設(shè)計(jì)空間的結(jié)構(gòu);2)提供設(shè)計(jì)空間的可解釋性;3)保持或提高設(shè)計(jì)空間的質(zhì)量;4)保持設(shè)計(jì)空間中模型的多樣性。
現(xiàn)在利用上節(jié)介紹的工具來(lái)進(jìn)行研究,這里將原始的不受約束的AnyNetX設(shè)計(jì)空間叫作$AnyNetX_A$。
然后論文將$AnyNetX_A$中所有階段的BottleNeck比例$b_i$都設(shè)置為同一個(gè)值$b$,并將此設(shè)計(jì)空間稱(chēng)為$AnyNetX_B$。
我們可以從Figure5左邊那張圖看到這兩個(gè)網(wǎng)絡(luò)設(shè)計(jì)空間的EDF基本上是一致的,這表示在耦合$b_i$時(shí)并沒(méi)有帶來(lái)精度損失。
然后在$AnyNetX_B$的基礎(chǔ)上將所有階段使用一樣的$g_i=g$來(lái)獲得了$AnyNetX_C$,從Figure5中間那張圖可以看出,EDF也基本不變。

接著,論文研究了$AnyNetX_C$中優(yōu)秀和不好的典型網(wǎng)絡(luò)結(jié)構(gòu),然后他們發(fā)現(xiàn)了一個(gè)規(guī)則:**表現(xiàn)良好的網(wǎng)絡(luò)具有不斷增長(zhǎng)的寬度。**
論文接著測(cè)試了$w_{i+1}\ge w_i$的設(shè)計(jì)原則,并將此約束下的設(shè)計(jì)空間稱(chēng)為 $AnyNetX_D$。在Figure 6(左)中可以看到這極大地改進(jìn)了EDF。另外,再進(jìn)一步測(cè)試多個(gè)模型后,作者發(fā)先除了階段寬度$w_i$隨著$i$增加,對(duì)于優(yōu)秀的模型,階段深度$d_i$也同樣趨于增加,雖然不一定是在最后階段。

在Figure6的右圖中,我們發(fā)現(xiàn)當(dāng)設(shè)置 $d_{i+1}\ge d_i$時(shí),EDF同樣得到了較大改善。最后注意到對(duì)于$w_i$和$d_i$的約束使得設(shè)計(jì)空間減少了$4!$,和$AnyNetX_A$ 相比累計(jì)減少了$O(10^7)$。
## 2.3 RegNet設(shè)計(jì)空間
從AnyNetX的結(jié)果來(lái)看,是體現(xiàn)出了一些規(guī)律的,通過(guò)獲得的幾組變量和每個(gè)Blcok的下標(biāo)之間的關(guān)系,可以擬合出一個(gè)函數(shù)關(guān)系。這樣就可以建模好每個(gè)Stage的Block應(yīng)該多深以及多寬的關(guān)系,這個(gè)建模的方法被論文叫作**quantized linear**。這一方法可以用公式(2)來(lái)表示:

其中,$w_0$表示初始化寬度,$w_a$表示斜率,$d$表示網(wǎng)絡(luò)深度。另外,為了量化$u_j$這里又引入了兩組公式和新的超參數(shù)$w_m$用于計(jì)算$s_j$,這一過(guò)程可以用公式(3)和(4)來(lái)表示:


然后,我們就可以計(jì)算出每個(gè)Stage的寬度是:$w_i=w_0*w_m^i$以及Block的數(shù)量:

自此,網(wǎng)絡(luò)設(shè)計(jì)空間就被$w_0,w_a,w_m$這三組參數(shù)表示出來(lái),所以對(duì)這三組參數(shù)進(jìn)行搜索就獲得了論文中展示的超越EfficientNet的驚艷結(jié)果了。其它的細(xì)節(jié)就不展開(kāi)介紹了,感興趣可以看原論文。
# 2. 實(shí)驗(yàn)
下面的Table2展示了RegNet和現(xiàn)有的SOTA移動(dòng)端模型的性能對(duì)比,可以看到REGNET是非常有效的。

下面的Table4展示了論文將RegNet和SOTA EfficientNet 模型的對(duì)比結(jié)果,結(jié)果顯示在相似的訓(xùn)練設(shè)置和FLOPs下,RegNet優(yōu)于EfficientNet模型,并且 GPU 上的速度提升5倍。

# 3. 結(jié)論
這篇論文提出了一種新的網(wǎng)絡(luò)設(shè)計(jì)范式,和以往研究不同的是他們沒(méi)有專(zhuān)注于設(shè)計(jì)單個(gè)網(wǎng)絡(luò)實(shí)例,而是設(shè)計(jì)出了參數(shù)化網(wǎng)絡(luò)群的網(wǎng)絡(luò)設(shè)計(jì)空間。這種新的網(wǎng)絡(luò)設(shè)計(jì)范式結(jié)合了神經(jīng)框架搜索(NAS)和手工設(shè)計(jì)網(wǎng)絡(luò)的優(yōu)點(diǎn),精度和速度全面超越了EfficientNet,成為了目前最值得關(guān)注的一項(xiàng)CV方向的工作。
參考資料:
[1] I. Radosavovic, Raj Prateek Kosaraju, Ross Girshick, Kaiming He, Piotr Dolla ?r, Designing Network Design Spaces. CVPR 2020.
[2] 如何評(píng)價(jià)何愷明團(tuán)隊(duì)最新推出的 RegNet?https://www.zhihu.com/question/384255803
[3] I. Radosavovic, J. Johnson, S. Xie, W.-Y. Lo, and P. Doll ?ar.On network design spaces for visual recognition. InICCV,2019.
[4] 《Designing Network Design Spaces》的整體解讀(一篇更比六篇強(qiáng)), https://zhuanlan.zhihu.com/p/122557226
雷鋒網(wǎng)報(bào)道
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。