MobileNets

来源:互联网 发布:知乎live 百度网盘 编辑:程序博客网 时间:2024/06/05 23:47

      使用depth-wise separable convolutions来建立一个light weight deep nn。引入了两个简单的全局变量来平衡latency和accuracy,这些超参数使建模者能够根据实际问题的限制来选择合适的模型尺寸。

1、Introduction 略

2、Prior Work

      为了实现模型设计中small和efficient的目标,大部分研究专注于压缩pretrain model或者直接训练小的模型。本论文同时考虑对于速度和模型大小的优化。

      重点点了几篇论文:Flattened networks, Factorized networks, Xception network, Squeezenet。此外还有structure transform networks和deep fried convnets。而另一类方法通过shrink, compress, factorize预训练模型来获得小网络。Compress的方法包括product quantization, hashing, pruning, vector quantization和Huffman coding。此外,还有additionally various factorizations 和distillation的方法。

3、MobileNet Architecture

3.1 Depthwise Separable Convolution

       depthwie separable convolution由两个部分组成,一个是分别用一个filter来处理一个input的depthwise convolution,另一个是用1*1卷积把depthwise的output联合在一起的pointwise convolution

       对于普通卷积过程,feature map的尺寸为Df, filter尺寸为Dk,输入数量为M,输出数量为N的情况下,运算量为Dk*Dk*M*N*Df*Df。而在使用depthwise convolution两步计算后的运算量为Dk*Dk*M*Df*Df + M*N*Df*Df, 运算量有着显著的下降。

3.2 Network Structure and Training

        MobileNet中除了第一个层是full conv以外都使用了dsc的模式。每一个conv层都伴随有BN和RELU,也就是说原来的一个卷积带一个BN一个Relu化为了两套conv BN Relu。在MobileNet中,95%的运算量都在1*1的卷积过程中,同样这一过程也包括了75%的参数,另外的参数主要是在全链接层中,3*3卷积层所占的参数数量和运算量都非常的小。在训练过程中,没有使用side heads,label smoothing这样的方法,因为这种小模型通常不会有过拟合的问题。此外,作者发现对于模型里的3*3卷积使用很小的或者不使用weight decay对于训练非常有用,因为本来参数就已经非常少了,capacity有限。

3.3 Width Multiplier: Thinner Models

        为了服务特定应用,训练出更小和更快的模型,这里引入了一个简单的参数alpha。alpha能均衡的稀疏网络的每个层,对于一个给定的层,它的input将变为alpha*M,output变为alpha*N。这里alpha的取值一般为[1, 0.75, 0.5, 0.25]。 (这里忍不住要吐一下槽,这个参数真的值得写这么一段么?)

3.4 Resolution Multiplier:Reduced Representation

        这个参数phi就是直接减少输入的尺寸,从而减少各层的Df。。。

     

阅读全文
0 0
原创粉丝点击