【網絡設計_RegNet】Designing Network Design Spaces_2020

RegNet論文地址:https://arxiv.org/pdf/2003.13678.pdf

RegNet 比 RestNet 這種網絡在小計算量情況下表現好
RegNet 比 EfficientNet 這種網絡在大計算時情況下表現好

總結:經過空間簡化後得到網絡結構,能夠hold住各種計算量

Abstract

在這項工作中,作者提出了一個新的網絡設計範例。目標是幫助提高對網絡設計的理解,並發現適合不同平臺(settings)的通用設計原則。文章並不是專注於設計單個網絡實例,而是設計“網絡設計空間”來將網絡整體進行參數化。整個過程類似於經典的網絡手工設計,但是提升到了設計空間的層次。利用這種方法,得到了一個由簡單的、規則的網絡組成的低維設計空間,稱之爲RegNet。RegNet參數化的核心思想非常簡單:好的網絡的寬度和深度可以用量化的線性函數來解釋。分析了RegNet的設計空間,得出了與當前網絡設計實踐不匹配的有趣發現。RegNet設計空間提供了簡單而快速的網絡,這些網絡可以很好地在各種各樣的平臺下工作。在可比較的訓練設置和 flop 情況下,RegNet模型的性能優於流行的EfficientNet模型,同時在gpu上的速度比其快5倍。

1、introduction

深卷積神經網絡是視覺識別的引擎。在過去的幾年中,這些好的架構在許多視覺識別任務中取得了很大的進步。例如LeNet[15]、AlexNet[13]、VGG[26]和ResNet[8]。這些工作既提高了神經網絡的有效性,也加深了我們對網絡設計的理解。特別是,上述工作序列分別證明了卷積、網絡和數據大小、深度和殘差的重要性。這些工作的結果不僅是特定的網絡實例,而且是可以推廣並應用於許多環境的設計原則。

雖然手動網絡設計帶來了巨大的進步,但手動尋找優化良好的網絡可能是一項挑戰,特別是隨着設計選擇的增多。解決這一限制的一種流行方法是神經架構搜索(NAS)。給定一個網絡的固定搜索空間,NAS 會自動在搜索空間內找到一個好的模型。近年來,NAS受到了廣泛的關注,並取得了很好的效果[34,18,29]。

儘管NAS是有效的,但這種模式還是有侷限性的。搜索的結果是根據特定環境(例如,硬件平臺)調整的單個網絡實例。這在某些情況下是足夠的;然而,它不能使我們發現網絡設計原則,加深我們的理解,並允許我們擴展到新的環境。特別地,在本文中,我們的目標是找到易於理解、構建和概括的簡單模型。

在本文中,作者提出了一個新的網絡設計範例,結合了人工設計和NAS的優點。並非專注於設計單個網絡實例,而是設計參數化網絡總體的設計空間。類似於手動設計,其目標是可解釋性,並發現描述網絡的一般設計原則,這些原則簡單、工作良好,並能夠在不同設置環境中進行泛化。與在NAS中一樣,文章的目標是利用半自動化程序來幫助實現這些目標。

作者採用的一般策略是逐步設計一個比原始版本更簡化的版本,同時保持或提高其質量(圖1)。整個過程類似於人工設計,但是又提升到了一個網絡整體設計的水平,並通過網絡設計空間的分佈估計來指導[21]。

這個範式重點是探索網絡結構(例如,寬度、深度、組等),包括重要的標準結構 VGG[26]、ResNet[8] 和 ResNeXt[31]。從一個相對不受約束的設計空間開始,稱之爲AnyNet(例如,寬度和深度在各個階段自由變化),並應用我們的 human-in-the-loop(人機迴旋)方法,得到一個由簡單的“規則”網絡組成的低維設計空間,我們稱之爲RegNet。RegNet設計空間的核心很簡單:寬度和深度由量化的線性函數決定。與AnyNet相比,RegNet設計空間具有模型更簡單、更易於解釋、優秀模型更集中的特點。

2、Related work

Manual network design. AlexNet[13]的引入使網絡設計進入了一個蓬勃發展的研究領域。在接下來的幾年中,提出了改進的網絡設計;示例包括VGG[26]、Inception[27,28]、ResNet[8]、ResNeXt[31]、DenseNet[11]和MobileNet[9,25]。這些網絡背後的設計過程主要是手工的,集中在發現新的設計選擇,以提高精確度,例如,使用更深的模型或殘差。同樣,我們的目標是發現新的設計原則。實際上,我們的方法類似於手動設計,但在設計空間級別執行。

Automated network design. 近年來,網絡設計過程已經從人工探索轉向了更自動化的網絡設計,並且通過NAS 得到了普及。NAS已被證明是一種有效的工具,可用於查找好的模型,例如[35、23、17、20、18、29]。NAS的大部分工作集中在搜索算法上,即在一個固定的、手工設計的搜索空間(我們稱之爲設計空間)內有效地找到最佳的網絡實例。相反,我們關注的是設計新穎設計空間的範例。兩者是互補的:更好的設計空間可以提高NAS搜索算法的效率,也可以通過豐富設計空間而導致更好的模型的存在。

Network scaling. 手動和半自動網絡設計通常都側重於爲特定區域尋找性能最佳的網絡實例(例如,與ResNet-50相當的 flops)。由於此過程的結果是單個網絡實例,因此不清楚如何使該實例適應不同的平臺(例如,更少的flops)。一種常見的做法是應用網絡縮放規則,例如改變網絡深度[8]、寬度[32]、分辨率[9]或三者一起應用[29]。相反,我們的目標是發現跨平臺的通用設計原則,並允許在任何目標平臺、目標域中有效地調整最佳網絡。

Comparing networks. 考慮到大量可能的網絡設計空間,必須使用可靠的比較度量來指導我們的設計過程。最近,[21]的作者提出了一種比較和分析從設計空間中簡化得到的網絡總體的方法。這個distribution-level 視角完全符合我們尋找一般設計原則的目標。因此,我們採用這種方法,並證明它可以作爲一個有用的工具,爲設計空間的設計過程。

Parameterization. 我們的最終量化線性參數化與之前的工作相同,例如如何設置寬度[26,7,32,11,9]。然而,有兩個關鍵的區別。首先,我們提供了一個實證研究來證明我們所做的設計選擇是正確的。第二,我們深入瞭解以前不瞭解的結構設計選擇(例如,如何設置每個階段的塊數)。

3、Design Space Design

我們的目標是爲視覺識別設計更好的網絡。我們研究模型的總體的特徵,而不是在特定環境下設計或搜索單個最佳模型。我們的目標是發現適用於和改進整個模型總體的一般設計原則。這種設計原則可以提供對網絡設計的觀察,並且更可能推廣到新的場景中(不像針對特定場景調整的單個模型)。

我們依賴於Radosavovic等人引入的網絡設計空間概念[21]。設計空間是一個巨大的,包含很多模型的空間。[21]的核心觀點是,可以從一個設計空間對模型進行抽樣,產生一個模型分佈,然後使用經典統計的工具來分析設計空間。我們注意到這與 NAS 搜索不同,架構搜索的目標是從空間中找到單個最佳模型。

在這項工作中,我們建議設計一個初始的、無約束的設計空間的逐步簡化版本。我們把這個過程稱爲設計空間設計。設計空間設計類似於順序的人工網絡設計,但提升到了總體層次。具體來說,在我們設計過程的每個步驟中,輸入是一個初始設計空間,輸出是一個優化設計空間,每個設計步驟的目的是發現設計原則,從而產生更簡單或性能更好的模型。

3.1 Tools for Design Space Design

我們從設計空間的工具的開始概述。爲了評估和比較設計空間,我們使用Radosavovic等人提出的工具[21],他提議通過從設計空間採樣一組模型並描述由此產生的模型誤差分佈來量化設計空間的質量。這種方法背後的關鍵是,與使用搜索(手動或自動)和比較兩個設計空間中的最佳模型相比,比較分佈更加可靠且信息更豐富。
在這裏插入圖片描述

Fig.2 用n=500個抽樣模型計算的AnyNetX設計空間的統計。左:誤差經驗分佈函數(EDF)是我們可視化設計空間質量的基本工具。在圖例中,[39.0|49.0] 分別是最小誤差和平均誤差(對應於曲線下的區域)。中間:網絡深度d(塊數)與誤差的分佈。右:第四階段(w4)的塊寬度分佈與誤差。藍色陰影區域包含95%置信度的最佳模型(通過經驗引導獲得),黑色垂直線是最有可能的最佳值。

經驗分佈函數:

F(x)=xnF(x)=\frac{小於x個樣本個數}{n}

爲了得到模型的分佈,我們從設計空間採樣了n個模型並訓練。爲了提高效率,我們主要在低計算、低 epoch 的訓練模式下進行。特別是,在本節中,我們使用 4 million flop(400MF)模式,並對每個採樣的模型在ImageNet數據集 [3]上訓練10個epoch。我們注意到,雖然我們訓練了許多模型,但每次訓練都很快:在400MF下給100個模型訓練10個 epoch,與在4GF下把單個ResNet-50[8]模型訓練100個epoch的時間相當。

按照慣例,我們用flops來表示 multiply-adds。此外,我們使用MF和GF分別表示10610^610910^9個flops。
flops:浮點計算量,衡量算法/模型的複雜度

與文獻[21]一樣,我們分析設計空間質量的主要工具是誤差經驗分佈函數(EDF)。n個模型的誤差EDF和誤差ei由以下公式給出:
在這裏插入圖片描述
F(e)F(e) 是error 小於 ee 的模型百分比。

總結如下:

  • (1)我們從設計空間中抽樣和訓練n個模型,得到模型的分佈;
  • (2)我們計算並繪製誤差EDFs,以總結設計空間質量;
  • (3)我們可視化設計空間的各種屬性,並使用經驗引導獲得洞察;
  • (4)我們使用這些觀測結果來精細化設計空間。

3.2 The AnyNet Design Space

接下來介紹我們初始的設計空間:AnyNet設計空間。我們的重點是探索神經網絡的結構,假設標準的、固定的網絡塊(例如,剩餘瓶頸塊)。

在本文術語中:

網絡的結構:

  • block 的數目(即網絡深度)
  • block widths(即chnnel的數目)
  • bottleneck ratio
  • group width

網絡的結構決定了計算、參數和內存在整個網絡計算圖中的分佈,是決定其準確性和效率的關鍵。

在我們的 AnyNet 設計空間中,網絡的基本設計是簡單的。

給定一個輸入圖像,一個網絡由一個簡單的 stem、執行大部分計算的網絡主體和一個預測輸出類的最終網絡主體組成,如圖3a所示。我們將 stem 和 head 保持固定並儘可能簡單,而將重點放在確定網絡計算和精度。

總的來說,對於每個 stage ii,自由度包括 block 的數量 bib_i、block width wiw_i,和其他的 block 參數。雖然總體結構簡單,但是AnyNet設計空間中可能的網絡總數是巨大的。

我們的大多數實驗使用標準的殘差瓶頸塊和組卷積[31],如圖4所示。我們將其稱爲X塊,並將其上構建的 AnyNet 設計空間稱爲 AnyNetX(我們在第3.4節中探索其他塊)。雖然X塊是相當初級的,但我們表明,當網絡結構優化時,它可以出奇地有效。

在這裏插入圖片描述
在這裏插入圖片描述

AnyNetX設計空間有16個自由度,因爲每個網絡由4個 stage 組成,每個 stage i有4個參數:塊數di、塊寬度wi、瓶頸比率 bi 和組寬度 gi。我們修正了輸入分辨率r=224,除非另有說明。爲了得到有效的模型,我們使用 log-uniform 採樣,di≤16,wi≤1024(被8整除後得到128),bi∈{1,2,4},gi∈{1,2,32}(稍後測試這些範圍)。我們重複採樣,直到在我們的目標複雜度範圍(360MF到400MF)中獲得n=500個模型,並對每個模型進行10個階段的訓練。圖2顯示了AnyNetX的5個基本統計數據。

AnyNetX設計空間中有161283641018(16·128·3·6)4≈10^{18}種可能的模型配置。與其從這些∼1018配置中尋找單一的最佳模型,不如探索是否有通用的設計原則可以幫助我們理解和完善這個設計空間。爲此,我們應用我們的設計空間的方法。在這一方法的每一步中,我們的目標是:

  • 簡化設計空間的結構
  • 提高設計空間的可解釋性
  • 提高或保持設計空間質量
  • 保持設計空間中的模型多樣性

A:
爲了清楚起見,我們將最初的無約束AnyNetX設計空間稱爲AnyNetXA。

B:
我們首先使得AnyNetXA設計空間的所有 stage i 共享瓶頸比率 bi=b,並將得到的設計空間稱爲 AnyNetXB。和以前一樣,我們在相同的設置下對來自 AnyNetXB 的500個模型進行採樣和訓練。圖5(左)所示的 AnyNetXA 和AnyNetXB的 EDF 在平均和最佳情況下幾乎相同。這表明耦合bi時精度沒有損失。除了更簡單之外,AnyNetXB更易於分析,如圖5(右)所示。

在這裏插入圖片描述
C:
我們的第二個改進步驟緊跟第一步。從AnyNetXB開始,我們還爲所有階段使用共享組寬度 gi=g 來獲得AnyNetXC。和以前一樣,EDF幾乎沒有變化,見圖5(中間)。總的來說,AnyNetXC 比 AnyNetXA 少了6個自由度,並將設計空間大小減少了近四個數量級。有趣的是,我們發現 g>1 是最好的(未顯示);我們在第4節中對此進行了更詳細的分析。

D:
接下來,我們檢查圖6中來自AnyNetXC的好網絡和壞網絡的典型網絡結構。一種模式出現了:好的網絡有越來越多的寬度。我們測試了wi+1≥wi的設計原理,並將具有此約束的設計空間稱爲AnyNetXD。在圖7(左)中,我們看到這大大改善了EDF。我們將很快回到檢查控制寬度的其他選項。
在這裏插入圖片描述

在這裏插入圖片描述
E:

在對許多模型(未顯示)進行進一步檢查後,我們觀察到另一個有趣的趨勢。除了stage 寬度會隨着i的增加而增加,stage 深度di也會隨着 i 的增加而增加也會得到好的模型(最後一個stage不需要)。儘管如此,我們測試了一個設計空間變量AnyNetXE,其di+1≥diin如圖7(右)所示,並看到它也改善了結果。最後,我們注意到在 wi 和 gi 分別可以給設計空間減少 4 個約束!,並從AnyNetXA中累積減少O107O(10^7)

3.3. The RegNet Design Space

在這裏插入圖片描述
爲了進一步瞭解模型結構,我們在一個圖中展示了AnyNetXE中最好的20個模型,見圖8(左上角)。對於每個模型,我們繪製每個塊j到網絡深度d的每個塊寬度wjof(我們分別使用i和j索引階段和塊)。關於我們的模型可視化的參考,請參見圖6。

雖然個別模型(灰色曲線)存在顯著差異,但總體上呈現一種模式。特別是,在同一圖中(0≤j≤20時),我們繪製了曲線 wj=48·(j+1)(實心黑色曲線,請注意y軸是對數的)。值得注意的是,這種微不足道的線性擬合似乎解釋了頂級模型中網絡寬度增長的總體趨勢。但是,請注意,這種線性擬合爲每個塊指定不同的寬度 wj,而每個模型的 width 隨block變化是分段常數函數,也就是這種線性擬合和每個模型的變化情況不一樣,所以作者探究了能否用同樣的線性函數來描述單個模型的變化。

爲了查看類似的模式是否適用於單個模型,我們需要一種策略將一條直線量化爲一個分段常數函數。根據我們對AnyNetXD 和 AnyNetXE 的觀察,我們提出了以下方法。首先,我們引入塊寬度的線性參數化:

在這裏插入圖片描述
此參數化有三個參數:深度d、初始寬度w0>0和斜率wa>0,併爲每個塊j<d 生成不同的 block width uju_j

這是一條線性函數,爲了把函數分層,引入了附加參數 wm>0w_m>0 來控制分層:

首先,從 公式(2)中給定 uju_j,給每個 block j 計算一個 sjs_j,如下:
在這裏插入圖片描述
之後,爲了分層 uju_j,把 sjs_j 進行了簡化,通過下面的公式量化每個 block 的 widths wjw_j

在這裏插入圖片描述

我們可以通過簡單地計算具有恆定寬度的塊的數目,將每個 block 的 width wjw_j 轉換爲每個 stage i 的寬度:

wi=w0wmiw_i=w_0·w_m^i

塊的數目

di=j1[sj=i]d_i=\sum_j1[s_j=i]

當只考慮四級網絡時,我們忽略了導致不同級數的參數組合。

我們通過擬合來自AnyNetX的模型來測試這個參數化。特別是,在給定模型的情況下,我們通過將d設置爲網絡深度,並在w0、wa和wm上執行網格搜索來計算擬合度,以最小化每個塊寬度的預測到觀測的平均對數比(用efit表示)。來自AnyNetXE的兩個頂級網絡的結果如圖8所示(右上角)。量化線性擬合(虛線曲線)是這些最佳模型(實體曲線)的良好擬合。

接下來,我們在圖8(底部)中繪製AnyNetXC到AnyNetXE中每個網絡的擬合誤差efit 和 error的分佈情況。首先,我們注意到每個設計空間中最好的模型都具有良好的線性擬合。實際上,經驗引導給出了一個很窄的efit 接近0的範圍,它可能包含每個設計空間中最好的模型。其次,我們注意到,平均而言,從AnyNetXC到AnyNetXE,擬合誤差越來越小。

爲了進一步驗證線性參數化,我們設計了一個只包含具有這種線性結構的模型的設計空間。特別地,我們通過6個參數來指定網絡結構:d、w0、wa、wm(以及b、g)。給定這些,我們通過Eqn (2-4)生成塊寬度和深度。

(我們將生成的設計空間稱爲RegNet,因爲它只包含簡單的常規模型。我們像以前一樣對d<64、w0、wa<256、1.5≤wm≤3和b和g進行採樣(範圍根據 AnyNetXE 的 efit 設置)。

RegNetX的錯誤EDF如圖9(左)所示。在保持最佳模型的同時,RegNetX中的模型具有比AnyNetX更好的平均誤差。在圖9(中間)中,我們測試了兩個進一步的簡化。首先,使用wm=2(級間寬度加倍)稍微提高了EDF,但我們注意到使用wm≥2性能更好(稍後顯示)。其次,我們測試設置w0=wa,進一步將線性參數化簡化爲uj=wa·(j+1)。有趣的是,這樣的表現更好。然而,爲了保持模型的多樣性,我們不施加任何限制。最後,在圖9(右圖)中,我們顯示了RegNetX的隨機搜索效率要高得多;僅搜索32個隨機模型可能會產生好的模型。

在這裏插入圖片描述

表1顯示了設計空間大小的總結(對於RegNet,我們通過量化其連續參數來估計大小)。在RegNetX的設計中,我們將原AnyNetX設計空間的維數從16降到6,空間參數量降低接近10個數量級。但是,我們注意到,RegNet仍然包含很好的模型多樣性,可以針對各種設置進行調整。
在這裏插入圖片描述

4、Analyzing the RegNetX Design Space

接下來,我們將進一步分析RegNetX設計空間,並回顧常見的深度網絡設計選擇。我們的分析得出了與流行做法不符的令人驚訝的見解,這使我們能夠通過簡單的模型獲得良好的結果。由於RegNetX設計空間有大量好的模型,因此對於以下結果,我們切換到抽樣較少的模型(100個),但以0.1的學習率對其進行更長時間(25個epoch)的訓練(見附錄)。我們這樣做是爲了觀察網絡行爲中更細粒度的趨勢。

RegNet trends:

我們在圖11中顯示了不同 flop regimes 的RegNetX參數的變化趨勢。值得注意的是,最佳模型的深度在各個計算量級(左上角)都是穩定的,最佳深度爲20個block(60層)。這與在更高的 flops 下使用更深層模型的常見做法形成對比。我們還觀察到,最佳模型使用的瓶頸比率 bb 爲1.0(上中),這有效地消除了瓶頸(在實踐中常用)。接下來,我們觀察到,好模型的 width 的乘數 wmw_m 爲2.5(右上角),與流行的跨 stage 寬度倍增的方法類似,但不完全相同。其餘參數(g,wa,w0)隨着複雜度的增加而增加(底部)。

在這裏插入圖片描述

Complexity analysis:

除了計算量和最優參數之外,我們還分析網絡 activations,我們將其定義爲所有conv層的輸出張量的大小(我們在圖12左上角列出了常見conv運算符的複雜性度量)。雖然不是一種常見的網絡複雜性度量,但 activate 會嚴重影響硬件加速器(例如,GPU、TPU)上的運行時,請參見圖12(頂部)。在圖12(底部)中,我們觀察到對於總體中最好的模型,激活隨觸發器平方根的增加而增加,參數線性增加,運行時最好使用線性和平方根項建模,因爲它依賴於 flops 和 activations。

RegNetX constrained:

利用這些發現,我們改進了RegNetX設計空間。首先,根據圖11(頂部),我們設置b=1,d≤40,wm≥2。其次,我們限制參數和激活,如圖12(底部)所示。這產生了快速,低參數,低內存模型而不影響準確性。在圖13中,我們使用這些約束測試RegNetX,並觀察到約束版本在所有的flop機制中都是優越的。我們在第5章中使用此版本,並進一步將深度限制爲12≤d≤28(另見附錄d)。

Alternate design choices: 現代移動網絡通常採用[25]中提出的倒瓶頸(b<1)和depthwise conv[1](g=1)。在圖14(左)中,我們觀察到倒轉瓶頸稍微降低了EDF,並且相對於b=1和g≥1,depthwise conv表現更差(進一步分析見附錄)。接下來,受[29]發現縮放輸入圖像分辨率有幫助的激勵,我們在圖14(中間)中測試了不同的分辨率。與文獻[29]相反,我們發現對於RegNetX,即使在較高的 flops 下,224×224的固定分辨率也是最好的。

SE:
最後,我們使用流行的 Squeeze-and-Excitation(SE)op[10]評估RegNetX(我們將X+SE縮寫爲Y,並將得到的設計空間稱爲RegNetY)。在圖14(右)中,我們看到RegNetY獲得了不錯的收益。

5、實驗

5.1 SOTA comparison:Mobile Regime

最近在網絡設計方面的大部分工作都集中在移動領域(∼600MF)。在表2中,我們將600MF的REGNET模型與現有的移動網絡進行了比較。我們觀察到,考慮到通過手動設計[9、25、19]和NAS[35、23、17、18]找到更好的移動網絡的大量工作,REGNETS在這個機制中出奇地有效。

我們的REGNET模型使用基本的100 epoch,除了權值衰減之外沒有正則化,而大多數移動網絡使用具有各種增強的更長的epoch,例如深度監視[16]、截斷[4]、DropPath[14]、自動增強[2]等等。因此,我們希望我們在短期的訓練計劃中取得的優異成績可以作爲未來工作的一個簡單基準。
在這裏插入圖片描述

5.2 standard baseline comparison:resnet、resnext

在這裏插入圖片描述
在這裏插入圖片描述

5.3 State-of-the-Art Comparison: Full Regime

我們將比較的重點放在EFFICIENTNET[29]上,它代表了最新的技術水平,並給出了使用NAS和一個模型縮放規則在複雜機制中的組合所取得的令人印象深刻的成果。

爲了進行直接比較,並分離僅由於網絡體系結構的改進而獲得的收益,我們選擇複製精確的效率網模型,但使用我們的標準訓練設置,具有100個曆元的時間表,除了權重衰減之外沒有正則化(更長的時間表和更強的正則化的影響如表7所示)。我們只優化lr和wd,見附錄中的圖22。這是與REGNET相同的設置,並支持公平比較。

結果如圖18和表4所示。在低計算量時,EFFICIENTNET優於REGNETY。在中計算量中,REGNETY的性能優於EFFICIENTNET,在高計算量中,REGNETX和REGNETY的性能都更好。我們還觀察到,對於EFFICIENTNET,activation 與 flops成線性比例(由於分辨率和深度的縮放),而與REGNETs的flops平方根的激活比例相比。這會導致GPU訓練和推理時間變慢,從而提高效率。REGNETX-8000比EFFICIENTNET-B5快5倍,且誤差較小

在這裏插入圖片描述

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章