深度學習入門----EfficientNet解讀


深度學習入門----EfficientNet解讀

版權聲明:本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
本文鏈接: https://blog.csdn.net/Trent1985/article/details/91126085

EfficientNet是谷歌最新的論文:EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks ICML 2019 

這篇論文主要講述了如何利用復合系數統一縮放模型的所有維度,達到精度最高效率最高,符合系數包括w,d,r,其中,w表示卷積核大小,決定了感受野大小;d表示神經網絡的深度;r表示分辨率大小;

這篇論文谷歌給出了對應的tf源碼,地址為:EfficientNet

本人理解的筆記如下:

1,文中總結 了我們常用的三種網絡調節方式:增大感受野w,增大網絡深度d,增大分辨率大小r,三種方式示意圖如下:

其中,(a)為基線網絡,也可以理解為小網絡;(b)為增大感受野的方式擴展網絡;(c)為增大網絡深度d的方式擴展網絡;(d)為增大分辨率r的方式擴展網絡;(e)為本文所提出的混合參數擴展方式;

2,文中試驗測試,調查了w/r/d在各種情況下的准確率和效率的相互關系曲線,如下圖所示:

個人總結規律如下:

2.1,在r和w大小不變的情況下,隨着d的增大,准確率沒有太大的差異;

2.2,在d和w不變的情況下,隨着r的增大,准確率有較大提升;

2.3,r和d不變的情況下,隨着w的增大,准確率先有較大提升,然后趨於平緩,往后在無太大提升;

3,復合系數的數學模型

文中給出了一般卷積的數學模型如下:

其中H,W為卷積核大小,C為通道數,X為輸入tensor;

則復合系數的確定轉為如下的優化問題:

調節d,w,r使得滿足內存Memory和浮點數量都小於閾值要求;

為了達到這個目標,文中提出了如下的方法:

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

第一步我們可以通過基線網絡來調節確定最佳的\alpha \beta \gamma,然后,用這個參數將基准網絡擴展或放大到大的網絡,這樣就可以使大網絡也具有較高的准確率和效率。同樣,我們也可以將基線網絡擴展到其他網絡,使用同樣的方法來放大;

論文中基線模型使用的是 mobile inverted bottleneck convolution(MBConv),類似於 MobileNetV2 和 MnasNet,但是由於 FLOP 預算增加,該模型較大。於是,研究人員縮放該基線模型,得到了EfficientNets模型,它的網絡示意圖如下:

最后,研究人員對EfficientNets的效率進行了測試,結果如下:

對比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%)。

EffieicntNet在最近幾天掀起了一股小旋風,開源代碼點贊數大增,大家可以一起學習一下!

 

附上在文地址:https://arxiv.org/pdf/1905.11946.pdf

github地址:https://github.com/tensorflow/tpu/tree/master/models/official/efficientnet


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM