MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications

本文介绍了MobileNets模型,该模型采用depthwise separable convolutions减少计算量,提高移动端运行效率。主要关注点在于优化延迟而非压缩整个模型。depthwise convolution将传统卷积分解为两步,先对每个输入通道应用过滤器,再用1x1卷积合并结果,显著降低了计算复杂度。此外,文章提出了宽度乘数和分辨率乘数两个超参数,用于调整模型大小和输入分辨率,以平衡精度和速度。实验表明,MobileNets在保持性能的同时,显著减少了计算需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文提出了MobileNets的模型,有助于减少inference的时间,使得其可以在移动端开展运行。最重要的算法为depthwise separable convolutions,是将传统的卷积算法分解为了两步,可以减少卷积的时间复杂度和实际的运行时间。同时为了在移动端更加灵活地应用,文章提出了两个全局的超参数用来权衡latency和accuracy。

相比于其他的将CNN移植到移动端的方法,MobileNets的关注点不在于压缩整个模型,而是更注重对于Latency的优化。

1 MobileNet Architecture

1.1 Depthwise Separable Convolution

基本思想是将传统卷积拆分成两步:depthwise convolution和pointwise convolution(1×1的卷积)。

首先depthwise convolution,对于每一张input channel施加一个filter;然后使用1×1的pointwise convolution将得到的depthwise convolution的output组合起来。所以,现在我们可以将传统卷积视为一个两层的卷积网络,一层做depthwise convolution,一层做pointwise convolution。

下面来分析一下两种卷积方式的时间复杂度,假设input有M个channel,每个kernel size是Dk×Dk,在卷积之后得到的是N个channel的output,每个feature map是Df×Df。

Standard convolution

总体需要的计算量为:D_K\times{D_K}\times{M}\times{N}\times{D_F}\times{D_F}

Depthwise convolution & pointwise convolution

第一步是depthwise convolution,具体的做法是每一个input channel只用一个filter,得到M个Df×Df的feature map。所以总共需要的计算量为:D_K\times{D_K}\times{M}\times{D_F}\times{D_F}

第二步是pointwise convolution,使用N个1×1×M的kernel将上一步的结果合并,得到N个Df×Df的feature map。所以总共需要的计算量为:M\times{N}\times{D_F}\times{D_F}

故最终的计算量为D_K\times{D_K}\times{M}\times{D_F}\times{D_F}+M\times{N}\times{D_F}\times{D_F}

减少的计算量的比例为:\frac{D_K\times{D_K}\times{M}\times{D_F}\times{D_F}+M\times{N}\times{D_F}\times{D_F}}{D_K\times{D_K}\times{M}\times{N}\times{D_F}\times{D_F}}=\frac{1}{N}+\frac{1}{D_K^2},其中MobileNets使用的是3×3的filter,所以最终可以提升8~9倍的performance。

2.2 Networkarchitecture and training

第一层为full convolution,其他的都是按照2.2中的分解的卷积进行操作的。

每一层(除了最后的soft-max)都进行了Batchnorm和ReLU的操作。

详细的架构如下:

最训练的时候使用了RMSprop和asynchronous gradient descent。

几乎没有使用regularization和data augmentation,因为小model的overfitting问题不大。

在depthwise convolution层没有使用weight decay,因为参数太少了。

2.3 Width multiplier: thinner models

这里引入了一个关乎模型大小的超参数α,用来调节每一层input的channel数量。每一层的channel数量就是αM。

所以最终的计算量为:D_K\times{D_K}\times{\alpha M}\times{D_F}\times{D_F}+\alpha M\times{\alpha N}\times{D_F}\times{D_F}

2.4 Resolution multiplier: reduced representations

通过这个超参数ρ来调节input image的resolution。

所以最终的计算量为:D_K\times{D_K}\times{\alpha M}\times{\rho D_F}\times{\rho D_F}+\alpha M\times{\alpha N}\times{\rho D_F}\times{\rho D_F}

3 Experiment

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值