鱼的深度学习

论文笔记-EfficientNet:重新思考卷积神经网络的尺度

2020-08-03  本文已影响0人  升不上三段的大鱼

EfficientNet这篇文章主要验证了一个保持网络的深度、宽度和分辨率之间的平衡,对于提高网络的性能很重要。基于这个结论,作者设计了一个baseline模型,以及模型放大之后的一系列模型,叫做EfficientNets。EfficientNet-B7在ImageNet上获得了最先进的 84.4%的top-1精度 和 97.1%的top-5精度,同时比之前最好的卷积网络大小缩小了8.4倍、速度提高了6.1倍。

EffcientNet B0-7系列的参数:

params_dict = {
      # (width_coefficient, depth_coefficient, resolution, dropout_rate)
      'efficientnet-b0': (1.0, 1.0, 224, 0.2),
      'efficientnet-b1': (1.0, 1.1, 240, 0.2),
      'efficientnet-b2': (1.1, 1.2, 260, 0.3),
      'efficientnet-b3': (1.2, 1.4, 300, 0.3),
      'efficientnet-b4': (1.4, 1.8, 380, 0.4),
      'efficientnet-b5': (1.6, 2.2, 456, 0.4),
      'efficientnet-b6': (1.8, 2.6, 528, 0.5),
      'efficientnet-b7': (2.0, 3.1, 600, 0.5),
  }
如果单独放大一个网络的深度、宽度或者分辨率,大的网络会达到更好的精度,但是很快就达到饱和。 随着网络宽度、深度或者分辨率增大,精确度很快达到饱和 但是如果同时按一定比例放大这三个参数,会发现准确度进一步提高。可以看到下面图里红线比baseline的蓝线高了很多。

从直觉上来说,对于高分辨率的图片,我们需要增加网络的深度,因为更大的感受野来提取大分辨率图片中更多像素点的相似特征。同样的,我们需要更宽的网络,来捕捉到大分辨率图片里更加细粒度的特征。

作者提出了一种复合缩放的方法,\alpha, \beta, \gamma 都是网格搜索找出来的常数。

compound scaling method

EfficientNet-B0 的结构如下图,主要用到了移动倒置瓶颈MBConv模块。然后作者就在这个模型上找到搜索\alpha,\beta,\gamma

EfficientNet-b0

MBConv模块的结构:


MBConv.png

虽然但是,EfficientNet可以说是目前state-of-art的网络了,效果还是很好的。

参考:
EfficientNet论文
EfficientNet论文解读
pytorch-EfficientNet实现

上一篇下一篇

猜你喜欢

热点阅读