目录
传统增加模型精度的方法:
传统的模型缩放实践是
缺点:
方法:
用一系列 固定尺度 缩放系数来统一缩放网络维度。
步骤:
·注意:
模型扩展的有效性在很大程度上依赖于baseline网络。
参考:
EfficientNet-可能是迄今为止最好的CNN网络 - 知乎
【一看就懂】EfficientNet详解。凭什么EfficientNet号称当今最强? - 知乎
细品EfficientNet - 知乎
https://arxiv.org/abs/1512.03385
需要长时间的手动调优,并且仍然会经常产生次优的性能。
一篇ICML文章[4]提出了一个更有原则性的方法来扩大 CNN 的规模,从而可以获得更好的准确性和效率。
该论文提出了一种新的模型缩放方法,它使用一个简单而高效的复合系数来以更结构化的方式放大 CNNs。
和传统的区别:不像传统的方法那样 任意缩放网络维度,如宽度,深度和分辨率。
通过使用这种新颖的缩放方法和 AutoML[5] 技术,作者将这种模型称为 EfficientNets ,它具有最高达10倍的效率(更小、更快)。
作者发现:
根据可用资源平衡网络的所有维度ーー宽度、深度和图像分辨率ーー可以最大限度地提高整体性能。
第一步:
网格搜索,找到在固定资源约束下基线网络的不同维度(缩放)之间的关系。(这决定了上面提到的每个维度的适当比例系数。)
然后应用这些系数扩大基线网络,以达到期望的模型大小或资源要求。
与传统的缩放方法相比, 这种复合缩放方法不断提高模型的精度和效率,可用于扩展现有的模型,如 mobileet (+ 1.4% 的图像集精度)和 ResNet (+ 0.7%)。
baseline网络:EfficientNet-B0
模型扩展的有效性在很大程度上依赖于baseline网络。为了进一步提高性能,作者还开发了一个新的基线网络,通过使用 AutoML MNAS 框架执行神经结构搜索,优化了准确性和效率。 最终的架构使用移动反向bottleneck卷积(MBConv) ,类似于 mobileenetv2和 MnasNet。
最终性能
作者将该效率网络与 ImageNet 上其他现有的 cnn 进行了比较。 一般来说,高效网络模型比现有的 cnn 具有更高的精度和更高的效率,减少了参数大小和 FLOPS 数量级。 在高精度体系中, EfficientNet-B7在 imagenet 上的精度达到了最高水平的84.4% ,而在 CPU 使用方面比以前的 Gpipe 小8.4倍,快6.1倍。 与广泛使用的 ResNet-50相比,作者提出的 net-b4使用了类似的 FLOPS,同时将准确率从 ResNet-50的76.3% 提高到82.6% (+ 6.3%)。
尽管 EfficientNets 在 ImageNet 上表现良好,但为了更有用,它们也应该转移到其他数据集上。 为了评估这一点,作者在八个广泛使用的学习数据集上测试了 EfficientNets。 在8个数据集中,有5个数据集的精度达到了最高水平,比如 CIFAR-100(91.7%)和 Flowers (98.8%) ,而且参数减少了5个数量级(最多减少了21个参数) ,这表明该网络也能很好地传输数据。
通过对模型效率的显著改进,预计 EfficientNets 可能成为未来计算机视觉任务的新基础。 作者开源了EfficientNet 网络模型[6],大家可以在这里找到更多信息。
EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks
这么多 圈圈 是啥意思呢?是 Hadamard乘积 ,
表示对应位置元素相乘,
神经网络里的 Hadamard乘积 参考这篇:机器学习之路三:卷积神经网络_人工智能_W_H_M_2018的博客-CSDN博客