乾貨 | ImageNet 歷屆冠軍架構最新評析:哪個深度學習網絡最適合你(轉)

轉自:新智元

論文來自:An Analysis of Deep Neural Network Models for Practical Applications

【導讀】計算機圖像計算水平穩步的增長,但各大厲害的模型尚未得到合理應用。在這篇 ICLR 2017 提交論文《深度神經網絡模型分析在實踐中的應用》中,作者從精確度、內存佔用、參數、推理時間和功耗等方面分析比較 ImageNet 歷屆冠軍架構,爲有效設計及應用深度神經網絡提供了最新的分析資料。

深度神經網絡自出現以來,已經成爲計算機視覺領域一項舉足輕重的技術。其中,ImageNet 圖像分類競賽極大地推動着這項新技術的發展。精確計算水平取得了穩步的增長,但頗具吸引力的模型應用尚未得到合理的利用。

本文將綜合分析實際應用中的幾項重要指標:準確度、內存佔用、參數、操作時間、操作次數、推理時間、功耗,並得出了以下幾項主要研究結論:

  1. 功耗與批量大小、體系結構無關;
  2. 準確度與推理時間呈雙曲線關係;
  3. 能量限制是最大可達準確度和模式複雜度的上限;
  4. 操作次數可以有效評估推理時間。

ImageNet 歷屆冠軍架構評析指標

自從2012年的 ImageNet 競賽上,Alexnet取得突破發展,成爲第一個應用深度神經網絡的應用,其他關於DNN的更復雜的應用也陸續出現。

圖像處理軟件分類挑戰賽的終極目標是,在考慮實際推理時間的情況下,提高多層分類框架的準確度。爲了達到這個目標,就要解決以下三方面的問題。第一,一般情況下,我們會在每個驗證圖像的多個類似實例中運行一個給定模型的多個訓練實例。這種方法叫做模型平均或DNN集成,可以極大提高推理所需的計算量,以獲得published準確度。第二,不同研究報告中對驗證圖像做的預估模型(集合)的操作次數不一樣,模型選擇會受到影響,因此不同的抽樣方法(以及取樣集合的大小不同)得出的報告準確度結果就會有所偏差。第三,加速推理過程是模型實際應用的關鍵,影響着資源利用、功耗以及推理延遲等因素,而目前尚無方法使推理時間縮短。

本文旨在對過去4年圖像處理軟件分類挑戰賽上出現的不同種類的先進的DNN架構做對比,從計算需要和準確度兩個角度做分析,主要比較這些架構與資源利用實際部署相關的多個指標,即準確度、內存佔用、參數、操作時間、操作次數、推理時間、功耗。

文章主要目的是通過分析,強調這些指標的重要性,因爲這些指標是優化神經網絡實際部署與應用的基本硬性限制條件。

評析方法

爲了比較不同模型的質量,我們收集了文獻中的一些數據,分析發現不同的抽樣方法得出的結論也不一樣。比如,VGG-16和GoogleNet 的central-crop誤差分別是8.7%和10.07%,表明VGG-16性能優於googleNet,而用10-crop抽樣,則誤差分別是9.33%和9.15%,VGG-16又比GoogleNet差了。於是,我們決定基於分析,對所有網絡重新評估,使用單個central-crop抽樣方法。

我們使用 cuDNN-v5和CUDA-v8配置的Torch 7來做推理時間和內存佔用測算。所有的試驗都使用的是JstPack-2.3 NVIDIA Jetson TX1,內置視覺計算系統,64-bit ARM A57 CPU。

使用這種限量級的設備是爲了更好地強調網絡架構的不同,主要是因爲使用現存的大多數GPU,比如NVIDIA K40或者Titan X得出的結果基本都一樣。爲了測算功耗,我們使用的是Keysight 1146B Hall電流探頭,內置Keysight MSO-X 2024A 200MHz 數字顯波器,抽樣週期2s,採樣率50kSa/s。該系統由 Keysight E3645A GPIB數控直流電源供電。

具體結果

我們比較了以下 DDN:

  • AlexNet (Krizhevsky et al., 2012);batch normalised AlexNet
    (Zagoruyko, 2016);batch normalised Network In Network (NIN) (Lin et al., 2013);
  • ENet (Paszke et al., 2016) for ImageNet (Culurciello, 2016);
  • GoogLeNet (Szegedy et al., 2014);
  • VGG-16 and -19 (Simonyan & Zisserman, 2014);
  • ResNet-18, -34, -50, -101 and -152 (He et al., 2015);
  • Inception-v3 (Szegedy et al., 2015) 以及 Inception-v4 (Szegedy et al., 2016)。

1. 準確率(Accuracy)
圖 1 展示了提交給 ImageNet 挑戰賽的架構的 1-crop 準確率,最左邊的是 AlexNet,最右邊的是 Inception -v4。最新的 ResNet 和 Inception 架構相比其他架構準確率至少高 7%。本文中,我們使用不同的顏色區分不同的架構和他們的作者,同一個網絡的色系相同,例如粉色系的都是 ResNet。

圖2 則提供了各網絡更詳細的準確率值,將計算成本和網絡參數的數量可視化呈現。首先非常明顯的是,VGG 不管從計算需求還是參數數量方面來說,都是迄今爲止最昂貴的架構,儘管它已經被廣泛應用於許多應用程序。VGG 的16層和19層的實現實際上與其他所有網絡都是隔絕的。其他的架構形成了一條斜線,到 Inception 和 ResNet 時,這條線開始變平緩。這表明這些模型在該數據集上到達一個拐點。在這個拐點上,計算成本(複雜性)開始超過準確率上的好處。

這裏寫圖片描述
圖1: Top1 vs. 網絡. Single-crop top-1 用最高評分體系檢測準確度。上圖中不同的配色方案表示不同的架構和作者。注意,同組網絡共享相同的色相,比如所有的ResNet系列都是用粉色系表示的。
這裏寫圖片描述
圖 2: Top1 vs. 操作、數量大小、參數 Top-1 one-crop 準確度與單向前進傳遞所需操作次數的對比。圖中氣泡大小與網絡參數數量成正比;右下角記錄的是從5*106 到155*106參數值的歷史最大值;所有數據都共享一個y軸,灰色點表示氣泡中心的值。

2. 推理時間(Inference Time)
這裏寫圖片描述
上圖(圖3)顯示了各架構在每個圖像上的推理時間,作爲一個圖像批大小(從1到64)函數。我們注意到 VGG 處理一張圖像所需時間約1/5秒,這使它在 NVIDIA TX1 上實時應用的可能性較小。AlexNet 的批大小從1到64的變化中,處理速度提升了3倍,這是由於它的完全連接層的弱優化,這個發現令人驚訝。

3. 功耗(Power)
這裏寫圖片描述
由於電流消耗的高頻率波動,功耗的測量相當複雜,需要高採樣電流讀出以避免混淆。在本研究中,我們使用的測量工具是帶電流探頭的 200 MHz 數字示波器。如上圖所示,功耗多數情況下與批大小無關。由圖3可見,AlexNet (批大小爲1)和 VGG(批大小爲2)的低功耗與較慢的推理時間相關。

4 內存(Memory)
分析使用 CPU 和 GPU 共享內存的 TX1 設備的系統內存消耗得到的結果由下圖可見,最初最大系統內存使用情況是不變的,隨着批大小增加,內存消耗增大。這是由於網絡模型的初始內存分配以及批處理時的內存需求隨着圖像數量的增加而成比例地增加。
這裏寫圖片描述
分析使用 CPU 和 GPU 共享內存的 TX1 設備的系統內存消耗得到的結果由上圖可見,最初最大系統內存使用情況是不變的,隨着批大小增加,內存消耗增大。這是由於網絡模型的初始內存分配以及批處理時的內存需求隨着圖像數量的增加而成比例地增加。
這裏寫圖片描述
從上圖中我們注意到,對規模小於 100 MB的網絡,初始內存分配不會小於 200 MB,而且隨後呈現爲一條斜率爲1.3的線性函數。

5 運算(Operations)
在神經網絡加速器的自定義實現中,運算量(operation count)對於預估推理時間和硬件電路體積是必要的。
這裏寫圖片描述
分析發現,對批大小爲16的圖像,每個圖像的運算量和推理時間之間存在線性關係。因此,在設計網絡時,可以控制運算量,以使處理速度保持在實時應用或資源有限的應用的可接受範圍內。

6. 運算和功耗
這裏寫圖片描述
分析功耗和給定模型所需的運算次數之間的關係後,我們發現不同架構之間沒有特定的 power footprint(見上圖)。當達到完全的資源利用時,通常批大小較大,所有網絡的額外消耗大致爲 11.8 W,標準偏差爲 0.7 W,空閒功率爲 1.30 W。這是資源完全利用時的最大系統功耗。因此,如果功耗是我們要關注的點之一,例如電池設備限制,可以簡單地選擇滿足最低功耗要求的最慢的架構。

7 準確率和吞吐量
我們注意到,在單位時間裏,準確率和推理數量之間存在非平凡的線性上限。下圖顯示,對於給定的幀速率,可以實現的最大準確率與幀速率本身形成線性比例。這裏分析的所有網絡均來自公開出版論文,並且已經得到其他研究團隊的獨立訓練。準確率的線性擬合顯示了所有架構的準確率與速度之間的關係。
這裏寫圖片描述
此外,選定一個推理時間,可以得出資源充分利用條件下理論上的最大準確率。由於功耗固定,我們甚至可以進一步得出能耗限制下的最大準確率,這可以作爲需要在嵌入式系統上運行的網絡的基本設計因素。由於沒有了擾流器,考慮前向推理時間時,準確率與吞吐量之間的線性關係轉變爲雙曲線關係。那麼,假設運算量與推理時間是線性關係,準確率對網絡需要的運算量則具有雙曲線依賴性(hyperbolical dependency)。

8 參數使用
這裏寫圖片描述
我們已經知道,DNN 在利用全部學習能力(參數數量/自由度)方面非常低效。Han et al., 2015 的研究利用 DNN 的這個缺陷,使用權重剪枝(weights pruning)、量化(quantisation)和變長編碼(variable-length symbol encoding)將網絡規模減小了50倍。值得注意的是,使用更高效的架構能夠產生更緊湊的呈現。如上圖所示,雖然 VGG 比 AlexNet 的準確率更高(圖1),但其信息密度不如 AlexNet。這意味着在 VGG 架構中引入的自由度帶來的準確率上的提高不大。

結語

本文從準確性、內存佔用、參數、運算量、推理時間和功耗方面,對 ImageNet 競賽中多個先進深層神經網絡進行了分析,從而對設計用於實際應用的高效神經網絡提供參考並優化資源,因爲在實際部署中我們能使用的資源往往十分有限。從上文可知,神經網絡的精度和推理時間呈雙曲關係:準確度的微量增加也會花費大量的計算時間。此外,網絡模型的運算量能有效估計推理所需要的時間。

這也是我們爲 ImageNet 創建 ENet(Efficient-Network)的原因。ENet 是當前對參數空間利用率最好的架構。

發佈了43 篇原創文章 · 獲贊 333 · 訪問量 52萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章