mobilenet-v1

论文地址:MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
这是第一版的mobilenet,它是一个轻量级的网络,既可以保证accurate掉点不严重,又可以保证高速,是可以在CPU上或者其他嵌入式设备上实施运行的模型。这篇论文引入了两个全局超参数来权衡时延和accurate。
常规缩小模型的操作:depthwise separable convolutions;卷积层提速;模型压缩:量化,哈希,剪枝,哈夫曼编码;模型蒸馏。

Mobilenet Architecture

depthwise separable filters

Depthwise Separable Convolution
把常规conv分解:depthwise conv+1×1(pointwise conv)
depthwise conv是放在输入经过的第一层的单卷积核,随后是1×1,来连接depthwise conv的输出。他把常规的conv分成了两步,他减小了模型规模,降低了运算量
在这里插入图片描述
假设feature map的大小为 D F D_{F} DF× D F D_{F} DF×M
标准卷积的运算: D F D_{F} DF× D F D_{F} DF×M× D K D_{K} DK× D K D_{K} DK×N
在这里插入图片描述
depthwise conv输出特征为:( D G D_{G} DG D G D_{G} DG,M)
计算量为: D F D_{F} DF× D F D_{F} DF×M× D K D_{K} DK× D K D_{K} DK
pointwise conv输出特征为:( D G D_{G} DG D G D_{G} DG,N)
计算量为: D F D_{F} DF× D F D_{F} DF×M×N
计算量一共减少:
在这里插入图片描述

Network Structure and Training

Mobilenet除了第一层用来完整的卷积核之外,其他使用的都是depthwise separable conv。他的每个卷积操作后面都加了BN和Relu,他的结构如下:
在这里插入图片描述
他的下采样用在了每一个block的第一层卷积里。
在这里插入图片描述
模型几乎将所有的密集运算放到1×1 卷积上,占用了95%的计算时间,这可以使用general matrix multiply (GEMM) functions优化。这部分也占了75%的参数:
在这里插入图片描述
Mobilenet在tensorflow上用了RMSprop,但是没有用其他正则化方式和数据增强,因为小型网络面临的问题是欠拟合。同时权重衰减和L2正则没有啥作用,因为参数真的太少了

Width Multiplier: Thinner Models

如何让运行速度进一步加快:引入宽度因子 α α α。他可以让网络变瘦。他让每个输入层的channel变为 α M αM αM,输出的channel变成 α N αN αN。所以最后的运算量变为: D F × D F × α M × D K × D K + D F × D F × α M × α N D_{F}×D_{F}× αM×D_{K}×D_{K}+D_{F}×D_{F}×αM ×αN DF×DF×αM×DK×DK+DF×DF×αM×αN,他使计算量减少了 α 2 α ^2 α2

α α α取[0,1],一般来说取1,0.75,0.5,0.25

Resolution Multiplier: Reduced Representation

第二个超参数分辨率因子 ρ ρ ρ,他用于控制输入和每一层的大小,他是输入的分辨率。引入 ρ ρ ρ α α α之后的计算量为: ρ D F × ρ D F × α M × D K × D K + ρ D F × ρ D F × α M × α N ρD_{F}×ρD_{F}× αM×D_{K}×D_{K}+ρD_{F}×ρD_{F}×αM ×αN ρDF×ρDF×αM×DK×DK+ρDF×ρDF×αM×αN
在这里插入图片描述

Experiments

为了进一步缩小模型,可将MobileNet中的5层14×14×512 14×14×51214×14×512的深度可分离卷积去除

在这里插入图片描述
table 5 相同参数和计算量下,精度衰减了3%。(中间的深度卷积用于过滤作用,参数量少,冗余度相比于大量的逐点卷积应该是少很多的)
在这里插入图片描述
在这里插入图片描述
交叉验证计算量对精度影响
图4显示了16个交叉的模型在ImageNet上的表现,宽度因子取值为α∈{1,0.75,0.5,0.25}分辨率取值为{224,192,160,128} 。当模型越来越小时,精度可近似看成对数跳跃形式的。
在这里插入图片描述
交叉验证参数量对精度影响
图5显示了16个交叉的模型在ImageNet上的表现,宽度因子取值为α∈{1,0.75,0.5,0.25} ,分辨率取值为{224,192,160,128} 。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值