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

相关文章
|
17天前
|
机器学习/深度学习 算法 TensorFlow
机器学习算法简介:从线性回归到深度学习
【5月更文挑战第30天】本文概述了6种基本机器学习算法:线性回归、逻辑回归、决策树、支持向量机、随机森林和深度学习。通过Python示例代码展示了如何使用Scikit-learn、statsmodels、TensorFlow库进行实现。这些算法在不同场景下各有优势,如线性回归处理连续值,逻辑回归用于二分类,决策树适用于规则提取,支持向量机最大化类别间隔,随机森林集成多个决策树提升性能,而深度学习利用神经网络解决复杂模式识别问题。理解并选择合适算法对提升模型效果至关重要。
185 4
|
1月前
|
算法 Java vr&ar
保持无损连接和函数依赖的3NF合成算法(详细简介)期末必备
保持无损连接和函数依赖的3NF合成算法(详细简介)期末必备
23 0
|
1月前
|
算法 关系型数据库 C语言
卡尔曼滤波简介+ 算法实现代码(转)
卡尔曼滤波简介+ 算法实现代码(转)
27 4
|
1月前
|
机器学习/深度学习 自然语言处理 算法
深度学习算法简介(二)
深度学习算法简介(二)
|
3天前
|
监控 Cloud Native 开发者
云原生技术浪潮下的微服务架构实践
云原生技术正引领着现代软件开发的潮流,其中微服务架构作为其核心理念之一,为复杂应用提供了灵活、可扩展的解决方案。本文将探讨在云原生环境下实施微服务架构的策略和挑战,并结合实际案例分析微服务设计的最佳实践,旨在为开发者提供一套可行的微服务部署与管理指南。
|
3天前
|
消息中间件 监控 API
构建微服务架构:从理论到实践的全面指南
本文将深入探讨微服务架构的设计原则、实施步骤和面临的挑战。与传统的单体架构相比,微服务通过其独立性、可伸缩性和灵活性,为现代应用开发提供了新的视角。文章将介绍如何从零开始规划和部署一个微服务系统,包括选择合适的技术栈、处理数据一致性问题以及实现服务间通信。此外,我们还将讨论在迁移至微服务架构过程中可能遇到的技术和组织挑战,以及如何克服这些难题以实现顺利过渡。
|
1天前
|
设计模式 消息中间件 运维
微服务架构在后端开发中的应用与挑战
微服务架构作为一种现代软件开发方法,带来了灵活性、可扩展性和高效性,但同时也引发了诸如复杂性管理、数据一致性等新的挑战。本文深入探讨了微服务架构在后端开发中的应用场景,以及应对这些挑战的策略。
6 0
|
1天前
|
监控 API 数据库
构建高效后端:微服务架构的实战指南
【6月更文挑战第14天】在数字化浪潮下,后端开发面临着前所未有的挑战和机遇。本文将深入探讨微服务架构的设计理念、实现方式及其在现代软件开发中的重要性,为读者提供一份全面而实用的微服务实战手册。
|
1天前
|
负载均衡 监控 测试技术
微服务架构下的API网关设计
【6月更文挑战第14天】本文将深入探讨微服务架构中的核心组件——API网关,分析其在系统设计中的重要性和实现策略。我们将通过一个具体的案例,展示如何构建一个高效、可扩展的API网关,以满足现代应用程序的需求。
|
1天前
|
设计模式 负载均衡 安全
探索微服务架构下的API网关设计模式
【6月更文挑战第14天】本文将深入探讨在微服务架构中,API网关的设计模式及其对系统性能和安全性的影响。通过分析不同的设计模式,我们将了解如何在保障服务高可用性和可扩展性的同时,确保系统的灵活性和响应速度。