ID:(Art-Intelligence)
欢迎关注,交流学习,共同进步~
EfficientNet是谷歌2019年的新论文。
文章:EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks (ICML 2019 )
论文链接:https://arxiv.org/abs/1905.11946
代码链接:https://github.com/tensorflow/tpu/tree/master/models/official/efficientnet
第三方实现的PyTorch代码:https://github.com/lukemelas/EfficientNet-PyTorch
这篇论文主要讲述了如何利用复合系数统一缩放模型的所有维度,达到精度最高和效率最高。符合系数包括w,d,r,其中,w表示卷积核大小,决定了感受野大小;d表示神经网络的深度;r表示分辨率大小。
卷积神经网络通常都是先在固定资源预算下开发设计,然后如果资源有多余的话再将模型结构放大以便获得更好的精度。在本篇论文中,我们系统地研究了模型缩放并且仔细验证了网络深度、宽度和分辨率之间的平衡可以导致更好的性能表现。基于这样的观察,我们提出了一种新的缩放方法——使用一个简单高效的复合系数来完成对深度/宽度/分辨率所有维度的统一缩放。我们在MobileNets和ResNet上展示了这种缩放方法的高效性。
为了进一步研究,我们使用神经架构搜索设计了一个baseline网络,并且将模型放大获得一系列模型,我们称之为EfficientNets,它的精度和效率比之前所有的卷积网络都好。尤其是我们的EfficientNet-B7在ImageNet上获得了最先进的 84.4%的top-1精度 和 97.1%的top-5精度,同时比之前最好的卷积网络大小缩小了8.4倍、速度提高了6.1倍。我们的EfficientNets也可以很好的迁移,并且实现了最先进的精度——CIFAR-100(91.7%)、Flowers(98.8%)、其他3个迁移学习数据集。
本人理解的笔记如下:
文中总结 了我们常用的三种网络调节方式:增大感受野w,增大网络深度d,增大分辨率大小r,三种方式示意图如下:
其中,(a)为基线网络,也可以理解为小网络;(b)为增大感受野的方式扩展网络;©为增大网络深度d的方式扩展网络;(d)为增大分辨率r的方式扩展网络;(e)为本文所提出的混合参数扩展方式。
2.1,在r和w大小不变的情况下,随着d的增大,准确率没有太大的差异;
2.2,在d和w不变的情况下,随着r的增大,准确率有较大提升;
2.3,r和d不变的情况下,随着w的增大,准确率先有较大提升,然后趋于平缓,往后在无太大提升;
其中H,W为卷积核大小,C为通道数,X为输入tensor;
调节d,w,r使得满足内存Memory和浮点数量都小于阈值要求;
为了达到这个目标,文中提出了如下的方法:
对于这个方法,我们可以通过一下两步来确定d,w,r参数:
第一步我们可以通过基线网络来调节确定最佳的,然后,用这个参数将基准网络扩展或放大到大的网络,这样就可以使大网络也具有较高的准确率和效率。同样,我们也可以将基线网络扩展到其他网络,使用同样的方法来放大;
论文中基线模型使用的是 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的研究思路大家可以学习一下,在这个时代,创新性思维显得弥足珍贵,心平气和,好好研究论文吧~
…
您的支持,是我不断创作的最大动力~
欢迎点赞,关注,留言交流~
深度学习,乐此不疲~
个人微信公众号:AI研习,欢迎关注~