美文网首页CV论文NAS
EfficientNet论文阅读

EfficientNet论文阅读

作者: FantDing | 来源:发表于2019-10-17 20:20 被阅读0次

论文原文

Abstract

Introduction

  • scale up:

    • 常规:increase depth, width, resolution.
    • new method: compound scaling method
  • baseline network:

    • architecture search: EfficientNet-B0

Related Work

ConvNet Accuracy

在精度方面的state-of-art

  • GoogleNet
  • SENet
  • GPipe

ConvNet Efficiency

几种efficient手段

  • model compression
  • 手动设计的 mobile-size的卷积网络
  • architecture search的mobile sizes卷积网络

这几种efficient手段无法应用于large model(larger design space, expensive tuning cost)

Model scaling

  • depth: ResNets
  • Width: WideResNet
    • width: 指channels
  • input image size

虽然这3种model scaling方法能增加精度,但是没能说明how to effectively scale to trade off efficiency and accuracy

Compound Model Scaling

Problem Formulation

怎么看这一小节都没什么用

  • 一个卷积层可以形式化成: Y_i=F_i(X_i)Y_i是输出tensor; X_i是输入tensor, with shape <H_i,W_i,C_i>

  • 则一个model可以写成公式: N=F_k \odot...\odot F_2 \odot F_1(X_1)=\odot_{j=1...k}F_j(X_1)

  • 而实际中,模型是分为多个stage的,每个stage中卷积类型是相同的,因此网络又可以定义为: N=\odot_{i=1...s}F_i^{L_i}(X_{<H_i,W_i,C_i>}), 其中F_i^{L_i}代表,在stage i中, layer F_i重复了L_i

  • 简化问题

    • step1: 不关注find best layer architecture F_i, 而是在预定义的baseline network上,搜索L_i, C_i, H_i, W_i
    • step2: 即使这样L_i, C_i, H_i, W_i的搜索空间仍然很大,为此,约束所有layer的scale比例都是一个常数(不同维度的比例不同,不同layer的比例相同)
    • 因此得到一下优化问题:
优化问题

Scaling Dimensions

单一维度scale

Depth(d):

  • 好处:
    • deeper net可以capture richer and complex features
    • generalize well
  • 弊端
    • 越深的网络越难收敛
    • 网络加深到一定程度,精度提高有限

Width(w):

  • 好处:
    • capture more fine-grained features
    • easier to train
  • 弊端
    • wide shallow net不易capture hign level features

Resolution(r):

  • 好处:

    • 确实可以提高精度
  • 弊端

    • 使用very high resolutions精度提高不大

看图总结:
单独scale up每个维度都能提高精度,但是对于更大点的模型,这种"Accuracy gain"的利好便不再有了

image

Compound Scaling

三个维度都scale up

经验得知,不同维度之间的scale up是相互影响的。如输入higher resolution images,为了增加感受野范围,需要增加网络depth;为了capture fine-grained patterns,需要增加width

如下图所示,使用相同的baseline network

  • 蓝色: 在depth和resolution不变的情况下,不断增大w的值
  • 红色: depth变成原来两倍,resolution变成原来1.3倍,再不断增大w
image

看图结论:
在FLOPS相同的情况下,to pursue better accuracy and efficiency ,it is citical to balance all dimensions

compound scaling method

作者提出了一种scale原则,如下图:
[站外图片上传中...(image-b36cca-1571643636142)]

  • \alpha, \beta, \gamma:通过grid search得到
  • \phi: compound coefficient。是用户依据可利用资源数量手动给定的系数
    通过上述两步就可以确定,depth,width,resolution的伸缩因子了

FLOPS

float per second

对于一个卷积操作,FLOPS与d, w^2, r^2是成比例的[1]。如,d=2, 即depth变成原来两倍,FLOPS也会变成原来2倍;w or r变成原来2倍,FLOPS将会变成原来四倍。FLOPS增加的倍数=d*w^2*r^2, 如果写成关于\phi, 则有FLOPS增加的倍数=\alpha^\phi*(\beta^\phi)^2*(\gamma^\phi)^2=(\alpha*\beta^2*\gamma^2)^\phi=2^\phi

其中有一些是“约等于”的关系:

  • 网络总的FLOPS,约等于总的卷积操作FLOPS
  • (3)式的等式约束是约等于的

EfficientNet architecture

EfficientNet-B0

B0网络是baseline network

  • 是通过neural architecture search技术搜索[2] 出来的

  • mobile-sized

efficientNet-b0网络结构图

[站外图片上传中...(image-d9c2b1-1571643636142)]

如何进行scale up

  • step1: 令\phi=1, 通过small grid search找到最优\alpha, \beta, \gamma. “最优”是指的是ACC(model)最大,搜索出来的\alpha=1.2, \beta=1.1, \gamma=1.15

  • step2: 固定\alpha, \beta, \gamma, 增大\phi,得到新的d, w, r.从而得到EfficientNet-B1到B7

其实正常的做法是,先令\phi=1,进行一次搜索得到\alpha, \beta, \gamma; 再令\phi=2,搜索一次\alpha, \beta, \gamma;... 但是为了减少搜索的代价,作者使用了上述的简便方式

实验

Scaling up MobileNets and ResNets

在MobileNets和ResNets上比较两种scaling方法,说明了compound scaling比single-dimension scaling好[3]

image

ImageNet Results for EfficientNet

训练细节

  • bigger models need more regularization.因此大模型的dropout要增大
  • what
    • norm momentum
    • swish activation
    • fixed AutoAugment policy
    • stochastic depth

性能对比

  • TOP-1 ACC
  • TOP-5 ACC
  • parameters
  • FLOPS

Latancy

为了说明real hardware上真实有效,又做了inference latency实验对比
[站外图片上传中...(image-77c9b6-1571643636142)]

Transfer Learning Results for EfficientNet

在其他8个数据集上比较,有5个数据集都做到了state-of-art, but magnitude fewer parameters

Discussion

为了说明 compound scaling比single-dimension scaling好,作者又在B0上,做了不同scaling的比较实验。compound scaling能有2.5%的精度提升


scaling up EfficientNet-B0

why better

通过activation map可视化[4]发现compound scaling method能够让模型关注more relevant regions with more object details

different scaling method at the same baseline model

参考文章

角注


  1. why FLOPS与width, resolution是平方的关系

  2. neural architecture search

    • Tan, M., Chen, B., Pang, R., Vasudevan, V., Sandler, M.,
      Howard, A., and Le, Q. V. MnasNet: Platform-aware
      neural architecture search for mobile. CVPR, 2019.
    • MnasNet
    • MBConv
    • squeeze-and-excitation optimization
  3. 为什么不搜索一个最好的w or d来比较,而是随便使用了2、4之类的来比较

  4. activation map可视化: 《Learning deep features for discriminative localization》


    CAM生成方式

相关文章

网友评论

    本文标题:EfficientNet论文阅读

    本文链接:https://www.haomeiwen.com/subject/qjavmctx.html