【轻量级】轻量级网络结构总结

Depthwise-Wise convolutions是最近两年比较火的一种模块结构。这个结构第一次出现是在一篇博士论文中,L. Sifre. Rigid-motion scattering for image classification. hD thesis, Ph. D. thesis, 2014. 功力可想而知…

SqueezeNet

SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5MB model size

Abstract

这篇是ICLR 2017(2016年上传到arxiv)的文章.主要针对模型压缩的.使用的是分类网络中的AlenNet为代表.
目前很多方法都是只关注精度的,但是在同等精度的情况下,小的模型很多优点,比如:(1)训练等更快(2)在部署时更少的带宽要求,例如自动驾驶汽车(3)可以部署到FPGA等.正是由于有这些优点,本文提出了一种小的CNN架构,SqueezeNet.实现了AlexNet模型参数减少了50倍.在受用模型压缩技术情况下,可以做到减少510倍参数,只有0.5MB的模型大小.

模型压缩方面:本文工作的首要目标是确认一个模型,保证精度的情况下使用很少的参数.目前已经有许多模型压缩的方法了:SVD;设置阈值的方法;Deep Compression等.
CNN网络模块方面:目前有Inception modules等.
CNN网络架构方面:目前有bypass connections等.

Framework

本文针对保持精度减少参数提出了三个策略:(1)用1x1filters来代替3x3filters(2)减少3x3filters的输入通道数(3)推迟下采样,保证网络有大的activation maps.很容易看出来,(1)(2)是为了减少参数的,而(3)是为了在限制的参数数量条件下提高精度的.
针对(1)(2)本文提出了一种网络模块Fire Module.
【轻量级】轻量级网络结构总结_第1张图片
针对(3),本文对Fire Module进行了组合,创建了SqueezeNet.
【轻量级】轻量级网络结构总结_第2张图片

Experiment

这部分做了本文提出的性能与其他方法的比较.
【轻量级】轻量级网络结构总结_第3张图片
这一部分来分析Fire Module中超参数的合适取值,来保证准确率.
【轻量级】轻量级网络结构总结_第4张图片
接着实验说明了bypass结构的使用对结果的影响.
【轻量级】轻量级网络结构总结_第5张图片

Code

  • 项目主页: https://github.com/DeepScale/SqueezeNet

Xception

Xception: Deep Learning with Depthwise Separable Convolutions

Introduction

Xception是2016.10的文章,由Google提出,发表于CVPR 2017。值得一提的是,作者只有一个人。
Xception认为在卷积操作中channel和spatial相关性是可以解耦的,而普通的卷积时将两者混合起来进行的运算。通过解耦这两部分,可以精确控制channel和spatial上的运算,实验上可以提高性能。

Framework

【轻量级】轻量级网络结构总结_第6张图片
【轻量级】轻量级网络结构总结_第7张图片
【轻量级】轻量级网络结构总结_第8张图片
【轻量级】轻量级网络结构总结_第9张图片
因此,Xception中的’X’是Extreme的意思.
Xception和原depth separable convolution有两个不同点:(1)DWC是先channel-wise,然后point-wise(1x1)而Xception与之相反,先point-wise,然后channel-wise.
总体架构如下:
【轻量级】轻量级网络结构总结_第10张图片

Experiment

【轻量级】轻量级网络结构总结_第11张图片
【轻量级】轻量级网络结构总结_第12张图片
这个网络虽然不是针对轻量级网络进行设计的,但是depth-wise separable conv可以减少网络参数,提高网络性能,在后几篇文章中均使用这个思想。

Code

  • 非官方caffe版:https://github.com/yihui-he/Xception-caffe

MobileNet v1

MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications

Abstract

CVPR 2017的论文,Google团队.
利用depth-wise separable convolution构建轻量级DNN. 同时引入了两个超参数来权衡精度和速度:width multiplier & resolution multiplier.

Motivation

DSC可以减少参数,并提高性能,也是受Xception的启发

Framework

【轻量级】轻量级网络结构总结_第13张图片
同时,为了使用不同应用场景,加入了两个超参数width multiplier (通道乘数/乘子) & resolution multiplier(分辨率乘子)
【轻量级】轻量级网络结构总结_第14张图片
【轻量级】轻量级网络结构总结_第15张图片

Experiment

在多种任务上进行评测:细粒度识别、大规模地形、人脸属性、物体检测、人脸嵌入
【轻量级】轻量级网络结构总结_第16张图片
【轻量级】轻量级网络结构总结_第17张图片
【轻量级】轻量级网络结构总结_第18张图片
【轻量级】轻量级网络结构总结_第19张图片
【轻量级】轻量级网络结构总结_第20张图片

Code

  • 非官方Caffe: https://github.com/shicai/MobileNet-Caffe

ShuffleNet

ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices

Abstract

CVPR 2017, Face ++ 团队. 一作Xiangyu Zhang是师兄的mentor…膜拜
提出ShuffleNet,由两种操作组成:group conv和channel shuffle,最终的结果在性能和速度上超过mobilenet v1.

Movitation

在Xception和ResNeXt中发现,在特别小的网络中,1x1卷积花费很大,而1x1卷积存在的作用是group conv会导致不同group中的信息不流通,因此,本文提出channel shuffle代替point-wise conv,来提高效率和性能。

Framework

【轻量级】轻量级网络结构总结_第21张图片
【轻量级】轻量级网络结构总结_第22张图片
【轻量级】轻量级网络结构总结_第23张图片

Experiment

【轻量级】轻量级网络结构总结_第24张图片
【轻量级】轻量级网络结构总结_第25张图片

Code

  • 非官方Caffe: https://github.com/farmingyard/ShuffleNet

MobileNet v2

MobileNetV2: Inverted Residuals and Linear Bottlenecks

Abstract

暂时还没有发表,Google团队的工作
在MobileNet v1的基础上添加resdidual的思想,组成Inverted residual,并把窄的bottlenetck移除ReLU,换成Linear Bottleneck.

Framwork

  • Linear Bottleneck
    【轻量级】轻量级网络结构总结_第26张图片
    通过观察ReLu在channel比较低的时候在高维空间比较难恢复到原始的信息,推测原因是ReLu在channel较低时使很多地方变为0,无法恢复,因此提出Linear Bottleneck,不使用ReLU.
    【轻量级】轻量级网络结构总结_第27张图片

  • Inverted residual
    使用skip connection.
    【轻量级】轻量级网络结构总结_第28张图片

Experiment

【轻量级】轻量级网络结构总结_第29张图片
【轻量级】轻量级网络结构总结_第30张图片
【轻量级】轻量级网络结构总结_第31张图片

Code

  • 非官方Caffe(同mobilenet v1): https://github.com/shicai/MobileNet-Caffe

你可能感兴趣的:(Classification)