Benchmark Analysis of Representative Deep Neural Network Architecture論文筆記

原文鏈接:https://www.jianshu.com/p/32944e53e2e1

論文地址:Benchmark Analysis of Representative Deep Neural Network Architecture

一 爲什麼讀這篇

蛙神推薦的,對截止2018年10月出現的各種經典CNN網絡的一個測評,算是比較新的一篇綜述,通過閱讀這篇,搞清楚CNN最新的發展脈絡。

二 截止閱讀時這篇論文的引用次數

被引用次數:25。

三 相關背景介紹

來自意大利和法國的學者,arXiv上的時間爲2018年10月

四 論文的主要貢獻

1 分析對比了40多種網絡在普通平臺和嵌入式平臺上的識別準確率,模型複雜度,計算複雜度,內存使用,預測時間

2 讓研究者知道目前網絡已發展到什麼程度,有哪些方向值得繼續探索

3 讓實踐者知道如何在資源限制下選擇最好的網絡

五 詳細解讀

1 介紹

其他文章都是分析網絡層的組成和識別性能,對計算代價方面(內存使用,預測時間)及其對識別效果的影響的分析較少。Canziani等人在2016年年中的時候對嵌入式系統上的網絡做過一些分析,不過比較的網絡個數較少。Huang等人在2017年的cvpr上分析過一批SOTA的目標檢測網絡的速度與準確率之間的權衡。本文的目的是進行更全面的比較,同時也在兩種平臺上進行比較。

幾個重要發現

  1. 識別精度不隨操作次數的增加而增加:事實上,有些架構的操作次數相對較少,如SE-ResNeXt-50 (32x4d),其識別精度非常高。
  2. 模型複雜度和準確率之前並不是線性關係
  3. 期望的吞吐量(例如用每秒推斷的數量表示)是可達到的精度的上限
  4. 不是所有的網絡都有效的使用了它們的參數
  5. 幾乎所有網絡在高配GPU上實時性能都不錯,但只有少數在嵌入式上表現過關
  6. 即使網絡的模型複雜度很低也得佔至少0.6GB的顯存

2 benchmark

軟件環境:PyTorch,cuDNN-v5.1,CUDA-v9.0

硬件環境-工作站:Titan X,3840 CUDA cores

硬件環境-嵌入式:Jetson TX1 board,Maxwell 256 CUDA cores

3 網絡架構

AlexNet 2012-NIPS

VGG家族:VGG-11, VGG-13, VGG-16, VGG-19,分別使用和不使用BN的版本 2014

BN-Inception 2015-ICML

GoogLeNet 2015-CVPR

SqueezeNet-v1.0, SqueezeNet-v1.1 2016

ResNet-18, ResNet-34, ResNet-50, ResNet-101, ResNet-152 2016-CVPR

Inception-v3 2016-CVPR, Inception-v4, Inception-ResNet-v2 2016-ICLR

DenseNet-121, DenseNet-169, DenseNet-201, growth rate=32 2017-CVPR

DenseNet-161 growth rate=48 2017-CVPR

ResNeXt-101(32x4d), ResNeXt-101(64x4d) 2017-CVPR

Xception 2017-CVPR

DualPathNet-68, DualPathNet-98, DualPathNet-131 2017-NIPS

SE-ResNet-50, SENet-154, SE-ResNet-101, SE-ResNet-152, SE-ResNeXt-50(32x4d), SE-ResNeXt-101(32x4d) 2018-CVPR

NASNet-A-Large, NASNet-A-Mobile 2018-CVPR

MobileNet-v1 2017, MobileNet-v2 2018-CVPR

ShuffleNet 2018

4 性能指標

NASNet-A-Large的圖像大小爲331x331

InceptionResNet-v2,Inception-v3,Inception-v4,Xception的圖像大小爲299x299

其餘爲224x224

A 準確率

ImageNet-1k驗證集上的TOP1和TOP5準確率

B 模型複雜度

需要學習的總參數量

C 內存使用

爲網絡分配的內存和不同batch下處理需要的內存(batch1,2,4,8,16,32,64)

D 計算複雜度

floating-point operations(FLOPs)

乘法和加法的浮點運算。乘法和加法被記爲兩次浮點運算,因爲許多最近的模型卷積都沒有bias。

E 預測時間

5 評測結果

A 準確率 VS 計算複雜度 VS 模型複雜度

準確率VS模型複雜度VS計算複雜度.png

橫軸表示計算複雜度,縱軸表示準確率,球的大小表示模型複雜度

NASNet-A-Large有最高的準確率,同時計算複雜度也最高

在低計算複雜度下,SE-ResNeXt-50(32x4d)有最高的準確率同時模型複雜度也不高(2.76M個參數)

計算複雜度和準確率之間沒直接關係(SENet-154 VS SE-ResNeXt-101(32x4d))。模型複雜度和準確率之間也沒直接關係(VGG-13 VS ResNet-18)

B 準確率 VS 學習能力

準確率VS學習能力.png

網絡並未充分利用其所有的參數,所以有許多方法研究怎麼壓縮模型還能保持原模型的準確率。用TOP1準確率密度來衡量模型利用其參數的效率(TOP1準確率除其所有參數)

這點很明顯,專門針對移動端研發的網絡參數利用率更高,比如SqueezeNets,ShuffleNet,MobileNets和NASNet-A-Mobile

NASNet-A-Mobile和MobileNet-v2在準確率方面勝出

除此之外,Inception-v4和SE-ResNeXt-101勝出

C 預測時間

預測時間.png

綠色越重性能越好,紅色越重性能越差

D 準確率 VS 預測時間

準確率VS預測時間.png

E 內存使用

內存使用.png

當batch爲1時,絕大部分模型需要的顯存小於1GB

綠色越重需要的內存越少

從這個圖可以看出,絕大多數網絡batch不超過64顯存也沒佔多少,爲啥batch到128就不行了呢

F 內存使用 VS 模型複雜度

兩者呈線性關係

G 限制下的最佳網絡

有問題查這個表就行了

內存使用:高(<=1.4GB)中(<=1GB)低(<=0.7G)

計算時間:半實時(15FPS),實時(30FPS),超實時(60FPS)

限制下的最佳網絡.png

6 結論

把Introduction提到的幾個重要發現複述了一遍

六 讀後感

根據這篇文章的結論,感覺綜合下來用SE-ResNeXt-50或101(32x4d)就行了。另外,對於網絡的評估指標有了更進一步的認識。不是所有網絡都充分利用了它們的參數,模型的準確率並不直接與其複雜度相關。

七 補充

關於複雜度分析可以看下這兩篇

以VGG爲例,分析深度網絡的計算量和參數量

卷積神經網絡的複雜度分析

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