EfficientNet详解




EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks

EfficientNets

EfficientNets是google在2019年5月发表的一个网络系列,使用神经架构搜索设计了一个baseline网络,并且将模型进行缩放获得一系列模型。它的精度和效率比之前所有的卷积网络都好。尤其是EfficientNet-B7在ImageNet上获得了当时最先进的 84.4%的top-1精度 和 97.1%的top-5精度,同时比之前最好的卷积网络大小缩小了8.4倍、速度提高了6.1倍。EfficientNets也可以很好的迁移,并且以更少的参量实现了最先进的精度——CIFAR-100(91.7%)、Flowers(98.8%)。

通常为了获得更好的精度,放大卷积神经网络是一种广泛的方法。举个例子,ResNet可以通过使用更多层从ResNet-18放大到ResNet-200;目前为止,GPipe通过将baseline模型放大四倍在ImageNet数据集上获得了84.3%的top-1精度,然而,放大CNN的过程从来没有很好的理解过,目前通用的几种方法是放大CNN的深度、宽度和分辨率,在之前都是单独放大这三个维度中的一个,尽管任意放大两个或者三个维度也是可能的,但是任意缩放需要繁琐的人工调参同时可能产生的是一个次优的精度和效率。

NAS(neural architecture search)

在搜索空间中以ACC(m)×[FLOPS(m)/T]^w为优化目标,这里的ACC(m)和FLOPS(m)分别是模型m的精度和计算量,T是目标计算量,w=−0.07是一个超参数用来权衡精度和FLOPS,得到一个高效的网络结构Efficient-B0。

在这里插入图片描述

Efficient-B0架构

MBConv6结构

MBConv6结构

Single Scaling

深度(d):缩放网络深度在许多ConvNets都有使用,直觉上更深的网络可以捕获到更丰富和更复杂的特征,在新任务上也可以泛化的更好。然而,更深的网络由于梯度消失问题(这里我更倾向于说成是网络退化问题)也更难训练。尽管有一些技术,例如跨层连接、批量归一化等可以有效减缓训练问题,但是深层网络的精度回报减弱了:举个例子,ResNet-1000和ResNet-101具有类似的精度,即使它的层数更多。
宽度(w):缩放网络宽度也是一种常用的手段,正如之前讨论过的,更宽的网络可以捕捉到更细粒度的特征从而易于训练。然而,非常宽而又很浅的网络在捕捉高层次特征时有困难。
Resolution(r):使用更高分辨率的输入图像,ConvNets可能可以捕捉到更细粒度的模式。从最早的 224x224,现在有些ConvNets为了获得更高的精度选择使用 229x229 或者 331x331。目前,GPipe使用 480x480 的分辨率获得了最先进的ImageNet精度,更好的精度比如 600x600 也被广泛使用在目标检测网络中。

Compound Scaling

论文中提出了Compound Scaling,同时对通过NAS得到的baseline模型Efficient-b0的深度(depth)、宽度(width)、输入图片分辨率(resolution)进行scaling,得到一系列网络模型EfficientNets。
single scaling and compound scaling

single scaling and compound scaling

scaling rule

scale rule

EfficienNets在与ImageNet中相同水平的模型比较中,总是有较高的准确率和较低的参数量。
EfficienNets与各类模型在ImageNet上的比较

EfficienNets与各类模型在ImageNet上的比较
  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值