Facebook最新力作FBNetV3來了!相比ResNeSt提速5倍,精度不輸EfficientNet
今天逛arxiv時(shí)看到了FBNetV3一文,雖然筆者對(duì)NAS相關(guān)方法并不感冒,但考慮到FBNetV3都出來了,V4出的可能并不大了。尤其當(dāng)筆者看到FNBetV3可以取得媲美EfficientNet與ResNeSt的精度同時(shí)具有更少的FLOPs。索性就花點(diǎn)時(shí)間簡(jiǎn)簡(jiǎn)單單聊一下FBNet系列咯。注:FBNetV1與FBNetV2已開源,F(xiàn)NBetV3尚未開源,但應(yīng)該不久,期待FBNetV3能盡快開源。
FBNetV1:https://arxiv.org/abs/1812.03443
FBNetV2: https://arxiv.org/abs/2004.05565
FBNetV3: https://arxiv.org/abs/2006.02049
Abstract
這篇論文提到了一個(gè)比較有意思的點(diǎn):網(wǎng)絡(luò)架構(gòu)與訓(xùn)練策略同時(shí)進(jìn)行搜索。這是之前的方法所并未嘗試的一個(gè)點(diǎn),之前的方法主要聚焦在網(wǎng)絡(luò)架構(gòu),而訓(xùn)練方法則是采用比較常規(guī)的一組訓(xùn)練方式。也許這就是“燈下黑”的緣故吧,看到了網(wǎng)絡(luò)架構(gòu)的重要性影響而忽略了訓(xùn)練方式在精度方面的“小影響”。但是,當(dāng)精度達(dá)到一定程度之后,訓(xùn)練方式的這點(diǎn)影響就變得尤為重要了。
所以Facebook的研究員從這點(diǎn)出發(fā)提出了FBNetV3,它將網(wǎng)絡(luò)架構(gòu)與對(duì)應(yīng)的訓(xùn)練策略通過NAS聯(lián)合搜索。在ImageNet數(shù)據(jù)集上,F(xiàn)BNetV3取得了媲美EfficientNet與ResNeSt性能的同時(shí)具有更低的FLOPs(1.4x and 5.0x fewer);更重要的是,該方案可以跨網(wǎng)絡(luò)、跨任務(wù)取得一致性的性能提升。
Contribute
盡管NAS在網(wǎng)路架構(gòu)方面取得了非常好的結(jié)果,比如EfficientNet、MixNet、MobileNetV3等等。但無論基于梯度的NAS,還是基于supernet的NAS,亦或給予強(qiáng)化學(xué)習(xí)的NAS均存在這幾個(gè)缺陷:
忽略了訓(xùn)練超參數(shù),即僅僅關(guān)注于網(wǎng)絡(luò)架構(gòu)而忽略了訓(xùn)練超參數(shù)的影響;
僅支持一次性應(yīng)用,即在特定約束下只會(huì)輸出一個(gè)模型,不同約束需要不同的模型。
為解決上述所提到的缺陷,作者提出了JointNAS同時(shí)對(duì)網(wǎng)絡(luò)架構(gòu)與訓(xùn)練策略進(jìn)行搜索。JointNAS是一種兩階段的有約束的搜索方法,它包含粗粒度與細(xì)粒度兩個(gè)階段。本文貢獻(xiàn)主要包含下面幾點(diǎn):
Joint training-architecture search
Generalizable training recipe
Multi-use predictor
State-of-the-art ImageNet accuracy
Method
該文的目標(biāo)是:在給定資源約束下,搜索具有最高精度的網(wǎng)路架構(gòu)與訓(xùn)練策略。該問題可以通過如下公式進(jìn)行描述:

其中,??,??,??分別表示網(wǎng)絡(luò)架構(gòu)、訓(xùn)練策略以及搜索空間(見下表);????(A),??表示資源約束信息,比如計(jì)算量、存儲(chǔ)以及推理耗時(shí)燈。

如果搜索空間過大則會(huì)導(dǎo)致搜索評(píng)估變得不可能,為緩解復(fù)雜度問題,作者設(shè)計(jì)了一種兩階段的搜索算法:(1)粗粒度搜索;(2)細(xì)粒度搜索。見下圖中的算法1.

Coarse-grained Search
第一階段的粗粒度搜索將輸出精度預(yù)測(cè)器與一組候選網(wǎng)絡(luò)架構(gòu)。

Neural Acquisition Function,即預(yù)測(cè)器,見上圖。它包含編碼架構(gòu)與兩個(gè)head:(1)Auxiliary proxy head用于預(yù)訓(xùn)練編碼架構(gòu)、預(yù)測(cè)架構(gòu)統(tǒng)計(jì)信息(比如FLOPs與參數(shù)兩)。注:網(wǎng)絡(luò)架構(gòu)通過one-hot方式進(jìn)行編碼;(2)精度預(yù)測(cè)器,它接收訓(xùn)練策略與網(wǎng)路架構(gòu),同時(shí)迭代優(yōu)化給出架構(gòu)的精度評(píng)估。
Early-stopping,作者還引入一種早停策略以降低候選網(wǎng)絡(luò)評(píng)估的計(jì)算消耗;
Predictor training,得到候選網(wǎng)絡(luò)后,作者提出訓(xùn)練50epoch同時(shí)凍結(jié)嵌入層,然后對(duì)整個(gè)模型再次訓(xùn)練50epoch。作者采用Huber損失訓(xùn)練該精度預(yù)測(cè)器。該損失有助于使模型避免異常主導(dǎo)現(xiàn)象(prevents the model from being dominated by outliers)。
Fine-grained Search
第二階段的搜索是一種基于自適應(yīng)遺傳算法的迭代過程,它以第一階段的搜索結(jié)果作為初代候選,在每次迭代時(shí),對(duì)其進(jìn)行遺傳變異更新并評(píng)估每個(gè)個(gè)體的得分,從中選擇K個(gè)得分最高的子代進(jìn)行下一輪的迭代,直到搜索完畢,最終它將輸出具有最高精度的網(wǎng)絡(luò)與訓(xùn)練策略。
Search space
作者所設(shè)計(jì)的搜索空間包含訓(xùn)練策略以及網(wǎng)絡(luò)架構(gòu),其中訓(xùn)練策略部分所搜空間包含優(yōu)化器類型、初始學(xué)習(xí)率、權(quán)重衰減、mixup比例、dropout比例、隨機(jī)深度drop比例、應(yīng)用EMA與否;網(wǎng)絡(luò)腳骨的所搜空間則基于inverted residual
而設(shè)計(jì),包含輸入分辨率、卷積核尺寸、擴(kuò)展因子、每層通道數(shù)以及深度。具體見下表。

在自動(dòng)訓(xùn)練實(shí)驗(yàn)中,作者僅在固定架構(gòu)上調(diào)整了訓(xùn)練策略;而在聯(lián)合搜索時(shí),作者對(duì)訓(xùn)練策略以及網(wǎng)絡(luò)架構(gòu)同時(shí)進(jìn)行搜索,整個(gè)搜索空間大小為個(gè)網(wǎng)絡(luò)架構(gòu)與個(gè)訓(xùn)練策略。
Experiments
作者首先對(duì)給定網(wǎng)絡(luò)在一個(gè)較小的搜索空間下驗(yàn)證其搜索算法;然后在聯(lián)合搜索任務(wù)上評(píng)估所提方法。注:為降低搜索時(shí)間,作者在ImageNet數(shù)據(jù)集中隨機(jī)選擇了200類別,并從訓(xùn)練集中隨機(jī)構(gòu)建了一個(gè)10K的驗(yàn)證集。
AutoTrain
在該部分實(shí)驗(yàn)中,作者選擇FBNetV2-L3作為基準(zhǔn)模型,主要進(jìn)行訓(xùn)練策略的搜索。從搜索結(jié)果來看:RMSProp優(yōu)于SGD,同時(shí)采用了EMA。該組訓(xùn)練策略可以提升模型0.8%精度。更多的實(shí)驗(yàn)結(jié)果見下圖,可以看到在多個(gè)網(wǎng)絡(luò)中,AutoTrain方式均可取得性能上的一致提升,這說明了AutoTrain的泛化性能。與此同時(shí),還可以看到EMA可以進(jìn)一步提升模型的精度。

Search for efficient networks
前面的實(shí)驗(yàn)驗(yàn)證了訓(xùn)練策略搜索的重要性,這里將對(duì)聯(lián)合搜索進(jìn)行嘗試。搜索結(jié)果與其他NAS結(jié)果對(duì)比見下表。從表中對(duì)比可以看到:所提方法取得了更高的精度。比如FBNetV3-E取得了80.4%的精度,而與之對(duì)標(biāo)的EfficientNetB2的精度為80.3%,而它們的FLOPs對(duì)比則似乎752M vs 1G;取得了82.3%精度的FBNetV3-G,而與之對(duì)標(biāo)的ResNeSt在相同精度下FLOP卻是其5倍之多。

Ablation Study
除此之外,作者還進(jìn)行了一些消融實(shí)驗(yàn)分析。
網(wǎng)絡(luò)架構(gòu)與訓(xùn)練策略的成對(duì)性:見下圖中Table4。從一定程度上說明:僅搜索網(wǎng)絡(luò)架構(gòu)只能得到次優(yōu)結(jié)果;
細(xì)粒度搜索的重要性:見下圖的Table5。從一定程度上說明:細(xì)粒度搜索可以進(jìn)一步提升的模型的性能。

EMA的泛化性能分析:作者通過實(shí)驗(yàn)發(fā)現(xiàn)了EMA在分類任務(wù)上取得了性能的一致提升。認(rèn)為這種策略同樣適用于其他任務(wù),并在COCO目標(biāo)檢測(cè)任務(wù)上進(jìn)行了驗(yàn)證,結(jié)果見下圖??梢钥吹剑篍MA策略確實(shí)取得了更優(yōu)的結(jié)果??磥鞥MA也是一種非常棒的trick,提升精度的同時(shí)又不影響訓(xùn)練和推理,各位小伙伴還在等什么?快點(diǎn)用起來吧!

Conclusion
Facebook的研究員提出了一種比較好的NAS方案,它將訓(xùn)練策略納入到網(wǎng)絡(luò)架構(gòu)的搜索過程中。之前的研究往往只關(guān)注網(wǎng)絡(luò)架構(gòu)的搜索而忽視了訓(xùn)練策略的影響,這確實(shí)是一點(diǎn)比較容易忽視的。所謂的“燈下黑”,吼吼,筆者突然意識(shí)到:是不是還可以將參數(shù)初始化方式那納入到搜索空間呢?感興趣的小伙伴還不快點(diǎn)去嘗試一下。
在極市平臺(tái)后臺(tái)回復(fù)FBNet,即可獲得FBNet系列三篇論文下載鏈接。

◎作者檔案
Happy,一個(gè)愛“胡思亂想”的AI行者
個(gè)人公眾號(hào):AIWalker
歡迎大家聯(lián)系極市小編(微信ID:fengcall19)加入極市原創(chuàng)作者行列