DL之SqueezeNet:SqueezeNet算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略

简介: DL之SqueezeNet:SqueezeNet算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略

SqueezeNet算法的简介(论文介绍)


      本文提出的SqeezeNet在ImageNet上实现了和AlexNet相同的正确率,但是只使用了1/50的参数。更进一步,使用模型压缩技术,可以将SqueezeNet压缩到0.5MB,这是AlexNet的1/510。



ABSTRACT

     Recent research on deep convolutional neural networks (CNNs) has focused primarily  on improving accuracy. For a given accuracy level, it is typically possible  to identify multiple CNN architectures that achieve that accuracy level. With  equivalent accuracy, smaller CNN architectures offer at least three advantages:

(1)  Smaller CNNs require less communication across servers during distributed training.  

(2) Smaller CNNs require less bandwidth to export a new model from the  cloud to an autonomous car.

(3) Smaller CNNs are more feasible to deploy on FPGAs  and other hardware with limited memory.

     To provide all of these advantages,  we propose a small CNN architecture called SqueezeNet. SqueezeNet achieves  AlexNet-level accuracy on ImageNet with 50x fewer parameters. Additionally,  with model compression techniques, we are able to compress SqueezeNet to less  than 0.5MB (510× smaller than AlexNet).  The SqueezeNet architecture is available for download here:

https://github.com/DeepScale/SqueezeNet

摘要

     最近对深卷积神经网络(CNN)的研究主要集中在提高精度上。对于给定的准确度水平,通常可以识别实现该准确度水平的多个CNN架构。具有同等精度的小型CNN架构至少有三个优点:

(1) 小型CNN在分布式训练期间,需要较少的服务器间通信。

(2) 较小的cnn需要更少的带宽来将新模型从云端导出到自动驾驶汽车上。

(3) 更小的CNN更适合部署在 FPGAs和内存有限的其他硬件上。

     为了提供所有这些优势,我们提出了一个叫做SqueezeNet 的小型CNN架构。SqueezeNet 在ImageNet上实现了 AlexNet级别的精度,参数减少了50倍。另外,利用模型压缩技术,我们能够将挤压网压缩到小于0.5MB(510×小于Alexnet)。Squeezenet架构可在此处下载:https://github.com/deepscale/squezenet网站


CONCLUSIONS  

     In this paper, we have proposed steps toward a more disciplined approach to the design-space exploration  of convolutional neural networks. Toward this goal we have presented SqueezeNet, a CNN  architecture that has 50× fewer parameters than AlexNet and maintains AlexNet-level accuracy on  ImageNet. We also compressed SqueezeNet to less than 0.5MB, or 510× smaller than AlexNet  without compression. Since we released this paper as a technical report in 2016, Song Han and  his collaborators have experimented further with SqueezeNet and model compression. Using a new  approach called Dense-Sparse-Dense (DSD) (Han et al., 2016b), Han et al. use model compression  during training as a regularizer to further improve accuracy, producing a compressed set of  SqueezeNet parameters that is 1.2 percentage-points more accurate on ImageNet-1k, and also producing  an uncompressed set of SqueezeNet parameters that is 4.3 percentage-points more accurate,  compared to our results in Table 2.

     We mentioned near the beginning of this paper that small models are more amenable to on-chip  implementations on FPGAs. Since we released the SqueezeNet model, Gschwend has developed  a variant of SqueezeNet and implemented it on an FPGA (Gschwend, 2016). As we anticipated,  Gschwend was able to able to store the parameters of a SqueezeNet-like model entirely within the  FPGA and eliminate the need for off-chip memory accesses to load model parameters.  

     In the context of this paper, we focused on ImageNet as a target dataset. However, it has become  common practice to apply ImageNet-trained CNN representations to a variety of applications such  as fine-grained object recognition (Zhang et al., 2013; Donahue et al., 2013), logo identification in  images (Iandola et al., 2015), and generating sentences about images (Fang et al., 2015). ImageNet trained  CNNs have also been applied to a number of applications pertaining to autonomous driving,  including pedestrian and vehicle detection in images (Iandola et al., 2014; Girshick et al.,  2015; Ashraf et al., 2016) and videos (Chen et al., 2015b), as well as segmenting the shape of the  road (Badrinarayanan et al., 2015). We think SqueezeNet will be a good candidate CNN architecture  for a variety of applications, especially those in which small model size is of importance.  

     SqueezeNet is one of several new CNNs that we have discovered while broadly exploring the design  space of CNN architectures. We hope that SqueezeNet will inspire the reader to consider and  explore the broad range of possibilities in the design space of CNN architectures and to perform that  exploration in a more systematic manner.

结论

     在这篇文章中,我们提出了一个步骤,朝着更规范的方法设计空间探索卷积神经网络。为了实现这一目标,我们介绍了SqueezeNet,一种CNN架构,它的参数比Alexnet少50倍,并且在ImageNet上保持了Alexnet级别的准确性。我们还将SqueezeNet 压缩到小于0.5MB,或者比没有压缩的AlexNet  小510×。自从我们在2016年发布了这篇论文作为技术报告以来,Song Han和他的合作者已经在SqueezeNet 和模型压缩方面做了进一步的试验。使用一种称为Dense-Sparse-Dense (DSD)的新方法(Han等人,2016b),Han等人在训练期间使用模型压缩作为调节器,进一步提高精度,生成一组压缩后的SqueezeNet 参数,在ImageNet-1k上精确1.2个百分点,并生成一组未压缩的SqueezeNet 参数,该参数比ImageNet-1k高4.3个百分点。与表2中的结果相比,准确率为表2所示。

     在本文的开头,我们提到了小模型更适合于在FPGA上的片上实现。自从我们发布了SqueezeNet 模型以来, Gschwend开发了SqueezeNet 的一个变体,并在FPGA上实现了它(Gschwend,2016)。正如我们预期的那样,Gschwend能够完全在FPGA中存储一个类似SqueezeNet 的模型的参数,并且不需要片外存储器访问加载模型参数。

     在本文的背景下,我们将ImageNet 作为一个目标数据集。然而,将ImageNet 训练过的CNN表示应用到各种应用中已成为常见的做法,例如细粒度对象识别(Zhang等人,2013;Donahue等人,2013)、图像中的logo 识别(Iandola等人,2015)和生成关于图像的句子(Fang等人,2015年)。ImageNet训练的 CNN还应用于与自动驾驶相关的许多应用,包括图像中的行人和车辆检测(Iandola等人,2014;Girshick等人,2015;Ashraf等人,2016)和视频(Chen等人,2015b),以及道路形状分割(Badrinarayanan等人,2015年)。我们认为SqueezeNet 将是CNN各种应用的一个很好的候选架构,尤其是那些小型型号的应用。

     Squeezenet是我们在广泛探索CNN体系结构的设计空间时发现的几种新的CNN之一。我们希望,SqueezeNet 能够激励读者思考和探索CNN架构设计空间中的各种可能性,并以更系统的方式进行这种探索。



1、轻量级的CNN架构优势


对于相同的正确率水平,轻量级的CNN架构可以提供如下的优势:

(1)在分布式训练中,与服务器通信需求更小。

(2)参数更少,从云端下载模型的数据量小。

(3)更适合在FPGA和嵌入式硬件设备上部署。


      本文提出的SqeezeNet在ImageNet上实现了和AlexNet相同的正确率,但是只使用了1/50的参数。更进一步,使用模型压缩技术,可以将SqueezeNet压缩到0.5MB,这是AlexNet的1/510。



2、主要特点


1、提出了新的网络架构Fire Module,通过减少参数来进行模型压缩。

2、使用其它方法,对提出的SqeezeNet模型进行进一步压缩。

3、对参数空间进行了探索,主要研究了压缩比和3×3卷积比例的影响。

4、注意SqueezeNet中没有全连接的层; 这种设计选择的灵感来自NIN架构。


3、常用的模型压缩技术


(1)奇异值分解(singular value decomposition (SVD))

(2)网络剪枝(Network Pruning):使用网络剪枝和稀疏矩阵

(3)深度压缩(Deep compression): 使用网络剪枝,数字化和huffman编码

(4)硬件加速器(hardware accelerator)


论文

Forrest N. Landola, Song Han , Matthew W. Moskewicz, Khalid Ashraf , William J. Dally , Kurt Keutzer.

Squeezenet: AlexNet-level Accuracy With 50X Fewer Parameters and <0.5MB Model Size, ICLR 2017.

https://arxiv.org/abs/1602.07360


GitHub

后期更新……





SqueezeNet算法的架构详解


DL之SqueezeNet:SqueezeNet算法的架构详解

https://yunyaniu.blog.csdn.net/article/details/98115763

相关文章
|
存储 机器学习/深度学习 编解码
双选择性信道下正交啁啾分复用(OCDM)的低复杂度均衡算法研究——论文阅读
本文提出统一相位正交啁啾分复用(UP-OCDM)方案,利用循环矩阵特性设计两种低复杂度均衡算法:基于带状近似的LDL^H分解和基于BEM的迭代LSQR,将复杂度由$O(N^3)$降至$O(NQ^2)$或$O(iNM\log N)$,在双选择性信道下显著提升高频谱效率与抗多普勒性能。
621 0
双选择性信道下正交啁啾分复用(OCDM)的低复杂度均衡算法研究——论文阅读
|
传感器 资源调度 算法
DDMA-MIMO雷达多子带相干累积目标检测算法——论文阅读
本文提出一种多子带相干累积(MSCA)算法,通过引入空带和子带相干处理,解决DDMA-MIMO雷达的多普勒模糊与能量分散问题。该方法在低信噪比下显著提升检测性能,实测验证可有效恢复目标速度,适用于车载雷达高精度感知。
1345 4
DDMA-MIMO雷达多子带相干累积目标检测算法——论文阅读
|
机器学习/深度学习 算法 算法框架/工具
256KB内存约束下的设备端训练:算法与系统协同设计——论文解读
MIT与MIT-IBM Watson AI Lab团队提出一种创新方法,在仅256KB SRAM和1MB Flash的微控制器上实现深度神经网络训练。该研究通过量化感知缩放(QAS)、稀疏层/张量更新及算子重排序等技术,将内存占用降至141KB,较传统框架减少2300倍,首次突破设备端训练的内存瓶颈,推动边缘智能发展。
789 6
|
人工智能 算法 安全
【博士论文】基于局部中心量度的聚类算法研究(Matlab代码实现)
【博士论文】基于局部中心量度的聚类算法研究(Matlab代码实现)
369 0
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
1059 0
|
数据采集 分布式计算 并行计算
mRMR算法实现特征选择-MATLAB
mRMR算法实现特征选择-MATLAB
621 2
|
存储 编解码 算法
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
464 6
|
传感器 机器学习/深度学习 编解码
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
548 3
|
机器学习/深度学习 算法 机器人
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
601 8
|
机器学习/深度学习 算法 自动驾驶
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
793 8