版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
神经网络原理以及卷积网络结构分析目录TOC\o"1-3"\h\u15891神经网络原理以及卷积网络结构分析 15781.1神经网络基本知识 1290901.1.1神经元模型 1242311.1.2神经网络 2228791.1.3反向梯度下降传播算法 326401.2卷积神经网络结构 684111.1.1卷积层 6315051.1.2激活函数 913081.1.3池化层 1116411.1.4全连接层 12102181.3典型卷积神经网络 1220761.3.1LeNet网络 12149961.3.2ZFNet网络 1316531.3.3VGG16网络 1691211.3.4ResNet网络 1724641.4通用神经网络硬件加速的实现方式 1980141.4.1基于PE计算模块存算分离加速方式 20181041.4.2基于脉动阵列存算一体的加速方式 22神经网络是人工智能领域的重要研究内容。而卷积神经网络是目前应用最为广泛的卷积神经网络,其网络结构包含卷积层、池化层、全连接层。各层运算涉及的权重参数需经过样本学习获得,反向传播算法是众多学习算法中的佼佼者。全面了解分析卷积神经网络的运算过程、运算特点是进行卷积神经网络硬件加速研究的前提。1.1神经网络基本知识人工神经网络是利用大量的计算神经元对生物大脑神经网络系统进行模拟,完成一系列信息计算加工,使得机器能像人脑一样进行自主学习和识别信息。1.1.1神经元模型神经元模型是对生物神经元的一个建模,使神经元模型具有类似生物神经元的结构,并拥有对信息处理的能力。最早提出且影响深远的是心里学家McCulloch和数学家W.Pitts在1943年提出的MP模型,在随后的发展与改进逐步行成了广泛使用的BP神经元,其结构如图1.1所示。图1.1神经元结构在图1.1中,N个输入数据分别为(x1...xn),对应N个权重分别为(wi1w y=fj=1j=nxj1.1.2神经网络神经网络系统就是将多个神经元连接在一起,将一个神经元的输出当作下一层神经元的输入,依此类推,如图1.2是一个神经网络包含输入层、隐藏层和输出层三部分的单隐藏层神经网络系统。图1.2单隐藏神经网络图1.2中输入层输入数据是(x1,x2,x3),输出为(y1,y zj=ƒ(i=1i=3进行数据计算时,利用矩阵算法可以快速计算出输出结果,得到最后的计算结果。增加神经网络模型的隐藏层可以实现复杂的功能,如图1.3是一个包含多层隐藏层的前馈人工神经网络,其具有三个输出、四层隐藏层以及三个输出。图1.3多隐藏层神经网络1.1.3反向梯度下降传播算法神经网络主要分为训练和预测两个阶段。在训练阶段,对设计网络初始化各层权重和偏置,然后进行前向传播推导,根据标签计算出输出误差,然后利用梯度下降算法反向更新迭代各层权重和偏置,依次迭代,直到误差小于系统设定值。梯度是一个矢量,表示在函数上的一点沿着该方向上的变化率最大,变化最快。对函数进行求导,就得到函数沿着方向变化的函数表示,沿着梯度增加最快或者相反最慢的方向移动更容易到达函数的极值。当是多元函数时,所有偏导数为零时,可求解每个未知数的解,就可以得到该点,然而随着函数的复杂,常规计算难以计算,因此提出梯度下降求该点。图1.4是一个直观的梯度下降求极值,设在A点处求梯度,沿该方向移动一定距离,再次进行求梯度,一次类推,可得到最优解,由于函数的复杂性,得到的往往是局部最优解。图1.4梯度下降梯度下降中有三个概念:1)步长步长决定下降程度,代表一次梯度计算行走的长度,用β表示;2)假设函数在监督学习中,拟合输入样本,使用假设函数设为hϴ(x);3)损失函数该函数为样本的输出与拟合函数差的平方,如式 Jϴ=i=1m梯度下降法的算法步骤如下:确定损失函数的梯度,对于ϴi,其梯度表达式为∂用确定的步长乘以损失函数梯度,得到前进距离,即β∂判断所有的ϴi梯度下降距离是否小于Ɛ,小于即迭代结束,当前的ϴii=0,1n ϴi=ϴi反向传播算法主要利用的梯度下降和链式法则,是将正向传播的结果与标准输出结果的误差进行反向传递,进行迭代更新权重和偏置。算法步骤如下:图1.5单个神经元设误差函数为E=12Y−F(z)2,其中Y为准确结果,F(z)为图1.5的输出结果,可以对整个误差E对 ∂E∂Wi1=∂E其中: ∂E∂F(z)=2∗12Y−F(z)设激活函数如式1.7所示: F(z)=1(1+e−z式中: Z=j=1j=nxj求导则: ∂F(z)∂Z=F(z)(1−F(z)) (可得: ∂Z∂Wi1=x综上可得: ∂E∂Wi1=Y−F(z)然后利用如式1.12所示的梯度下降公式,更新权重W ϴi=ϴi Wi1∗=W其他权重以此类推,经过迭代最后完成神经网络的训练。1.2卷积神经网络结构卷积神经网络是人工神经网络中应用最为广泛的一种,同样分为算模型训练和模型应用推理两个阶段。在模型训练阶段主要利用样本数据经过前向推理计算出各层的结果损失,再利用反向梯度下降算法进行卷积网络各层之间的参数的更新,经过数次迭代,损失降低很小,训练阶段完成。在推理阶段,只有前向推理运算,主要是对输入的未知图像进行一个结果预测。卷积神经网络在结构上主要有四部分组成:卷积层、池化层、全连接层和激活函数。1.1.1卷积层卷积层是卷积网络运算中的核心,也是整个卷积网络系统中主要的计算量来源,卷积层主要是进行图像特征的提取,随着卷积层数的增加以及特征通道数的增加,卷积神经网络能提取到更加全面的特征信息。每层卷积层都是由卷积核对输入特征通道的数据做卷积运算并加上偏置数据得出输出特征通道数据,作为下层卷积的输入层。在常用的卷积计算时的主要运算名词有卷积核、深度、步长、以及填充等。卷积核相当于滤波器,输入特征图经过卷积核运算可以将输入特称图的特征提取出来,利用一组滤波器就可以得到不同的特征值,如图1.6所示是Sobel算法进行卷积运算提出图像的边缘信息。其中卷积核的大小K从1-11不等,为了减少卷积运算量,卷积核大小通常为3。图1.6边缘滤波对比图卷积层的通道数目(也称卷积核的深度)代表着提取图像特征的维度,卷积核的个数就是卷积的通道数目。增加通道数目可以更加充分提取图像的特征,一般为2的幂指数。如图1.7所示卷积运算过程就是通道数目为2,卷积核大小为3×3的卷积核对6×6的图像进行卷积计算过程;运算输出结果为两个4×4的图像。图1.7非填充卷积运算过程在卷积运算时,步长用S表示,步长代表滑动窗口的移动大小,图1.7所示的计算过程的步长为1。同样的输入图1.8所示的过程就是步长为3的卷积运算,可见增大步长可以减少输出特征图像的大小,输出特征图像的大小与步长以及填充成倍数关系,通常为了充分提取图像的特征,步长大小都为1。图1.8步长为3的卷积运算在进行卷积运算时,输入特征图像不进行填充,经过卷积运算,其图像大小会减少,如上图1.7所示输入图像大小为6×6,经过卷积运算后输出特征大小变为4×4。为避免图像缩小,可在输入图像周围进行填充,填充的大小Pad根据卷积核需求进行设置,填充数据可以为0和1,通常为了不增加额外影响,填充数据为0。如图1.9是经过填充后,采用步长S为1的卷积计算,输出特征图像就和输入特征图像的大小一致。输出特征图像的尺寸大小如式1.14所示: output=(input−k+2∗pad)S+1 其中output是输出图像的长和宽,input为输入图像的长和宽,k为卷积核大小,pad是填充大小,S为步长大小,图1.9中计算结果如下。 output=(6−3+2∗1)1+1 图1.9填充卷积运算过程1.1.2激活函数激活函数是为了使得神经网络具有非线性而引入的。如果不引入激活函数,每一层的输入都是上一层经过卷积运算的线性输出,那么经过几次卷积运算后还是第一层的线性输出,无法完成非线性操作,则采用多层中间层只是增加计算量,没有实际价值意义。在卷积神经网络中常用的激活函数有Sigmoid函数、Tanh函数、ReLU函数。以下三种:Sigmoid函数的函数表达式如公式1.16所示。 f(x)=1(1+e−x)Sigmoid函数的图像表达如图1.10所示。图1.10Sigmoid函数图像Sigmoid函数将输入数据映射到(0,1)范围内,使用该函数可以进行二分类操作,经过该激活函数较大的负数转换为0,较大的正数变换为1。该函数在反向梯度运算时容易出现梯度爆炸和梯度消失两个极限情况,而且该激活函数由于运用了e的幂指数,在训练时增加了计算量,系统训练耗时较长。Tanh函数的函数表达式如公式1.17所示。 tanhx=exTanh函数的图像表达如图1.11所示图1.11Tanh函数图像Tanh函数解决了Sigmoid函数的不以0为中心的输出问题,将函数的输出映射到(-1,1)区间,Tanh函数相当于2×Sigmoid-1,类似Sigmoid的变形。Tanh函数依旧存在梯度饱和和梯度消失的缺点,也具有e的幂指数运算,在训练时耗时依旧很大。ReLU函数的函数表达式如公式1.18所示。 fx=max(0,x) (ReLU函数的图像表达如图1.12所示。图1.12ReLU函数ReLU函数是一个取最大值函数,当函数输入x<0时,函数的输出为0,当x>0时,函数的输出为x。该函数没有e的幂指数运算,计算速度快,而且在训练时网络更快速地收敛,同时该函数不会出现梯度饱和问题。1.1.3池化层池化层主要是对图像数据进行压缩处理,降低图像的大小,减少数据量,减少后续计算量,同时避免网络的过拟合。池化层的池化窗口大小大多采用2×2窗口,同时池化主要分为最大值池化与平均值池化两种。最大池化(Maxpooling)是在在一个定义的窗口内选取最大的元素,如图1.13所示,就是一个池化窗口为2×2的最大值池化过程。平均池化(Averagepooling)在一个定义的窗口内计算其所有元素的平均值,如图1.14所示,就是一个池化窗口为2×2的平均值池化过程。图1.13最大池化图1.14平均池化1.1.4全连接层全连接层是卷积网络的最后一层。卷积神经网络经过前面若干卷积层和池化层,图像特征信息被充分提取,经过全连接层将最后一层卷积层产生的特征图映射成一个固定长度的特征向量,这个特征向量包含了图像分类任务的机率,通过筛选就能选出最终结果,如图1.15所示,在全连接层为了提高系统的稳定性,对全连接层还可以采用正则化,归一化等方法减少网络的过拟合问题。图1.15全连接层1.3典型卷积神经网络1.3.1LeNet网络LeNet神经网络是第一个具有卷积层、池化层以及全连接层的卷积神经网络,虽然该网络结构只有简单的五层,但是在手写数字的识别上有较好的表现,LeNet网络的结构如图1.16所示。图1.16LeNet网络的结构该网络的输入图像大小为32×32×1其结构主要有五层组成:第一层卷积层采用5×5大小的卷积核,输出特征图通道为6,卷积步长为1,该层卷积没有进行填充操作,因此输出图像大小会变小,经过第一层卷积运算后输出特征图变为28×28×6;第二层是采取窗口大小为2×2的最大池化对输入特征图像进行池化操作,输出特征图大小为14×14×6;第三层采用与第一层卷积同样大小的卷积核对输入特征图像进行卷积操作,输出特征通道为16,经卷积后输出结果为10×10×16的特征图;第四层对输入特征图像采用池化窗口大小为2×2的最大池化进行降采样处理,输出特征图像大小为5×5×16;第五层采用全连接操作,全连接层的输入为120维的向量,输出为84维的向量;最后的输出层采用softmax函数输出10个分类,分别代表(0-9)10个数字识别结果。该网络采用的卷积核大小均为5×5,池化方式采用的是最大值池化,池化窗口大小为2×2,整个网络的参数个数为44426个,虽然LeNet网络很小,但是该网络的模型被普遍运用,该网络模型具有运算少,训练快的优点,并且该网络采用softmax分类函数,该函数在图像分类方面表现很好。1.3.2ZFNet网络2013年ZFNet卷积神经网络被Zeiler和Fergus提出,在世界ILSVRC2013图像分类比赛中取得优异的成绩,获得了冠军。ZFNet的结构图如图1.17所示。图1.17ZFNet网络结构ZFNet网络主要有五层卷积、三层池化以及三层全连接层组成。各层的结构如表1.1所示。表1.1ZFNet结构NameConv1Conv2Conv3Conv4Conv5FC6Fc7FC8CONV7×7×965×5×2563×3×3843×3×3843×3×256×××LRN√√××××××POOL√√××√×××FC×××××409640961000ReLU×××××√√×Dropout×××××√√×其中CONV为卷积、LRN为局部响应归一化、POOL为池化、FC为全连接层、ReLU为ReLU激活函数、Dropout为Dropout函数。卷积层以及池化层计算方法如表1.2所示。表1.2各层计算方式LayerNameConv1Conv2Conv3Conv4Conv5卷积步长22111卷积填充×√√√√池化步长22--2池化填充√×--×ZFNet网络与LeNet网络对比具有更深的深度,在计算上采用了层叠的卷积层,同时该网络引入了LRN(局部响应归一化)、Dropout函数以及ReLU激活函数等方法提高系统的鲁棒性。采用ReLU激活函数解决了Sigmoid函数的梯度饱和问题,同时该函数具有更快的收敛速度,训练速度加快。ZFNet卷积网络在前两层的卷积运算中加入LRN方法,LRN的计算公式如下: bx,yi=a其中ax,yi表示(x,y)位置的采用卷积核i进行卷积的输入值,bx,yi表示归一化的输出结果,其中NZFNet卷积网络在全连接层引入了Dropout函数,Dropout主要是对全连接层的网络结构进行一定的修改,对于某些神经元的激活值以一定的概率置为0,减少模型对某些特征的依赖,提高整个模型的泛化性,如图1.18所示是标准全连接模型和使用该函数后的全连接模型。在训练过程,随机删除网络中一部分隐藏层如图1.19所示,保持输入输出不变,然后输入经过前向传播后,计算损失,进行反向传播,反向传播中保留删除的隐藏层,按照随机梯度下降法更新全部的神经元,以此循环,直到训练结束。图1.18使用Dropout函数模型对比图1.19使用Dropout函数训练过程1.3.3VGG16网络VGG16卷积神经网络是ImageNet2014年的亚军,它采用了尺寸更小的卷积核,同时加深了的网络结构,增加通道数,利用池化减少特征图的尺寸,VGG16的结构图如图1.20所示。图1.20VGG16结构图VGG16主要有13层卷积层、5层池化层以及3层全连接层组成。所有的卷积层采用的卷积核大小都是3×3,步长为1,同时输入特征图像进行填充保证输出特征图像不缩小;激活函数采用的都是ReLU函数;池化层采用了窗口大小为2×2,步长为1的最大池化,缩小特征图的大小;全连接层前两层神经元数量是4096,最后一层神经元数里是1000;最后采用Softmax函数进行分类输出。VGG16与之前的网络的不同之处在于采用较小的卷积核,网络结构非常规整,更加方便被使用,同时该模型采用卷积叠加,用3×3的卷积核大小增加图像的感受视野,三层卷积核大小为3×3的卷积层叠加效果相当于7×7的卷积核的卷积效果,采用小的卷积核即减少了参数数量,同时也减少了计算量;同时该网络探索了深度对准确度的影响,表明深度加深能提高准确度,但是网络深度太深,系统容易出现饱和,容易出现过拟合。1.3.4ResNet网络ResNet是2015年微软推出的卷积神经网络模型,该卷积神经网络对图片的识别性能超越了人类大脑,传统的卷积神经网络提升准度的方法是增加网络深度和通道数,但是会引起参数多过拟合现象、计算量倍增以及梯度弥散难以优化模型等问题,因此提出了残差网络,其中主要结构如图1.21所示。图1.21残差网络模块结构其中主要分为两步:第一步的输出为正常卷积输出如下: F=Relu(XW1) 第二步为卷积计算结果输出加上上一层卷积层结果,随后经过激活函数输出 y=Relu(FW2+X) 其中Relu为激活函数Relu。如图1.22是一层残差模块运算的结构图,输入64通道大小为56×56特征图,输入特征图先进行一次卷积计算,经过激活函数,随后进行下次卷积,卷积结果结果加上初始输入特征图数据,随后进行激活函数输出。图1.22残差网络一层的结构图图1.23为VGG19、深度为34层的普通卷积神经网络,34层深的ResNet网络对比图。ResNet网络与普通的卷积神经网络的最大区别在ResNet网络有很多支线将输入连到后面的层进行累加,使后面的卷积层学习残差,传统的卷积层或全连接层在信息传递时,都会引起信息的丢失或损耗问题。ResNet通过直接将输入层传递到输出层,保护了信息传递的完整性。图1.23VGG19、普通卷积神经网络和ResNet网络对比图1.4通用神经网络硬件加速的实现方式设计神经网络加速系统时,主要是分为两种,一种是专用的神经网络加速系统,该方案对特定神经网络加速效果好,资源需求少。但神经网络特定,限制了其应用范围;另一种是设计通用的卷积神经网络加速系统,该系统灵活度高,可实现多种卷积神经网络,对资源需求较高。设计通用的神经网络加速系统主要是根据神经网络的特性设计通用的模块,实现卷积运算、激活函数运算以及池化运算等;然后通过指令控制各模块运行,重构各种网络。通用神经网络系统的架构主要分为两大类,一类是设计通用、规模较小的PE计算模块和其他存储模块,进行存算分离操作实现卷积神经网络加速运算;另外一种是采用脉动阵列对数据进行存算一体操作实现卷积神经网络加速运算。1.4.1基于PE计算模块存算分离加速方式基于PE计算模块设计的通用卷积神经网络系统的主要是设计小的通用乘加计算模块,以及存储结构,由存储结构将计算数据输入到乘加计算模块,并通过控制模块发出指令进行计算模块的运作,最后输出卷积计算结果传输到算术逻辑单元进行池化等其他操作。其结构如图1.24所示,图中主要包括控制器、输入和输出缓存、核心PE计算单元以及ALU操作模块。核心PE计算模块主要包括小的缓存模块、卷积运算的乘加、常用的几种激活函数。ALU模块主要功能是完成神经网络的池化层实现,根据指令对卷积结果进行一个降采样池化操作;输入缓存主要是缓存输入特征图数据和权重数据,通常情况输入特征图数据和权重数据是分开进行缓存存储;输出缓存主要为了保证整个系统高速运行,在系统高速运行的同时,保证写入DDR的过程中不丢失数据。在设计该结构的加速系统时,其核心是设计通用的PE计算模块,其中PE计算模块中主要功能是进行卷积运算,卷积计算主要是包括乘法和加法运算,通用的PE模块主要是利用了多个乘法器进行乘法运算,并利用加法树实现对乘法结果进行累加,随后经过激活函数输出。PE模块常用的结构图如图1.25所示,主要是分为四部分,第一步部分是加载的卷积数据,第二部分进行乘法,第三部分根据指令进行累加,最后一部分根据指令进行激活函数操作并输出结果。图1.24基于PE模块的通用卷积网络加速结构图1.25PE计算模块结构采用该结构的通用神经网络加速系统主要包括寒武纪发布的NPU芯片,以及用于GPU的神经网络加速芯片。如图1.26所示的架构就是寒武纪内部的PE内部运算单元结构,主要是分为三个部分,其中NFU-1层是乘法单元,包含256(16×16)个乘法器,最多一个周期内可以运算25
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 为何要建立内控制度
- 内控制度内部制度
- 招标站内控制度
- 民政采购内控制度
- 景区营销内控制度
- 行政人事部内控制度
- 公司工程科内控制度
- 总工会内控制度
- 事业单位资金内控制度
- 工程审计内控制度
- 掩体构筑与伪装课件
- 2026年(马年)学校庆元旦活动方案:骏马踏春启新程多彩活动庆元旦
- 2026年广东省春季高考模拟数学试卷试题(含答案解析)
- 微带贴片天线基础知识
- 部编版初三化学上册期末真题试题含解析及答案
- GB/T 46561-2025能源管理体系能源管理体系审核及认证机构要求
- 光纤收发器培训
- 汽车减震器课件
- 物业保安主管年终述职报告
- 2025年国家开放大学《市场调研方法与实践》期末考试参考题库及答案解析
- 儿童心肺复苏操作要点与急救流程
评论
0/150
提交评论