30组-MobileNets论文解读和MobileNetV2简介

引言

深度学习能够很好解决部分计算机视觉相关的问题,但是其需要依靠强大的计算能力作为支撑。深度学习在能耗有限,计算资源有限和存储空间有限的移动端部署困难重重。
在不改变网络结构的前提下,网络稀疏化,量化是加速和压缩深度神经网络模型的重要手段。以AlexNet为例,网络的权重有233M的参数,在ILSVRC-2012上精度top1=62.5% top5=83%,而ResNet-1845M的参数,在同样的数据集上精度top1=69%, top5=89%(非官方)。一方面说明模型参数又很大的冗余,有很多参数都可以稀疏化为0,而且AlexNet要比ResNet更容易稀疏化,这也是很多稀疏化方面的论文都先拿旧的AlexNet开刀而不是新的ResNet的原因,更加令人惊讶的是,即使是具有更优结构的ResNet,在卷积层稀疏度达到70%左右时,仍能够保持原有精度,可见参数冗余程度之大;另一方面,纵向看两个网络,更优结构的网络能够具有更优的表达能力,即便是参数规模减少了很多,仍能够有很大的精度提升。鉴于此,像Google这种擅长造轮子的公司,肯定对此有更深的理解,提出更加高效的MobileNets,也就理所应当了。

V1

概要

  • MobileNets是针对手机等嵌入式设备而提出的轻量级模型,用深度可分离卷积构建轻量深度神经网络,从而简化了网络结构。
  • 为了有效地平衡延迟度和准确度,使用了2个全局超参数(global hyper-parameters),这就使得可以根据应用来建立大小合适的模型。
  • 作者对于延迟度-准确度做了实验,与其他模型相比,在ImageNet分类上的效果并不差。并在物体检测、细粒度分类、人脸属性、大规模地理定位等应用中测试,说明了MobileNets的有效性。


    30组-MobileNets论文解读和MobileNetV2简介_第1张图片
    MobileNets

1 背景

  1. 速度的需求
    自从AlexNet在ILSVRC 2012中对于ImageNet的分类得了第一,CNN就火了起来,然后网络向更深、更复杂发展(VGG,GoogleNet,Inception,ResNet)。虽然准确度在提高,然而这些网络就speed/size来看,性价比并不一定高。但是像是机器人、自动驾驶、增强现实等任务,常常是要求在计算能力并不强的平台上实时输出。于是MobileNets应运而生。

  2. 前人工作
    针对构建小而高效的神经网络而言,前人的工作主要分为2类:

  • 压缩训练好的网络:哈希、哈夫曼编码、蒸馏等方法
  • 直接训练轻量网络

2 MobileNets 的网络架构

2.1 深度可分解卷积 Depthwise Seperable Convolution
  • “深度可分解卷积”指:
    一个标准卷积 分解为-> 一个深度卷积 + 一个点卷积(1 * 1卷积核)

    (深度卷积 depthwise convolution;点卷积 pointwise convolution)
  • 图示:
    30组-MobileNets论文解读和MobileNetV2简介_第2张图片
  • 字符说明:
    F为输入特征
    -- DF为输入的宽度和高度
    -- M为输入的深度
    K为卷积核
    -- DK为卷积核的维度
    G为输出特征
    -- DG为输出的宽度和高度
    -- N为输出的深度
  1. BEFORE —— 标准卷积流程
    计算量:
  2. AFTER —— 深度可分解卷积流程
    计算量:
  3. 对比:
    30组-MobileNets论文解读和MobileNetV2简介_第3张图片
    也就是说,如果用3 * 3的卷积核,计算复杂度缩减了8~9倍
2.2 网络结构
  • 基于深度可分离卷积,共28层(depthwise convolutions和pointwise convolutions 分开算),每一层后接batchnorm和ReLU
  • 例外1:第一层为全卷积
  • 例外2:最后一层后没有非线性层
    30组-MobileNets论文解读和MobileNetV2简介_第4张图片
    30组-MobileNets论文解读和MobileNetV2简介_第5张图片
    30组-MobileNets论文解读和MobileNetV2简介_第6张图片
2.3 Width Multiplier α: Thinner Models
  • 作用:使得每层网络都变薄
  • 计算量变为:

    输入通道由M变为αM,输出通道由N变为αN

  • α = 1为正常MobileNets;α < 1为缩减的MobileNets
  • 计算量和参数个数大致缩小为原来的α2
2.4 Resolution Multiplier ρ: Reduced Representation
  • 作用:输入分辨率下降
  • 计算量变为:
  • ρ = 1为正常MobileNets;ρ < 1为缩减的MobileNets
  • 计算量和参数个数大致缩小为原来的ρ2
    30组-MobileNets论文解读和MobileNetV2简介_第7张图片

3 实验

3.1 模型选择
30组-MobileNets论文解读和MobileNetV2简介_第8张图片

上表说明,与全卷积相比,MobileNets在准确度只减少1%的情况下,大大减少了计算量和参数个数


30组-MobileNets论文解读和MobileNetV2简介_第9张图片

上表说明,在计算量和参数个数差不多的情况下,使MobileNets更薄比使更浅,只优秀3%

3.2 用于缩减模型的超参数
30组-MobileNets论文解读和MobileNetV2简介_第10张图片

上图说明调节α和ρ两个超参对准确度产生的影响


30组-MobileNets论文解读和MobileNetV2简介_第11张图片

上表对各种网络做了对比

3.3 Fine Grained Recognition 细粒度识别
30组-MobileNets论文解读和MobileNetV2简介_第12张图片

在Stanford Dogs上,MobileNets在极大减少计算量和参数个数的情况下,准确度几乎能达到现有最高水平

3.4 Large Scale Geolocalization 大规模地理定位
30组-MobileNets论文解读和MobileNetV2简介_第13张图片
3.5 Face Attributes 人脸属性分类
30组-MobileNets论文解读和MobileNetV2简介_第14张图片
3.6 Object Detection 目标检测
30组-MobileNets论文解读和MobileNetV2简介_第15张图片
3.7 Face Embeddings 人脸嵌入
30组-MobileNets论文解读和MobileNetV2简介_第16张图片

MobileNetV2

MobileNetV1网络是一条路的单通道结构,没有feature map的复用。ResNetDenseNet等网络的提出,也验证了feature map复用对提升网络性能的有效性,MobileNetV2便应运而生。MobileNetV2提出使用 inverted residual with linear bottleneck,有很大residual block的影子在里面,又不得不再次膜拜何凯明大神。接下来便介绍一下MobileNetV2Linear BottlenecksInverted residuals这两个核心创新点。

Linear Bottlenecks

假设某层的输出的feature map大小为HxWxD,经过激活层后称之为manifold of interest,可以理解为感兴趣流形或有用的信息,大小仍为HxWxD,经验证明manifold of interest完全可以压缩到低维子空间,在V1版本中便可以通过width multiplier parameter来降低激活空间的维数使得manifold of interest充满整个空间。问题就来了,在使用ReLU函数进行激活时,负数直接变为0,这样就会导致失去较多有用的信息(这在manifold of interest占激活空间较小时不是一个问题)。
总结一下,有以下两点:

  • 如果manifold of interest经过ReLU后均为非零,意味着只经过了一个线性变换
  • 除非input manifold位于输入空间的低维子空间,经过ReLU后才能保持完整的信息

因此,论文中使用了linear bottleneck来解决由于非线性激活函数造成的信息损失问题。linear bottleneck本质上是不带ReLU的1x1的卷积层。

Inverted residuals

30组-MobileNets论文解读和MobileNetV2简介_第17张图片
The difference between residual block and inverted residua

考虑到 manifold of interest在低维子空间,所以对应的 botteneck便是更加需要关注的点。在Inverted residual 结构中, bottleneck放在了首尾,中间则通过 expand来扩展了 channel
具体的Inverted residual的结构参见下图,input首先经过 expand layerchannel扩展为原来的6倍,然后再经过 depthwise convolution layerlinear layer,恢复为原来的大小。在 depthwise convolution layer首先将 channel扩展,增加了冗余,以便后边的Depthwise Separable Convolutions能够选择到包含 manifold of interestchannel
30组-MobileNets论文解读和MobileNetV2简介_第18张图片
MobileNetV2

30组-MobileNets论文解读和MobileNetV2简介_第19张图片
An inverted residual block in MobileNetV2

实验部分与V1版本类似,分别在classification、object detection和segmentation三个方向做了比较,取得了更好的效果。以分类为例MobileNetV2对比在性能上的提升。


30组-MobileNets论文解读和MobileNetV2简介_第20张图片
image.png

Reference

MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
MobileNetV2: Inverted Residuals and Linear Bottlenecks
mobilenet网络的理解
深度解读谷歌MobileNet
MobileNet论文阅读笔记
CNN网络优化学习总结——从MobileNet到ShuffleNet
轻量化网络:MobileNet-V2
MobileNet V2 论文笔记
MobileNet v2 算法笔记
残差resnet网络原理详解
深度学习方法:卷积神经网络CNN经典模型整理Lenet,Alexnet,Googlenet,VGG,ResNet
Deep Learning回顾#之LeNet、AlexNet、GoogLeNet、VGG、ResNet
Lenet、Alexnet 、VGG、 GoogleNet、ResNet模型

你可能感兴趣的:(30组-MobileNets论文解读和MobileNetV2简介)