轻量化网络ShuffleNet:适用于移动设备的极其高效的卷积神经网络

ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices
作者:Xiangyu Zhang Xinyu Zhou Mengxiao Lin Jian Sun 单位:Megvii Inc (Face++)
发表会议及时间:CVPR 2018

一 论文研究背景、成果及意义

  1. 建立更深、更大的卷积神经网络是解决视觉识别任务的主要趋势,但通常具有数百个层和数千个通道,因此需要极大算力消耗(Billions of FLOPs)
    请添加图片描述
  2. 无人机、机器人和智能手机等常见的移动平台需要在非常有限的算力支撑下尽可能提高准确率

现有方法(在此模型发表之前)

  1. 模型压缩:
    在已经训练好的模型上进行压缩,使得网络携带更少的网络参数
  2. 直接训练一个小型网络
    从改变网络结构出发,设计出更高效的网络计算方式,从而使网络参数减少的同时,不损失网络的性能

本文方法

  1. 针对计算能力非常有限的移动设备,设计引入计算率极高的CNN框架 ShuffleNet
  2. 通过以下两点创新,在保持精度的同时大大降低了计算成本
  • 分组点卷积
  • 通道重排(channel shuffle)

本文成果

  • 在ImageNet数据集上,将shuffleNet与一些主流模型进行了比较,结果表明,在相近的精度下,ShuffleNet效率高出很多。
    请添加图片描述
  • 与AlexNet相比,shuffleNet在相近的分类精度下仍可实现约13倍的实际加速请添加图片描述
  • 相比同为轻量级网络的MobileNets,shuffleNet在分类和检测任务上性能更好
    请添加图片描述

二 ShuffleNet意义

  • 旷视科技原创的移动端深度学习卷积神经网络,shuffleNet脱颖而出,成功入围世界互联网领先科技成果
  • 当前,该技术已成功赋能全球约5亿台包含摄像头、移动终端在内的物联网设备,为人工智能技术驱动下的智能终端的大范围应用推广提供了重要技术支持
  • ShuffleNet作为旷视科技自研的深度学习基础模型,在诸如目标检测、物体识别、图片风格化编辑、美颜等方面做为特征提取器,不仅实现云、端跨平台落地应用,深耕金融、安防、手机、零售、物流等多个领域,还可以保证产品使用的稳定性和快速性,为进一步落地应用场景提供良好的基础

三 论文内容理解

3.1 摘要核心

  • 针对计算能力非常有限的移动设备,构建了一种计算效率极高的CNN架构-ShuffleNet
  • 新架构引入了分组点卷积通道重排两个新操作,在保持精度的情况下, 极大减少算力消耗
  • 在ImageNet,COCO等数据集上实验验证了ShuffleNet的高效性

3.2 分组卷积

标准卷积参数量:3X3X12X6 = 648
分组卷积参数量:3X3X(12/3)X(6/3)X3 = 216
请添加图片描述

3.3 点卷积

  • Group Convolution一种通道稀疏连接方式。在Xception、MobileNet等网络都有广泛应用
  • 深度可分离卷积中分组数恰好等于通道数,意味着每个分组只有一个特征图
  • 采用了密集的未分组1X1点卷积
  • 大量密集的1X1卷积造成了极大的算力负担?
    给点卷积也分组?
    特征之间需要进行信息融合,否则会降低网络的特征提取能力

3.4 通道重排

  • 分组点卷积某个通道的输出仅来自一小部分输入通道,阻止了信息流动,特征表示
  • 如果我们允许组卷积从不同组中获取输入数据,则输入和输出通道将完全相关
  • 对于从上一个组层生成的特征图,可以先将每个组中的通道划分为几个子组,然后在下一层中的每个组中使用不同的子组作为输入
  • 这种不同组之间通道的混乱排列,称为channel shuffle
    请添加图片描述
    假定:某卷积层分为g组,输出特征通道为gXn
  • reshape:将gn个通道数变为维度为(g,n)
  • transpose:将上述转置维度(n,g)
  • flatten:展开作为下一组卷积输入
    通道重排操作使构建具有多个组卷积层的更强大网络结构称为可能
    请添加图片描述

四 ShuffleNet基本结构单元

4.1 卷积块特点

  1. ResNet中的Bottleneck,将3X3标准卷积替换为3x3深度卷积
    请添加图片描述
  2. ShuffleNet中,将密集的点卷积替换为分组点卷积
    请添加图片描述
  3. 在此基础上,针对降采样情况,还可以将元素add变为通道叠加
    请添加图片描述

4.2 FLOPs

输入特征:hXwXc
Bottleneck通道数:m
分组数:g
分组点卷积 + 通道重排 FLOPs大幅下降,减少算力消耗
请添加图片描述

4.3 ShuffleNet网络构成

  • 标准卷积核最大呲花
  • 三个基于shuffleNet基本单元的阶段,内部是shuffleNet unit的堆叠,其中第一个阶段步长为2,每经过一个阶段,通道数为输入通道数的1/4
  • 分组数g控制点卷积的连续稀疏性
    请添加图片描述

五 ShuffleNet V2创新与改进

四个新发现

  1. 当输入输出通道数相同时,运算速度最快
  2. 过度使用组卷积会额外增加算力消耗
  3. 网络的多通路结构让网络碎片化,拖慢速度
  4. Element-wise operation会消耗较多的时间

创新与改进

  1. channel split:将输入特征通道划分为两部分,一部分进入bottleneck,另一部分不操作(输入输出通道数相同
  2. 替换分组点卷积为标准点卷积(防止点卷积过度)
  3. channel shuffle放到维度叠加之后(防止碎片化)
  4. 将element-wise add替换为concat(减少时间消耗)

请添加图片描述 
网络结构:
在全链接层前加一层标准卷积Conv5
类似MobileNet的思想,通过超参数缩减通道
请添加图片描述

轻量化主干网络YOLO(You Only Look Once)是一种用于目标检测的神经网络模型。与传统的目标检测方法相比,YOLO可以实现实时高效的目标检测。 轻量化主干网络适用移动设备和嵌入式设备等计算资源有限的场景。为了减少网络模型的参数数量和计算复杂度,轻量化主干网络采用了一系列优化策略。 首先,轻量化主干网络采用了深度可分离卷积层(Depthwise Separable Convolution)。深度可分离卷积层将卷积层分为深度卷积和逐点卷积两个步骤,分别处理通道间的信息和空间上的信息。这种方式有效减少了模型的参数数量和计算复杂度。 其次,轻量化主干网络使用了残差模块(Residual Module)。残差模块通过引入跳跃连接,将输入与输出相加,使得网络模型能够更好地学习残差信息。这种结构可以提升网络的性能,并减少网络的参数数量。 此外,轻量化主干网络还使用了空间金字塔池化模块(Spatial Pyramid Pooling)。空间金字塔池化模块可以从不同尺度上提取特征,具有多尺度感受野,在目标检测任务中起到了关键作用。 总体来说,轻量化主干网络采用了深度可分离卷积、残差模块和空间金字塔池化等技术,以减少网络的参数数量和计算复杂度,同时保持高准确率和实时的目标检测能力。它在移动设备和嵌入式设备等场景中具有较好的应用前景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值