摘要:
一般情況下,我們都會根據當前的硬件資源來設計相應的卷積神經網絡,如果資源升級,可以將模型結構放大以獲取更好精度。我們系統地研究模型縮放並驗證網絡深度,寬度和分辨率之間的平衡以得到更好的性能表現。基於此思路,提出了一種新的縮放方法:利用復合系數來統一縮放模型的所有維度,達到精度最高效率最高。復合系數有:w卷積核大小,d神經網絡深度,r分辨率大小。在之前的MobileNet和ResNet上已展示了這種縮放方法的高效性。
使用神經架構搜索設計了一個主干網絡,並且將模型放大獲取一系列模型,我們稱之為Efficient,它的精度和效率比之前所有的卷積網絡都好。尤其是我們的EfficientNet-B7在ImageNet上獲得了最先進的 84.4%的top-1精度 和 97.1%的top-5精度,同時比之前最好的卷積網絡大小縮小了8.4倍、速度提高了6.1倍。我們的EfficientNets也可以很好的遷移,並且實現了最先進的精度——CIFAR-100(91.7%)、Flowers(98.8%)、其他3個遷移學習數據集。
谷歌最新論文:EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks ICML 2019
相應源碼地址:EfficientNet
1、不同的網絡調節方法:增大感受野,增大網絡深度,增大分辨率,如下圖:

其中,(a)為基線網絡,也可以理解為小網絡;(b)為增大感受野的方式擴展網絡;(c)為增大網絡深度d的方式擴展網絡;(d)為增大分辨率r的方式擴展網絡;(e)為本文所提出的混合參數擴展方式;模型縮放的高效性嚴重地依賴於baseline網絡,為了進一步研究,我們使用網絡結構搜索發展了一種新的baseline網絡,然后將它縮放來獲得一系列模型,稱之為EfficientNets。
2、測試效果,在w,r,d各種情況下的准確率和效率的相互關系曲線

一般卷積的數學模型如下:
![]()
H,W為卷積核大小,C為通道數,X為輸入tensor;
復合系數的確定轉為如下的優化問題:

調節d,w,r使得滿足內存Memory和浮點數量都小於閾值要求;
為了達到這個目標,文中提出了如下的方法:

對於這個方法,我們可以通過一下兩步來確定d,w,r參數:

第一步我們可以通過基線網絡來調節確定最佳的
,然后,用這個參數將基准網絡擴展或放大到大的網絡,這樣就可以使大網絡也具有較高的准確率和效率。同樣,我們也可以將基線網絡擴展到其他網絡,使用同樣的方法來放大;
基線模型使用的是 mobile inverted bottleneck convolution(MBConv),類似於 MobileNetV2 和 MnasNet,但是由於 FLOP 預算增加,該模型較大。於是,研究人員縮放該基線模型,得到了EfficientNets模型,它的網絡示意圖如下:

EfficientNet效率測試:

對比EfficientNets和已有的CNN模型,EfficientNet 模型要比已有CNN模型准確率更高、效率更高,其參數量和 FLOPS 都下降了一個數量級,EfficientNet-B7 在 ImageNet 上獲得了當前最優的 84.4% top-1 / 97.1% top-5 准確率,而且CPU 推斷速度是 Gpipe 的 6.1 倍,但是模型大小方面,EfficientNet-B7卻比其他模型要小得多,同時,還對比了ResNet-50,准確率也是勝出一籌(ResNet-50 76.3%,EfficientNet-B4 82.6%)。
3、相關工作:
ConvNet精度:自從AlexNet贏得2012的ImageNet競賽,ConvNets隨着變得更大獲得了更高的精度,同時GoogleNet使用6.8M的參數獲得了74.8%的top-1精度,SENet使145M參數獲得了82.7%的top-1精度。最近,GPipe進一步提高了精度——使用了557M的參數獲得了84.3%的top-1驗證精度:它如此的大以至於需要將網絡划分使用特定的並行化手段訓練,然后將每一部分傳遞到一個不同的加速器。然而這些模型主要是為ImageNet設計,但是將其遷移到其他應用上時效果也很好。
ConvNet效率:深度網絡的參數過多,模型壓縮是一種通用的方法減小模型大小——平衡精度和效率。當移動網絡變得無處不在時,我們也通常要手動設計高效的ConvNets,比如SqueezeNets、MobileNets、ShuffleNets。最近,神經網絡結構搜索在設計高效的ConvNets變得越來越流行,並且通過廣泛搜索網絡寬度、深度、卷積核類型和大小得到了比手動設計的模型更高的精度。然而,目前還不清楚怎么將這些技術應用到更大的模型中,通常要更大的設計空間和更貴的微調成本,在本篇論文中,我們旨在研究效率設計更大規模的ConvNets,為了實現這個目標,我們采用模型縮放。
模型縮放:有很多的方法因不同的資源限制對ConvNet進行縮放:ResNet可以通過調整深度(縮小到ResNet-18,放大到ResNet-200),WideResNet和MobileNets可以通過對寬度(#channels)縮放。公認的是更大的輸入圖像尺寸有利於提高精度,同時需要更多的計算量。盡管之前的研究展示了網絡深度和寬度對ConvNets的表現力很重要,它仍然是一個開放的問題來高效縮放ConvNet獲得更好的效率和精度。我們的工作系統地研究了ConvNet對網絡深度、寬度和分辨率這三個維度進行了縮放。
參考鏈接:
1、https://blog.csdn.net/Trent1985/article/details/91126085
2、https://blog.csdn.net/h__ang/article/details/92801712
