论文笔记
资料
1.代码地址
还没上传
2.论文地址
https://arxiv.org/abs/1704.04861
3.数据集地址
还没上传
1论文摘要的翻译
我们提出了一类称为mobilenet的高效模型,用于移动和嵌入式视觉应用。MobileNets基于流线型架构,使用深度可分离卷积来构建轻量级深度神经网络。我们引入了两个简单的全局超参数,它们可以有效地在延迟和准确性之间进行权衡。这些超参数允许模型构建者根据问题的约束为其应用程序选择合适大小的模型。我们在资源和精度权衡方面进行了广泛的实验,与其他流行的ImageNet分类模型相比,我们展示了强大的性能。然后,我们在广泛的应用和用例中展示了MobileNets的有效性,包括对象检测、细粒度分类、人脸属性和大规模地理定位。
2论文的创新点
- 提出了一类称为mobilenet的高效模型,用于移动和嵌入式视觉应用
- 我们引入了两个简单的全局超参数,它们可以有效地在延迟和准确性之间进行权衡。
3 论文方法的概述
网络架构
3.1 Depthwise Separable Convolution
MobileNet模型基于深度可分离卷积,这是一种分解卷积的形式,它将标准卷积分解为深度卷积和称为点卷积的1 × 1卷积。对于MobileNets,深度卷积对每个输入通道应用单个过滤器。然后,点向卷积应用1 × 1卷积来组合深度卷积的输出。标准的卷积在一个步骤中将输入过滤并组合成一组新的输出。深度可分离卷积将其分成两层,一层用于过滤,另一层用于组合。这种分解具有显著减少计算和模型大小的效果。图2显示了如何将标准卷积2(a)分解为深度卷积2(b)和1 × 1点卷积2©。
3.1.1 标准卷积
对于标准的卷积层, D F 为正方形输入特征图的空间宽度和高度 , , M 为输入通道数 ( 输入深度 ) , D G 为正方形输出特征映射的空间宽度和高度, N 为输出通道数 ( 输出深度 ) 。 D_F为正方形输入特征图的空间宽度和高度, ,M为输入通道数(输入深度),D_G为正方形输出特征映射的空间宽度和高度,N为输出通道数(输出深度)。 DF为正方形输入特征图的空间宽度和高度,,M为输入通道数(输入深度),DG为正方形输出特征映射的空间宽度和高度,N为输出通道数(输出深度)。输入为: D F × D F × M D_F × D_F × M DF×DF×M特征图F儿输出结果为 D G × D G × N D_G × D_G × N DG×DG×N特征图G
标准卷积层由大小为 D K × D K × M × N D_K ×D_K ×M ×N DK×DK×M×N的卷积核K来参数化,其中 D K D_K DK是假设为平方的核的空间维度, M M M是输入通道数, N N N是前面定义的输出通道数,假设步长为1,填充为1,标准卷积的输出特征映射计算为:
G
k
,
l
,
n
=
∑
i
,
j
,
m
K
i
,
j
,
m
,
n
⋅
F
k
+
i
−
1
,
l
+
j
−
1
,
m
\mathbf{G}_{k,l,n}=\sum_{i,j,m}\mathbf{K}_{i,j,m,n}\cdot\mathbf{F}_{k+i-1,l+j-1,m}\quad
Gk,l,n=i,j,m∑Ki,j,m,n⋅Fk+i−1,l+j−1,m
标准卷积的计算代价为
D
K
⋅
D
K
⋅
M
⋅
N
⋅
D
F
⋅
D
F
D_K · D_K · M · N · D_F · D_F
DK⋅DK⋅M⋅N⋅DF⋅DF
其中,计算代价乘取决于输入通道数M、输出通道数N、核大小
D
k
×
D
k
D_k × D_k
Dk×Dk和特征映射大小
D
F
×
D
F
D_F × D_F
DF×DF。MobileNet模型解决了这些术语及其相互作用。首先,它使用深度可分离卷积来打破输出通道数量和核大小之间的相互作用。
3.1.2 深度可分离卷积
过滤和组合步骤可以通过使用被称为深度分解的卷积分解为两个步骤,可分离的卷积大大减少了计算成本。
我们使用深度卷积对每个输入通道(输入深度)应用单个滤波器。然后使用点卷积(一个简单的1×1卷积)来创建深度层输出的线性组合。mobilenet在这两层都使用了batchnorm和ReLU非线性。
每个输入通道(输入深度)有一个滤波器的卷积
G
^
k
,
l
,
m
=
∑
i
,
j
K
^
i
,
j
,
m
⋅
F
k
+
i
−
1
,
l
+
j
−
1
,
m
\hat{\mathbf{G}}_{k,l,m}=\sum_{i,j}\hat{\mathbf{K}}_{i,j,m}\cdot\mathbf{F}_{k+i-1,l+j-1,m}
G^k,l,m=i,j∑K^i,j,m⋅Fk+i−1,l+j−1,m
其中,
K
^
\hat{K}
K^K是大小为
D
K
×
D
K
×
M
D_K × D_K × M
DK×DK×M的深度卷积核,其中,
K
^
\hat{K}
K^中的第
M
M
M个滤波器应用于F中的第
m
t
h
m_{th}
mth通道,产生经过滤波的输出特征映射
G
G
G的第
m
t
h
m_{th}
mth个通道。
深度卷积的计算代价为:
D
K
⋅
D
K
⋅
M
⋅
D
F
⋅
D
F
D_K · D_K · M · D_F · D_F
DK⋅DK⋅M⋅DF⋅DF
深度卷积相对于标准卷积是非常有效的。然而,它只过滤输入通道,而不组合它们来创建新功能。因此,为了生成这些新特征,需要一个额外的层,通过1 × 1卷积计算深度卷积输出的线性组合。
深度可分离卷积代价:
D
K
⋅
D
K
⋅
M
⋅
D
F
⋅
D
F
+
M
⋅
N
⋅
D
F
⋅
D
F
D_K·D_K·M·D_F·D_F + M·N·D_F·D_F
DK⋅DK⋅M⋅DF⋅DF+M⋅N⋅DF⋅DF它是深度卷积和1 × 1点卷积的总和
通过将卷积表示为过滤和组合的两步过程,我们可以减少计算量:
D
K
⋅
D
K
⋅
M
⋅
D
F
⋅
D
F
+
M
⋅
N
⋅
D
F
⋅
D
F
D
K
⋅
D
K
⋅
M
⋅
N
⋅
D
F
⋅
D
F
=
1
N
+
1
D
K
2
\begin{aligned}&\frac{D_{K}\cdot D_{K}\cdot M\cdot D_{F}\cdot D_{F}+M\cdot N\cdot D_{F}\cdot D_{F}}{D_{K}\cdot D_{K}\cdot M\cdot N\cdot D_{F}\cdot D_{F}}\\&=\quad\frac1N+\frac1{D_K^2}\end{aligned}
DK⋅DK⋅M⋅N⋅DF⋅DFDK⋅DK⋅M⋅DF⋅DF+M⋅N⋅DF⋅DF=N1+DK21
MobileNet使用3 × 3深度可分离卷积,其使用的计算量比标准卷积少8到9倍,而且精度只有很小的降低,
3.2 网络结构和训练
MobileNet架构的定义见表1。所有层之后都有一个BN和ReLU激活函数,但最后一个完全连接层除外,它没有ReLU激活函数,并输入到一个softmax层进行分类。
图3将具有标准卷积、BN和ReLU激活函数是的层与具有深度卷积、1 × 1点卷积以及每个卷积层后的BN和ReLU激活函数的分解层进行了对比。
下采样在深度卷积和第一层中都是用跨行卷积处理的。最终的平均池化在完全连接层之前将空间分辨率降低到1。将深度卷积和点向卷积作为单独的层来计算,MobileNet有28层。
非结构化稀疏矩阵操作通常不会比密集矩阵操作快,除非达到非常高的稀疏度。我们的模型结构将几乎所有的计算都放在密集的1 × 1卷积中。这可以通过高度优化的一般矩阵乘法(GEMM)函数来实现。卷积通常由GEMM实现,但需要在内存中进行初始的重新排序,称为im2col,以便将其映射到GEMM。例如,流行的Caffe包就使用了这种方法。
1×1卷积不需要在内存中重新排序,可以直接使用GEMM实现,GEMM是最优化的数值线性代数算法之一
MobileNet在1 × 1卷积中花费了95%的计算时间,其中也有75%的参数,如表2所示。几乎所有的附加参数都在完全连接层中。
3.3 宽度倍增器:更薄的模型
宽度乘法器
α
α
α的作用是在每一层均匀地薄化网络。宽度乘子
α
α
α,则输入通道数
M
M
M变为
α
M
αM
αM,输出通道数
N
N
N变为
α
N
αN
αN。
宽度乘子为α的深度可分离卷积的计算代价为:
D
K
⋅
D
K
⋅
α
M
⋅
D
F
⋅
D
F
+
α
M
⋅
α
N
⋅
D
F
⋅
D
F
D_K\cdot D_K\cdot\alpha M\cdot D_F\cdot D_F+\alpha M\cdot\alpha N\cdot D_F\cdot D_F
DK⋅DK⋅αM⋅DF⋅DF+αM⋅αN⋅DF⋅DF
其中
α
∈
(
0
,
1
)
α∈(0,1)
α∈(0,1),典型设置为1、0.75、0.5、0.25。
α
=
1
α = 1
α=1为基线MobileNet,
α
<
1
α < 1
α<1为减少的MobileNet。宽度乘法器具有将计算成本和参数数量以大约
α
2
α^2
α2的倍数减少的效果。宽度乘数可以应用于任何模型结构,以定义一个新的更小的模型,具有合理的精度,延迟和大小权衡。它用于定义一个需要从头开始训练的新的简化结构
3.4 分辨率倍增器:减少代表性
降低神经网络计算成本的第二个超参数是分辨率乘数
ρ
ρ
ρ,这对输入图像和每层的内部表示随后被相同的乘数减少。在实践中,我们通过设置输入分辨率隐式地设置ρ。现在,我们可以将网络核心层的计算成本表示为宽度乘子α和分辨率乘子ρ的深度可分离卷积:
D
K
⋅
D
K
⋅
α
M
⋅
ρ
D
F
⋅
ρ
D
F
+
α
N
D_K\cdot D_K\cdot\alpha M\cdot\rho D_F\cdot\rho D_F+\alpha N
DK⋅DK⋅αM⋅ρDF⋅ρDF+αN
其中
ρ
∈
(
0
,
1
)
ρ∈(0,1)
ρ∈(0,1)通常隐式设置,使得网络的输入分辨率为224、192、160或128
ρ
=
1
t
ρ = 1t
ρ=1t是基线MobileNe,
ρ
<
1
ρ < 1
ρ<1是减少计算的MobibeNet。分辨率乘法器的计算成本降低大概
ρ
2
ρ^2
ρ2。
我们可以看看MobileNet中的一个典型层,看看深度可分离卷积、宽度乘法器和分辨率乘法器是如何降低成本和参数的。
表3显示了当架构收缩方法依次应用于层时,层的计算量和参数数量。第一行显示了一个完整卷积层的multi- add和参数,其输入特征映射的大小为14 × 14 × 512,核K的大小为3 × 3 × 512 × 512。
4 论文实验
4.1 模型选择
首先,我们展示了使用深度可分离卷积的MobileNet的结果,与使用完整卷积构建的模型进行了比较。在表4中我们看到,与完全卷积相比,使用深度可分离卷积只会减少在ImageNet上精度1%,极大地节省了mult-adds和参数。
接下来,我们将展示使用宽度倍增器的较薄模型与使用较少层的较浅模型的比较结果。为了使MobileNet更浅,将表1中特征尺寸为14 × 14 × 512的5层可分离滤波器去除
4.2 模型收缩超参数
表6显示了使用宽度乘法器α缩小MobileNet架构的精度、计算和大小权衡。精度平稳下降,直到结构在α = 0.25时变得太小。
表7显示了通过训练具有降低输入分辨率的mobilenet,不同分辨率乘法器的精度、计算和大小权衡。精度在分辨率上平稳下降。
图4显示了宽度乘子$α∈{1,0.75,0.5,0.25}$和分辨率$ρ∈{224,192,160,128}$的叉乘所得到的16个模型的ImageNet精度和计算之间的权衡。当模型在
α
=
0.25
α = 0.25
α=0.25时非常小时,结果是对数线性的提高。
图5显示了宽度乘数
α
∈
{
1
,
0.75
,
0.5
,
0.25
}
α∈\{1,0.75,0.5,0.25\}
α∈{1,0.75,0.5,0.25}和分辨率
ρ
∈
{
224
,
192
,
160
,
128
}
ρ∈\{224,192,160,128\}
ρ∈{224,192,160,128}的叉乘所得到的16个模型的ImageNet精度和参数数量之间的权衡。
表8将完整MobileNet与原始GoogleNet[30]和VGG16[27]进行了比较。MobileNet几乎与VGG16一样精确,但体积小32倍,计算强度低27倍。它比GoogleNet更精确,但体积更小,计算量减少2.5倍以上。
表9比较了宽度乘法器
α
=
0.5
α = 0.5
α=0.5和分辨率降低为160 × 160的简化MobileNet。减少的MobileNet比AlexNet好4%,但比AlexNet小45倍,计算量少9.4倍。它也比Squeezene在大约相同的大小和减少22倍的计算量下好4%。
4.3. 细粒度识别
我们在Stanford Dogs数据集上训练MobileNet进行细粒度识别[。我们扩展了的方法,从web上收集了一个比更大但有噪声的训练集。我们使用有噪声的网络数据预训练一个细粒度的狗识别模型,然后在斯坦福狗训练集上微调模型。Stanford Dogs测试集的结果见表10。MobileNet几乎可以在大大减少计算量和尺寸的情况下实现中最先进的结果。
4.4 大规模地理定位
PlaNet将确定一张照片是在地球上的什么地方拍摄的任务作为一个分类问题。他的方法是将地球划分成一个地理单元网格,作为目标类别,并在数百万张地理标记照片上训练卷积神经网络。PlaNet已经被证明可以成功地定位各种各样的照片,并且在处理相同任务时优于Im2GPS
我们在相同的数据上使用MobileNet架构重新训练PlaNet。而基于Inception V3架构的完整PlaNet模型有5200万个参数和57.4亿个multi -add。MobileNet模型只有1300万个参数,通常主体有300万个参数,最后一层有1000万个参数,多重添加有58万个参数
如表11所示,尽管MobileNet版本更加紧凑,但与PlaNet相比,其性能仅略有下降。此外,它的性能仍大大优于Im2GPS。
4.5. Face Attributes
MobileNet的另一个用例是压缩具有未知或深奥训练程序的大型系统。在人脸属性分类任务中,我们展示了MobileNet和蒸馏之间的协同关系,蒸馏是一种深度网络的知识转移技术。我们试图减少一个具有7500万个参数和1600万个multi - add的大型人脸属性分类器。分类器在类似于YFCC100M的多属性数据集上进行训练。
我们使用MobileNet架构提取人脸属性分类器。蒸馏[9]的工作原理是训练分类器模拟更大模型2的输出,而不是模拟真值标签,因此可以从大型(可能是无限的)未标记数据集进行训练。结合蒸馏训练的可扩展性和MobileNet的简约参数化,最终系统不仅不需要正则化(例如权重衰减和提前停止),而且性能也得到了提高。从表12中可以明显看出,基于mobilenet的分类器对积极的模型收缩具有弹性:它实现了与内部属性相似的平均平均精度(平均AP),而只消耗了1%的multi - add。
4.6. Object Detection
表13将MobileNet与Faster-RCNN[23]和SSD[21]框架下的VGG和Inception V2进行了对比。在我们的实验中,SSD以300输入分辨率(SSD 300)进行评估,Faster-RCNN以300和600输入分辨率(FasterRCNN 300, Faster-RCNN 600)进行比较。
Faster-RCNN模型对每张图像评估300个RPN proposal boxes然后求最小值。对于这两种框架,MobileNet仅以一小部分的计算复杂性和模型大小就获得了与其他网络相当的结果。
5总结
我们提出了一种新的基于深度可分离卷积的模型结构,称为MobileNets。我们研究了一些导致高效模型的重要设计决策。然后,我们演示了如何使用宽度乘法器和分辨率乘法器构建更小更快的mobilenet,通过权衡合理的精度来减少尺寸和延迟。然后,我们将不同的mobilenet与流行的模型进行了比较,展示了优越的尺寸、速度和准确性特征。最后,我们展示了MobileNet在应用于各种任务时的有效性。