轻量化网络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的思想,通过超参数缩减通道
请添加图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
轻量化卷积神经网络(Lightweight Convolutional Neural Network,简称LCNN)是一种针对移动设备和嵌入式系统设计的高效图像识别程序。LCNN通过减少网络的参数量和计算量,以达到在资源受限的环境下实现高效图像识别的目的。 LCNN的设计思路主要包括以下几个方面: 1. 网络结构精简:LCNN采用了轻量化网络结构,如MobileNet、ShuffleNet等,这些网络结构通过使用深度可分离卷积、通道重排等技术来减少参数量和计算量。 2. 参数剪枝:LCNN通过剪枝技术去除冗余的网络参数,减少模型的大小和计算量。常用的剪枝方法有结构剪枝、权重剪枝等。 3. 量化:LCNN使用低比特位数的定点数表示网络参数,如二值网络、三值网络等,以减少模型的存储空间和计算量。 4. 知识蒸馏:LCNN通过将一个复杂模型(教师模型)的知识传递给一个简化模型(学生模型),来提高学生模型的性能和泛化能力。 LCNN的图像识别程序一般包括以下步骤: 1. 数据预处理:对输入的图像进行预处理,如图像缩放、归一化等操作,以适应网络的输入要求。 2. 特征提取:通过卷积层、池化层等操作,提取图像的特征信息。 3. 分类预测:通过全连接层、Softmax等操作,将提取到的特征映射到不同的类别,并进行分类预测。 4. 后处理:对分类结果进行后处理,如去除低置信度的预测结果、进行后处理优化等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值