MobileNetV2: Inverted Residuals and Linear Bottlenecks
MobileNetV2: 倒置的残差和线性瓶颈
文章目录
摘要
在本文中,我们描述了一个新的移动架构MobileNetV2,它提高了移动模型在多个任务和基准上的性能,并且跨越了不同模型大小的范围。我们还描述了将这些移动模型应用于物体检测的有效方法,我们称之为SSDLit的新颖框架。此外,我们展示了如何通过DeepLabv3的简化形式建立移动语义分割模型,我们称之为移动DeepLabv3。
模型是基于一个倒置的残差结构,其中的捷径连接是在薄的瓶颈层之间。中间扩展层使用轻量级的深度卷积来过滤特征,作为非线性的来源。此外,我们发现,为了保持表征力,消除窄层中的非线性是很重要的。我们证明这可以提高性能,并提供了导致这种设计的直觉。
最后,我们的方法允许将模块的输入/输出域从转换的可表达性解耦出来,这为进一步分析提供了一个方便的框架。我们在ImageNet[1]分类、COCO物体检测[2]、VOC图像分割[3]上衡量了我们的性能, 评估了准确度和用乘法加法(MAdd)衡量的操作数之间的权衡,以及实际延迟和参数数量。
1. 倒置的残差结构:
- 传统的残差结构: 高维–>1*1卷积降维–>3*3卷积–>1*1卷积升维
- 倒置的残差结构: 低维–>1*1卷积升维–>3*3卷积–>1*1卷积降维
2. 窄层: 通道数少的层。
3. 解耦: 模块的输出和输入称为 capacity;将模块的输入transform为输出部分称为 expressiveness,将它俩解耦,两者影响度降低。即maintain模块输出和输入的 capacity(包含了被压缩的主要信息)的同时,通过扩张到高维空间to增强非线性tranformation的expressiveness。
一、创新点
- Linear Bottlenecks
- Inverted residuals
1、Linear Bottlenecks
Linear Bottlenecks就是不带非线性激活函数的1*1卷积,来解决由于(高维变低维)非线性激活函数ReLU造成的信息损失问题。
因为manifold of interest
(经过激活层的有用的信息) 如果充满整个激活空间(即激活空间的维度小),那么在使用ReLU函数进行激活时,负数直接变为0,这样就会导致失去较多有用的信息。如果manifold of interest
存在于激活空间(have lots of channels)的更低维的子空间时,ReLU会保存信息。因为当ReLU collapses the channel,information may保存在 other channels.
- ReLu不适合由高维变为低维的非线性激活。
- 在使用ReLU非线性变换前,要升维。
证明:
n维特征X–>m个神经元–>ReLU–>y0
y0=ReLU(BX)有唯一解X(ReLU不会丢失信息)
仅当:
- y0中至少n个激活为正(应升维,确保正激活足够多)
- 与n个正激活值,对应的B中的n个神经元的权重非线性相关
m>>n,就是升维升的足够多时,可以就比较容易可逆
2、Inverted residuals
shortcut是连在了bottlenecks 之间,而不是expansion layer 之间。
- 因为bottleneck包含了所有the necessary information
- 也进一步提高梯度在深层卷积网络的传播能力。
- 实验证明,内存效率高
- 传统的残差结构:是中间的Tensor层比较narrow,所以中间的3*3的卷积成为bottleneck
- 倒置的残差结构:是两头的Tensor层比较narrow,所以两头的输入和输出称为bottleneck
二、模型结构
1、Block
在训练时使用了BN和Dropout
使用ReLU6作为非线性函数,因为在低精度训练时具有鲁棒性(这个在V1也用了)
2、model 结构
t:expansion rate
c:输出通道数
n:该模块重复次数
s:首个模块的步长stride
- expansion rates 在5-10之间, 具有差不多的效果,当然large networks 设置更大的expansion rates,效果会稍微好一点
- 论文中展示的选用了expansion rate=6
- 使用conv2d 代替fc全连接层
三、实验
1、ImageNet Classification
训练:
- RMSPropOptimizer :decay和moment 为0.9
- 每一层后面使用BN
- 初始学习率为0.045,decay rate 为0.98 per epoch
- batch size:96
2、Object Detection
首先提出了SSDLite。就是对SSD结构做了修改,将SSD的预测层中所有标准卷积替换为深度可分离卷积。
3、Semantic Segmentation
总结
比较
借用了resnet的残差结构,相比V1,V2做了3处改变。
跟rensnet的block 很像,但刚好与Resnet的block相反,作者将其命名为Inverted residuals。
– ResNet 先降维 (0.25倍)、卷积、再升维。
– MobileNetV2 则是 先升维 (6倍)、卷积、再降维。
单词记录 2022-07-12
a reduced form 简化形式
actual latency 实际延迟
revolutionize many areas of machine intelligence 彻底改变了机器智能的许多领域
comes at a cost 要付出代价
is specifically tailored for 专门为…制定
multiple 多个
software controlled cache memory 软件控制的内存
never fully 不完全
property 特性
a drop-in replacement 一个直接替代品
strike an optimal balance between 达到最佳平衡
be dedicated to doing 致力于
genetic 遗传的
only if 只有当
supplemental 补充的
spiral 螺旋
hatch 孵化
take as A B 把B当做A
interior 内部的
remainder 其余
identical 相同的
minor 较小的,次要的
acyclic 非循环的
trivial 不重要的