文献阅读1 SqueezeNet:一种参数量只有AlexNet的1/50且模型小于0.5MB的网络

文献阅读1 SqueezeNet:一种参数量只有AlexNet的1/50且模型小于0.5MB的网络

一、基本信息

信息内容
论文名称SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5MB model size
论文链接https://www.researchgate.net/publication/301878495
代码链接https://github.com/DeepScale/SqueezeNet
首次上传2020/11/7
修改时间2020/11/11
关键词模型压缩 、轻量化模型、Fire module

二、笔记正文

1. 摘要

最近对深度卷积神经网络的研究主要集中在提高准确性上,对于给定的精度级别,通常可以找到多个达到该精度级别的CNN架构。在精度相当的情况下,较小的CNN架构有很多优点:

  • (1)更高效的分布式训练,小模型参数小,网络通信量减少
  • (2)便于模型更新,模型小,客户端程序容易更新
  • (3)利于部署在特定硬件或资源有限的平台上,如FPGA

因此作者提出了一种叫做挤压网的小型CNN架构。SqueezeNet能达到AlexNet级别的精度且参数量只有AlexNet的1/50,此外,借助模型压缩技术,将SqueezeNet压缩到小于0.5MB

关键词:模型压缩、小型卷积网络架构

2.研究背景及目的

深度神经网络的轻量化,使深度神经网络能在移动端部署
SqueezeNet是作者在广泛探索CNN架构设计空间的同时发现的几种新的CNN网络之一。
其希望SqueezeNet能够启发读者思考和探索CNN架构设计空间中广泛的可能性,并以更系统的方式进行探索。

3.研究思路与网络架构

作者Han等将CNN模型的研究与设计思路总结为以下四个方面:

  • (1)模型压缩:对pre-trained的模型进行压缩,使其变成小模型,如采用网络剪枝和量化等手段
  • (2)CNN微观结构:对单个卷积层进行优化设计,如采用1x1的小卷积核,还有很多采用可分解卷积(factorized
    convolution
    )结构或者模块化的结构(blocks, modules
  • (3)CNN宏观结构:网络架构层面上的优化设计,如网路深度(层数),还有像ResNet那样采用跳跃连接
  • (4)设计空间:不同超参数、网络结构,优化器等的组合优化。

基于以上思路,作者提出了一种名叫 Fire module的新结构,并在模型构建中进行以下设计:

  • (1)将3x3卷积核替换为1x1卷积核
    从降低网络参数考虑,作者选择将这些卷积核中的大部分设置为1x1卷积核,因为1x1卷积核比3x3卷积核的参数可以降低9倍;
  • (2)减少3x3卷积核的输入通道数

计算公式:参数总量 = (输入通道数) x (卷积核数) x 3 x 3

从上式可知,为了在一个CNN中保持较小的参数总量,不仅要减少3x3卷积核的数量,而且要减少3x3卷积核的输入通道的数量。
在此,作者使用挤压层将输入通道的数量减少到3x3个卷积核。

  • (3)在网络中延迟下采样,使卷积层具有较大的激活映射
    在卷积网络中,每个卷积层都会产生一个空间分辨率至少为1x1且通常要比1x1大得多的输出激活映射。
    Fire molude的基本结构示意图

上图即是Fire module 的基本结构示意图,正如示意图所示,SqueezeNet网络基本单元都采用了这种模块化的卷积结构Fire moduleFire module主要包含两层卷积操作:一是采用1x1卷积核的squeeze层;二是混合使用1x1和3x3卷积核的expand层
在这里插入图片描述
上图是SqueezeNet的网络结构示意图,正如示意图所示,很明显,该网络由大量的Fire module组成,不同的是左图为原始的SqueezeNet,中图和右图是引入借鉴了ResNet跳跃连接的改进型SqueezeNet
在这里插入图片描述
上图是从论文中截取的SqueezeNet各层参数表格,从表格中以及论文所述可以看出以下内容:

  • (1)在Fire module中,expand层采用了两种卷积核1x1和3x3,其步长(stride)均为1;
  • (2)Fire module中所有卷积层的激活函数采用的是ReLU
  • (3)Fire9层后采用了dropout,其中keep_prob=0.5
  • (4)SqueezeNet没有全连接层,而是采用了全局的avgpool层
  • (5)作者训练采用线性递减的学习速率,初始学习率0.04

4.贡献点

  • 在这篇文章中,作者提出了一些步骤,以使卷积神经网络的设计空间探索更有章法。为了达到这个目标,提出了SqueezeNet,一种与AlexNet同精度、参数量只有AlexNet1/50且模型小于0.5MB的CNN网络,在作者前期研究基础上,宋汉等人对SqueezeNetmodel compression进行了进一步的研究,提出了一种新的方法称为稠密-稀疏- 稠密 【Dense-Sparse-Dense(DSD)】
  • 有利于小型网络模型在FPGA等资源有限的硬件上的部署实现。SqueezeNet的基础上Gschwend提出了一种SqueezeNet的变体,并在FPGA上实现了它。其能够将挤压式模型的参数完全存储在FPGA并消除FPGA对芯片外存储器访问加载模型参数的需求。

5.SqueezeNet的代码实现

待总结更新…

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值