ShuffleNet论文阅读笔记

目录

论文信息:

摘要:

网络结构:

网络架构:

实验结果:


论文信息:

链接:ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices

发表时间:2017年

来源:Face++

作者:Xiangyu Zhang

摘要:

本文引入了一种极具计算效率的CNN架构,名为ShuffleNet,它专门设计用于计算能力非常有限的移动设备。新架构采用了两种新的操作,逐点组卷积和通道整合,大大降低了计算成本,同时保持了精度。

由于昂贵的1x1卷积代价,在极小的网络中,最先进的基础架构如Xception 和ResNeXt 变得不那么有效。我们建议使用逐点组卷积来减少1x1卷积的计算复杂度。为了克服群组卷积带来的副作用,我们提出了一种新颖的频道平滑操作来帮助跨特征频道的信息流动。基于这两种技术,我们构建了一个称为ShuffNet的高效架构.

网络结构:

  • 1x1卷积的计算量问题

分组卷积应用在很多轻量级网络中,例如Xception 和ResNeXt等。但这些网络存在一个很大的弊端是采用了密集的1x1 pointwise convolution,1x1卷积占据了很大的计算量。一个简单的解决方案就是在1x1层上应用通道稀疏连接,例如对1x1卷积采用channel sparse connection 即分组操作,通过确保每个卷积仅在相应的输入通道组上运行,组卷积显着降低了计算成本,如上图(a)所示。

  • 分组卷积带来的通道特征通讯问题

如果多个组卷积叠加在一起,则会产生一个副作用:某个通道的输出仅从一小部分输入通道中导出。上图(a)示出了两个堆叠的卷积层的情况。很明显,某个群体的输出只与群组内的输入有关。该属性阻止通道组之间的信息流并削弱表示。如果我们允许组卷积从不同的组获得输入数据(如上图(b)所示),输入和输出通道将完全相关。具体而言,对于从前一个组层生成的特征映射,我们可以首先将每个组中的通道划分为若干个子组,然后将下一层中的每个组用不同的子组进行组合。这可以通过通道平滑操作(上图(c))得到高效和优雅地实现。

网络架构

  • ShuffleNet Unit

(a)是一个用DWConv改造后的resnet结构;

(b)对(a)进行改进,将密集的1x1卷积替换成1x1的group convolution和channel shuffle操作的组合,注意3x3的depthwise convolution之后没有使用ReLU激活函数;

(c)中将DWConv的步长变为2来进行降维,将跳线链接改为步长为2的AVG Pool层以保证两条线的输出shape相同,然后将Add改为Concat连接,减少参数量和计算量。

  • ShuffleNet 网络结构

实验结果:

  • 不同group,不同通道数的对比

从上图可以看出group越大,效果越好,因为group越大信息能得到更充分的混合,网络的特征提取能力越强。1x是基准模型,而0.5x和0.25x表示的是在基准模型上将通道数缩小为原来的0.5和0.25,可见通道数越多精度越高,但计算量和参数量也更多。还可以看出较小的模型倾向于从group中获益更多。

  • 有无shuffle通道混合对比

可见采用channle shuffle之后,网络性能更好,尤其是,当组数相对较大时(例如g=8),带有信道混合的模型以相当大的优势胜过对应的模型,这证明channle shuffle的有效性。

  • ShuffleNet与MobileNet对比

与MobileNet相比,ShuffleNet在计算复杂度和精度方面都表现得更加优秀。

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值