EfficientNet系列模型

原文来自于:https://mp.weixin.qq.com/s/H7KrfhR5TKfeLujOHNfIrg
如若侵权速删除!

EfficientNet模型论文的网址是:https://arxiv.org/abs/1905.11946

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

EfficientNet

  • EfficientNet模型是Google公司通过机器搜索得来的模型。该模型是一个快速高精度模型。它使用了深度(depth)、宽度(width)、输入图片分辨率(resolution)共同调节技术。
  • 谷歌使用这种技术开发了一系列版本。目前已经从EfficientNet-B0到EfficientNet-B8再加上EfficientNet-L2和Noisy Student共11个系列的版本。其中性能最好的是Noisy Student版本。以下是图片分类模型在ImageNet数据集上的精度对比结果。

EfficientNet系列模型的主要结构

  • EfficientNet系列模型的主要结构要从该模型的构建方法说起。该模型的构建方法主要包括以下2个步骤:
      (1)使用强化学习算法实现的MnasNet模型生成基线模型EfficientNet-B0。
      (2)采用复合缩放的方法,在预先设定的内存和计算量大小的限制条件下,对EfficientNet-B0模型的深度、宽度(特征图的通道数)、图片大小这三个维度都同时进行缩放,这三个维度的缩放比例由网格搜索得到。最终输出了EfficientNet模型。
  • EfficientNet模型的调参示意图
    EfficientNet模型

MBConv卷积块

  • EfficientNet模型的内部是通过多个MBConv卷积块实现的,每个MBConv卷积块的具体结构如下:
  • 其中将ReLU激活函数缓存了Swish激活函数。MBConv卷积块也使用了类似残差链接的结构,不同的是在短连接部分使用了SE层。另外使用了drop_connect方法来代替传统的drop方法。注意:在SE层中没有使用BN操作,而且其中的sigmoid激活函数也没有被Swish替换。在其它层中,BN是放在激活函数与卷积层之间的.
  • DropConnect与Dropout不同的地方是在训练神经网络模型过程中,它不是对隐层节点的输出进行随机的丢弃,而是对隐层节点的输入进行随机的丢弃。如下图所示:
  • 在深度神经网络中DropConnect与Dropout的作用都是防止模型产生过拟合的情况。相比之下DropConnect的效果会更好一些。

模型的规模和训练方式

你可能感兴趣的:(EfficientNet系列模型)