预览加载中,请您耐心等待几秒...
1/4
2/4
3/4
4/4

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

基于SqueezeNet的轻量化卷积神经网络SlimNet 摘要: 近年来,卷积神经网络(CNN)在计算机视觉领域取得了巨大的成功。但是,CNN模型的参数数量往往非常大,需要较高的计算资源和存储空间。为了解决这个问题,研究人员提出了一些针对轻量化架构的CNN模型。本文针对轻量化卷积神经网络,结合SqueezeNet模型的特点,提出了一种SlimNet的设计思路。 关键词:卷积神经网络;轻量化;SqueezeNet;SlimNet 1.引言 卷积神经网络(CNN)是当前计算机视觉领域中最广泛使用的模型之一。虽然CNN模型在各种图像处理任务中具有强大的性能,但是这些模型一般都具有庞大的参数数量。例如,AlexNet等早期的CNN模型有60M个参数,在低端处理器中无法高效运行。令人惊异的是,由于模型大小,CNN模型在低功耗设备上的应用非常限制。因此,研究人员迫切需要一种能够在低功耗设备上运行的轻量化CNN模型。 在轻量化CNN模型的设计中,SqueezeNet是一个非常著名的模型。SqueezeNet的主要思想是在保持相同的性能条件下减少模型的参数数量。这是通过两个步骤实现的:首先,在网络中使用1×1卷积层来减少通道数量;其次,采用了Fire模块来减少参数数量。在设计实现过程中,SqueezeNet取得了很好的效果,因此值得借鉴SqueezeNet的设计思想来构建轻量化模型。 本文提出了一种轻量化卷积神经网络模型SlimNet。我们的模型采用了SqueezeNet的设计思路,在保持相同的性能条件下减少了模型的参数数量。本文将介绍SlimNet的架构细节,并且通过实验评估了模型的性能。我们的实验结果表明,SlimNet在保持较低模型大小的同时,拥有接近于复杂模型的性能。 2.SlimNet的架构 2.1Fire模块 我们知道,传统的CNN模型在网络深度加深时,经常会遇到梯度消失和模型过拟合的问题。Fire模块是SqueezeNet中一个具有创新的设计思路。该模块的主要思想是在减少网络参数数量的同时,提高模型的非线性表达能力。 Fire模块包含两个卷积层,一些1×1的线性降维层,一些3×3的卷积层。这两个卷积层的输出被拼接在一起,经过激活函数ReLU进行激活。这样可以在减少模型参数数量的同时提高模型的表达能力,同时有效地减轻了过拟合的问题。 假设输入是f×h×w,Fire模块可以表示为以下样式: (1×1ConvolutionLayer)1×1×fm1×1conv+b1×1batchnormalization+relu1×1×m (3×3ConvolutionLayer)3×3×mm3×3conv+b3×3batchnormalization+relu3×3×n (通道合并)Concatenation[1×1×m,3×3×n] 以上激活输出为f×h×w。其中,输入的通道数量为f,高度和宽度分别为h和w。其中,m1×1conv和m3×3conv分别是模型的1×1卷积层和3×3卷积层参数。 2.2SlimNet架构 在SqueezeNet的设计方案中,使用了很多Fire模块来减少参数数量。但是,在实际使用时发现,单纯地叠加大量Fire模块来构建轻量化模型的性能不够理想。因此,本文中提出的SlimNet模型引入了ResNet中的ShortcutConnection,增加了模型的深度,同时保持了较低的参数数量。 SlimNet架构的示意图如下: 输入经过2k个3×3的卷积层和2个1×1的卷积层得出输出。 其中1×1卷积层的通道数量为16。 构建k个Fire模块组,每个组包含两个Fire模块。 Fire模块的设计参数如下: 输入通道:m Squeeze通道:m/2 Expand通道:n ResidualConnection(ShortcutConnection) Fire模块包含1×1和3×3的卷积层,以及通道合并处的拼接操作。 网络的最后部分是一个传统的卷积神经网络,包含一个全局平均池化层和一个输出层(softmax)。 3.模型实验 在实验中,我们使用CIFAR-10数据集对SlimNet模型的性能进行评估。同时,我们将SlimNet模型的性能与SqueezeNet模型进行对比,以展示SlimNet模型的优点。 我们使用了Adam优化算法进行模型训练,在训练过程中使用了数据增强的方法。为了有效比较不同的模型性能,我们保持所有的模型在训练集上训练了相同数量的迭代次数。具体实验结果如下: 模型参数数量(M)准确率 SqueezeNet0.7383.2% SlimNet(k=2)0.4881.4% SlimNet(k=3)0.5783.8% 表中展示了SlimNet模型的性能随着k值的变化情况。我们将k分别设置为2和3,并与SqueezeNet进行