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

相关文章
|
11天前
|
算法 Java 数据安全/隐私保护
国密加密算法简介
国密指国家密码局认定的国产密码算法,主要包括SM1、SM2、SM3、SM4等,并持续完善。SM1是对称加密算法,加密强度与AES相当,需加密芯片支持;SM2是非对称加密,基于ECC算法,签名和密钥生成速度优于RSA;SM3为杂凑算法,安全性高于MD5;SM4为对称加密算法,用于无线局域网标准。本文提供使用Java和SpringBoot实现SM2和SM4加密的示例代码及依赖配置。更多国密算法标准可参考国家密码局官网。
20 1
|
2月前
|
机器学习/深度学习 算法 机器人
【博士每天一篇文献-算法】改进的PNN架构Lifelong learning with dynamically expandable networks
本文介绍了一种名为Dynamically Expandable Network(DEN)的深度神经网络架构,它能够在学习新任务的同时保持对旧任务的记忆,并通过动态扩展网络容量和选择性重训练机制,有效防止语义漂移,实现终身学习。
45 9
|
2月前
|
机器学习/深度学习 存储 人工智能
【博士每天一篇文献-算法】改进的PNN架构Progressive learning A deep learning framework for continual learning
本文提出了一种名为“Progressive learning”的深度学习框架,通过结合课程选择、渐进式模型容量增长和剪枝机制来解决持续学习问题,有效避免了灾难性遗忘并提高了学习效率。
39 4
|
2月前
|
算法
突击面试:解密面试官的算法题集合
突击面试:解密面试官的算法题集合
|
2月前
|
算法
【算法】贪心算法简介
【算法】贪心算法简介
|
2月前
|
算法
【算法】递归、搜索与回溯——简介
【算法】递归、搜索与回溯——简介
|
3月前
|
算法
Raid5数据恢复—Raid5算法简介&raid5磁盘阵列数据恢复案例
Raid5算法也被称为“异或运算”。异或是一个数学运算符,它应用于逻辑运算。异或的数学符号为“⊕”,计算机符号为“xor”。异或的运算法则为:a⊕b = (¬a ∧ b) ∨ (a ∧¬b)。如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。 异或也叫半加运算,其运算法则相当于不带进位的二进制加法。二进制下用1表示真,0表示假。异或的运算法则为:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同为0,异为1),这些法则与加法是相同的,只是不带进位。 异或略称为XOR、EOR、EX-OR,程序中有三种演算子:XOR、xor、⊕。使用方法如下z = x ⊕ y z
Raid5数据恢复—Raid5算法简介&raid5磁盘阵列数据恢复案例
|
10天前
|
安全 应用服务中间件 API
微服务分布式系统架构之zookeeper与dubbo-2
微服务分布式系统架构之zookeeper与dubbo-2
|
10天前
|
负载均衡 Java 应用服务中间件
微服务分布式系统架构之zookeeper与dubbor-1
微服务分布式系统架构之zookeeper与dubbor-1
|
2月前
|
Kubernetes Cloud Native Docker
云原生之旅:从容器到微服务的架构演变
【8月更文挑战第29天】在数字化时代的浪潮下,云原生技术以其灵活性、可扩展性和弹性管理成为企业数字化转型的关键。本文将通过浅显易懂的语言和生动的比喻,带领读者了解云原生的基本概念,探索容器化技术的奥秘,并深入微服务架构的世界。我们将一起见证代码如何转化为现实中的服务,实现快速迭代和高效部署。无论你是初学者还是有经验的开发者,这篇文章都会为你打开一扇通往云原生世界的大门。
下一篇
无影云桌面