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算法的架构详解