论文记录_MobileNets Efficient Convolutional Neural Networks for Mobile Vision Application

Posted 莫失莫忘Lawlite

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了论文记录_MobileNets Efficient Convolutional Neural Networks for Mobile Vision Application相关的知识,希望对你有一定的参考价值。

1、概述

  • Google2017年提出的适用于手机端的神经网络模型
  • 主要使用了深度可分离卷积Depthwise Separable Convolution 将卷积核进行分解计算来减少计算量
  • 引入了两个超参数减少参数量和计算量
    • 宽度乘数(Width Multiplier): [减少输入和输出的 channels ]
    • 分辨率乘数(Resolution Multiplier):[减少输入输出的 feature maps 的大小]

2、深度可分离卷积(Depthwise Separable Convolution

  • 可以将一个标准卷积核分成一个深度卷积depthwise convolution 和 一个1X1的卷积(叫作逐点卷积pointwise convolution)。如下图所示

2.1 标准卷积

  • 标准的卷积层是将维度为 D F ×D F ×M  的输入层转化为维度为 D G ×D G ×N  [ 上篇论文中也有提到]
    • D F   是输入feature map的长和宽,M 是输入的通道数(channels
    • D G   是输出feature map的长和宽,N 是输出的通道数
  • 假设卷积核filter的大小是 D k ×D k   ,则标准卷积的计算量是 D k D k MND F D F  
    • 引用上篇论文中的图, 只看kernel matrix 部分, D k D k   就是一个方格的大小,然后乘上输入和输出的channels个数,然后作用在input feature maps
  • 标准卷积是这样的, 即不管当前pixel有多少channels,卷积之后就是一个channel

2.2 Depthwise Separable Convolution

  • 分为两个步骤
    • 第一步深度卷积:卷积核的大小是 D k ×D k ×1×M  ,所以总的计算量是: D k D k MD F D F  
    • 第二步逐点卷积:卷积核大小是 1×1×M×N  ,所以总的计算量是: MND F D F  
  • 所以和标准的卷积相比计算量比率为: D k D k MD F D F +MND F D F D k D k MND F D F  =1N +1D 2 k   
    • MobileNet使用的是3x3的卷积核,所以计算量可以减少8-9倍 (因为比率是1/N+1/9)
  • 第一步深度卷积操作是在每一个channel上进行的卷积操作


- 第二步逐点卷积才是结合起来

3. 神经网络结构

  • MobileNet共有28层(深度卷积和逐点卷积分开来算)
  • 之前标准的结构是卷积层之后跟上Batch Normalization层和Relu激活函数,这里引入Depthwise separable convolution之后的结构如下图
    • 每一层都跟上了BN层和激活函数
  • 总的结构

4. 宽度乘数(Width Multiplier)