关键词:DP;CNN;LE-NET 5;剪枝加速算法
Abstract: With the continuous development of AI technology, DP (Deep Learning) research has become a hot topic. This paper proposes a pruning acceleration algorithm for the acceleration problem of CNN algorithm in DP. Firstly, introduce the classic structure LE-NET 5 model of CNN; CNN's model is more and more complex, and the number of network layers is more and more, explain in detail what is the pruning acceleration algorithm and how to implement the acceleration algorithm; finally, the original pruning algorithm Based on the proposed improvement method.
Key words: DP; CNN; LE-NET 5; Pruning acceleration algorithm
1 引言
CNN在image net取得不错成效之后,成为此研究领域专家学者的热门研究对象。随着研究的深入,网络越来越复杂,层数越来越多。这导致神经网络模型在用到实际项目当中时,往往仅模型就达到几百兆,而模型运算时所需的内存以及能量消耗,使得深度学习模型很难应用到实际的项目当中[1]。因此,如何让模型更小更准确,以及如何让模型能够消耗更少的资源从而更加快速地进行运算是深度学习神经网络当中面临的一个非常现实的问题。??
2 LE-NET 5模型
卷积神经网络的主要组成:
卷积层(Convolutional layer),卷积运算的目的是提取输入的不同特征,第一层卷积层可能只能提取一些低级的特征如边缘、线条和角等层级,更多层的网络能从低级特征中迭代提取更复杂的特征。
池化层(Pooling),它实际上一种形式的向下采样。有多种不同形式的非线性池化函数,而其中最大池化(Max pooling)和平均采样是最为常见的;
全连接层(Full connection),与普通神经网络一样的连接方式,一般都在最后几层。
pooling层的作用:Pooling层相当于把一张分辨率较高的图片转化为分辨率较低的图片;pooling层可进一步缩小最后全连接层中节点的个数,从而达到减少整个神经网络中参数的目的。
LeNet-5:是Yann LeCun在1998年设计的用于手写数字识别的卷积神经网络,当年美国大多数银行就是用它来识别支票上面的手写数字的,它是早期卷积神经网络中最有代表性的实验系统之一。LenNet-5共有7层(不包括输入层),每层都包含不同数量的训练参数[2],如图1所示。
图1 LE-NET 5结构图
LeNet-5中主要有2个卷积层、2个下抽样层(池化层)、3个全连接层3种连接方式。
3 剪枝加速算法
我们所使用的深度模型,一般选择激活函数为Relu系列激活函数,实现非线性变换。Relus函数会产生网络稀疏,由于深度神经网络的稀疏结构有很多零操作数。当输入为0的时候,无论权重大小是多少,输出都会是0。因此,当输入为0的时候,这个连接就没用了。当两者之间的连接没用的时候,就可以认为这一个连接可以被剪掉。由于神经网络每一层都可以使用由权重参数唯一表示,因此网络剪枝就是针对权重参数做不同层面的维度削减。
考虑网络中的神经元,相关性大的代表网络神经元之间信息冗余,两者可只去其一,因此提出基于神经元相关性进行剪枝达到网络加速[3]。
对于没有权值共享的全连接层,假设当前层的某个神经元为ai,对于上一层的K个神经元连接bi1,bi2……,bik,其相关系数可用如下公式(1)来表示:
(1)
式(1)中:μ、σ分别是在验证集上计算得到的均值与方差。??
卷积层由于存在权值共享,根据卷积规则,不同特征图是由不同的卷积核计算得出的,因此计算不同特征图之间的神经元相关性。假设aim为当前层第i个特征图上的第m个神经元,对应的第i个卷积核的k个卷积核权值,于是相关系数的计算可用公式(2)来所示:
(2)
式(2)中:μ、σ分别是在验证集上计算得到的均值与方差。??
4 剪枝加速算法改进
网络剪枝是在网络大小上进行的网络速度和内存的优化,其主要针对卷积层和全连接层进行优化;网络融合是在网络结构上对于网络速度的优化,其主要针对池化层和归一化层进行优化。通过两者的结合进行网络加速优化。??
由于使用网络融合方法在每次融合生成新的层时,都需要对网络重新初始化,并且经过实验发现,一般网络一次性融合多层时,效果相比原模型会很差。这是因为网络融合层并不能利用原模型中已经训练得到的网络参数,因此网络融合需要层层进行,保证其他层能够利用预训练权重信息,从而提升网络的性能,保证网络在加速过程中能够不影响精度。而网络剪枝却本身由于其简便性和易实施以及易于理解,本身就是对重要权重参数保持原有的连接和大小,因此,能够很有效的利用之前与学习得到的权重参数,在不下降精度的前提下得到网络的加速。根据上述分析,两者结合进行网络加速的步骤为:首先进行网络融合进行加速,其次使用剪枝方法对其进行进一步加速[4]。对于初始模型M融合加速,具体的实施流程图如图2所示。
图2 融合剪枝流程图
5 结语
本文提出了一种提高CNN运算的加速算法,介绍了剪枝加速算法是通过减少零运算的方式进行加速,在原有的剪枝加速算法的基础上与网络融合相结合,进一步提高运算速度。后续会通过仿真实验验证算法的可行性。
参考文献:
[1]李书清. 卷积神经网络模型分析[J]. 无线互联科技,2018,15(19):41-43.
[2]刘希. 基于深度卷积神经网络的图像语义分割[J]. 信息技术,2019(02):71-74.
[3]鲁云涛. 基于FPGA的稀疏神经网络加速器[D]. 中国科学技术大学,2018.
[4]朱瑞. 基于卷积神经网络的图像识别算法的研究[D]. 北京邮电大学,2018.
作者简介:
潘光良(1994.10-),男,工学硕士,齐鲁工业大学(山东省科学院)电气工程与自动化学院,研究方向:工业测控网络技术。通讯地址:山东省济南市长清区大学路3501号,邮编:250353,手机:13685313378,E-mail:1535173658@qq.com
共0条 [查看全部] 网友评论