谷歌开发新模型EfficientNets,缩放CNN的精度与效率超越现有模型
2019年05月30日 由 老张 发表
736706
0
卷积神经网络(CNN)通常以固定的资源成本开发,然后进行缩放,以便在获得更多资源时得到更好的精度。
传统的模型缩放方法是任意增加CNN的深度或宽度,或者使用较大的输入图像分辨率进行训练和评估。虽然这些方法确实提高了精度,但它们通常需要繁琐的手动调优,而且常常会产生次优性能。如果我们能找到一种更有原则的方法来缩放CNN,以获得更好的精度和效率,那将会怎样呢?
与任意缩放网络尺寸的传统方法(例如宽度,深度和分辨率)不同,该方法使用固定的缩放系数集合均匀地缩放每个维度。借助这种新颖的缩放方法和AutoML的最新进展,我们开发了模型,名为EfficientNets,它超越了最先进的精度,效率提高了10倍。
复合模型缩放:更好地缩放CNN
为了了解缩放网络的效果,我们系统地研究了缩放模型不同维度的影响。虽然缩放各个维度可以提高模型性能,但我们观察到,平衡网络宽度,深度和图像分辨率的所有维度与可用资源相比,可以最好地提高整体性能。
复合缩放方法的第一步是执行网格搜索,在固定资源约束下找到基线网络的不同缩放维度之间的关系(例如,多2 倍FLOPS),这确定了上述每个维度的适当比例系数。然后,我们应用这些系数将基线网络缩放到所需的目标模型大小或计算预算。
不同缩放方法比较
与传统的缩放方法相比,这种复合缩放方法可以不断提高现有模型的缩放精度和效率,如MobileNet(+ 1.4%imagenet精度)和ResNet(+ 0.7%)。
EfficientNet架构
模型缩放的有效性也在很大程度上依赖于基线网络。因此,为了进一步提高性能,我们还通过使用AutoML MNAS框架执行神经架构搜索来开发新的基线网络,该框架优化了准确性和效率(FLOPS)。最终的架构使用移动倒置瓶颈卷积(MBConv),类似于MobileNetV2和MnasNet,但由于FLOP预算增加,所以体积略大一些。然后,我们缩放基线网络以获得一系列模型,称为EfficientNets。
基线网络efficient - b0的架构简单明了,易于扩展和推广
EfficientNet性能
将EfficientNets与ImageNet上的其他现有CNN进行比较。通常,EfficientNet模型实现了比现有CNN更高的精度和效率,将参数大小和FLOPS降低了一个数量级。
模型大小与精度的比较
尽管EfficientNets在ImageNet上表现良好,但它们也应该迁移到其他数据集。为了评估这一点,我们在八个广泛使用的转移学习数据集上测试了EfficientNets。EfficientNets在8个数据集中的5个中实现了最先进的精度,例如CIFAR-100(91.7%)和Flowers(98.8%),参数减少了一个数量级(参数减少了21倍),这表明我们的EfficientNets也很好地转移。
通过显著提高模型效率,EfficientNets可能成为未来计算机视觉任务的新的基础。因此,我们开源了所有EfficientNet模型,并希望这些模型可以使机器学习社区受益。
论文:
arxiv.org/abs/1905.11946
开源:
github.com/tensorflow/tpu/tree/master/models/official/efficientnet