Facebook 最新力作 FBNetV3来了!相比 ResNeSt 提速 5 倍,精度不输 EfficientNet
原文鏈接:Facebook 最新力作 FBNetV3來了!相比 ResNeSt 提速 5 倍,精度不輸 EfficientNet
FBNetV1:https://arxiv.org/abs/1812.03443
FBNetV2: https://arxiv.org/abs/2004.05565
FBNetV3: https://arxiv.org/abs/20206.02049
今天逛arxiv時看到了FBNetV3一文,雖然筆者對NAS相關方法并不感冒,但考慮到FBNetV3都出來了,V4出的可能并不大了。尤其當筆者看到FNBetV3可以取得媲美EfficientNet與ResNeSt的精度同時具有更少的FLOPs。索性就花點時間簡簡單單聊一下FBNet系列咯。注:FBNetV1與FBNetV2已開源,FNBetV3尚未開源,但應該不久,期待FBNetV3能盡快開源。
Abstract
這篇論文提到了一個比較有意思的點:網絡架構與訓練策略同時進行搜索。這是之前的方法所并未嘗試的一個點,之前的方法主要聚焦在網絡架構,而訓練方法則是采用比較常規的一組訓練方式。也許這就是“燈下黑”的緣故吧,看到了網絡架構的重要性影響而忽略了訓練方式在精度方面的“小影響”。但是,當精度達到一定程度之后,訓練方式的這點影響就變得尤為重要了。
所以Facebook的研究員從這點出發提出了FBNetV3,它將網絡架構與對應的訓練策略通過NAS聯合搜索。在ImageNet數據集上,FBNetV3取得了媲美EfficientNet與ResNeSt性能的同時具有更低的FLOPs(1.4x and 5.0x fewer);更重要的是,該方案可以跨網絡、跨任務取得一致性的性能提升。
Contribute
盡管NAS在網路架構方面取得了非常好的結果,比如EfficientNet、MixNet、MobileNetV3等等。但無論基于梯度的NAS,還是基于supernet的NAS,亦或給予強化學習的NAS均存在這幾個缺陷:
- 忽略了訓練超參數,即僅僅關注于網絡架構而忽略了訓練超參數的影響;
- 僅支持一次性應用,即在特定約束下只會輸出一個模型,不同約束需要不同的模型。
為解決上述所提到的缺陷,作者提出了JointNAS同時對網絡架構與訓練策略進行搜索。JointNAS是一種兩階段的有約束的搜索方法,它包含粗粒度與細粒度兩個階段。本文貢獻主要包含下面幾點:
- Joint training-architecture search
- Generalizable training recipe
- Multi-use predictor
- State-of-the-art ImageNet accuracy
Method
該文的目標是:在給定資源約束下,搜索具有最高精度的網路架構與訓練策略。該問題可以通過如下公式進行描述:
max(A,b)∈Ωacc(A,h),s.t.?gi(A)≤Cifor?i=1,?,γmax_{(A,b) \in \Omega} acc(A,h), \text{ s.t. } g_i(A)\le C_i \text{ for }i = 1, \cdots, \gamma max(A,b)∈Ω?acc(A,h),?s.t.?gi?(A)≤Ci??for?i=1,?,γ
其中,A,h,ΩA,h,\OmegaA,h,Ω分別表示網絡架構、訓練策略以及搜索空間(見下表);gi(A),γg_i(A),\gammagi?(A),γ表示資源約束信息,比如計算量、存儲以及推理耗時燈。
如果搜索空間過大則會導致搜索評估變得不可能,為緩解復雜度問題,作者設計了一種兩階段的搜索算法:(1)粗粒度搜索;(2)細粒度搜索。見下圖中的算法1.
Coarse-grained Search
第一階段的粗粒度搜索將輸出精度預測器與一組候選網絡架構。
- Neural Acquisition Function,即預測器,見上圖。它包含編碼架構與兩個head:(1)Auxiliary proxy head用于預訓練編碼架構、預測架構統計信息(比如FLOPs與參數兩)。注:網絡架構通過one-hot方式進行編碼;(2)精度預測器,它接收訓練策略與網路架構,同時迭代優化給出架構的精度評估。
- Early-stopping,作者還引入一種早停策略以降低候選網絡評估的計算消耗;
- Predictor training,得到候選網絡后,作者提出訓練50epoch同時凍結嵌入層,然后對整個模型再次訓練50epoch。作者采用Huber損失訓練該精度預測器。該損失有助于使模型避免異常主導現象(prevents the model from being dominated by outliers)。
Fine-grained Search
第二階段的搜索是一種基于自適應遺傳算法的迭代過程,它以第一階段的搜索結果作為初代候選,在每次迭代時,對其進行遺傳變異更新并評估每個個體的得分,從中選擇K個得分最高的子代進行下一輪的迭代,直到搜索完畢,最終它將輸出具有最高精度的網絡與訓練策略。
Search space
作者所設計的搜索空間包含訓練策略以及網絡架構,其中訓練策略部分所搜空間包含優化器類型、初始學習率、權重衰減、mixup比例、dropout比例、隨機深度drop比例、應用EMA與否;網絡腳骨的所搜空間則基于inverted residual而設計,包含輸入分辨率、卷積核尺寸、擴展因子、每層通道數以及深度。具體見下表。
在自動訓練實驗中,作者僅在固定架構上調整了訓練策略;而在聯合搜索時,作者對訓練策略以及網絡架構同時進行搜索,整個搜索空間大小為101710^{17}1017個網絡架構與10710^7107個訓練策略。
Experiments
作者首先對給定網絡在一個較小的搜索空間下驗證其搜索算法;然后在聯合搜索任務上評估所提方法。注:為降低搜索時間,作者在ImageNet數據集中隨機選擇了200類別,并從訓練集中隨機構建了一個10K的驗證集。
AutoTrain
在該部分實驗中,作者選擇FBNetV2-L3作為基準模型,主要進行訓練策略的搜索。從搜索結果來看:RMSProp優于SGD,同時采用了EMA。該組訓練策略可以提升模型0.8%精度。更多的實驗結果見下圖,可以看到在多個網絡中,AutoTrain方式均可取得性能上的一致提升,這說明了AutoTrain的泛化性能。與此同時,還可以看到EMA可以進一步提升模型的精度。
Search for efficient networks
前面的實驗驗證了訓練策略搜索的重要性,這里將對聯合搜索進行嘗試。搜索結果與其他NAS結果對比見下表。從表中對比可以看到:所提方法取得了更高的精度。比如FBNetV3-E取得了80.4%的精度,而與之對標的EfficientNetB2的精度為80.3%,而它們的FLOPs對比則似乎752M vs 1G;取得了82.3%精度的FBNetV3-G,而與之對標的ResNeSt在相同精度下FLOP卻是其5倍之多。
Ablation Study
除此之外,作者還進行了一些消融實驗分析。
- 網絡架構與訓練策略的成對性:見下圖中Table4。從一定程度上說明: 僅搜索網絡架構只能得到次優結果;
- 細粒度搜索的重要性:見下圖的Table5。從一定程度上說明:細粒度搜索可以進一步提升的模型的性能。
- EMA的泛化性能分析:作者通過實驗發現了EMA在分類任務上取得了性能的一致提升。認為這種策略同樣適用于其他任務,并在COCO目標檢測任務上進行了驗證,結果見下圖??梢钥吹?#xff1a;EMA策略確實取得了更優的結果??磥鞥MA也是一種非常棒的trick,提升精度的同時又不影響訓練和推理,各位小伙伴還在等什么?快點用起來吧!
Conclusion
Facebook的研究員提出了一種比較好的NAS方案,它將訓練策略納入到網絡架構的搜索過程中。之前的研究往往只關注網絡架構的搜索而忽視了訓練策略的影響,這確實是一點比較容易忽視的。所謂的“燈下黑”,吼吼,筆者突然意識到:是不是還可以將參數初始化方式那納入到搜索空間呢?感興趣的小伙伴還不快點去嘗試一下。
◎作者檔案
Happy,一個愛“胡思亂想”的AI行者
個人公眾號:AIWalker
歡迎大家聯系極市小編(微信ID:fengcall19)加入極市原創作者行列
關注極市平臺公眾號(ID:extrememart),獲取計算機視覺前沿資訊/技術干貨/招聘面經等
總結
以上是生活随笔為你收集整理的Facebook 最新力作 FBNetV3来了!相比 ResNeSt 提速 5 倍,精度不输 EfficientNet的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 重磅开源!目标检测新网络 Detecto
- 下一篇: 超越 MobileNet,谷歌提出 Mo