【《深度学习基本理论基础综述》7200字】_第1页
【《深度学习基本理论基础综述》7200字】_第2页
【《深度学习基本理论基础综述》7200字】_第3页
【《深度学习基本理论基础综述》7200字】_第4页
【《深度学习基本理论基础综述》7200字】_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

深度学习基本理论基础综述目录TOC\o"1-3"\h\u28915深度学习基本理论基础综述 190011.1卷积神经网络基本原理 1119741.1.1卷积层 288061.1.2池化层 4196001.1.3激活层 596361.1.4全连接层 780961.1.5损失函数 8159211.2卷积神经网络的训练方法 9103381.1.1前向传播算法 955881.1.2反向传播算法 1041901.3卷积神经网络优化方法 131.1卷积神经网络基本原理人工神经网络的结构是,数据从输入层到隐层再到输出层,均是通过全连接的方式进行,这会导致模型参数计算量过大。在现代的数据分析中,数据量往往是几十万甚至是上百万量级的,用这样的数据量去训练模型,往往会导致人工神经网络的泛化能力低,效果不理想,此外还容易导致网络出现过拟合等其他问题。而卷积神经网络则不然,卷积神经网络各层之间不采用全连接的方式,而是采用局部感知的方式。具体来说,一个完整的卷积神经网络包含输入层、卷积层、池化层、激活层以及全连接层,如图2-1所示(图2-1出自斯坦福CS231课程)。目前研究的卷积神经网络一般可以输入以下几种数据:第一种,一维数据,也就是通常的时间采样或者是频域采样数据。第二种,二维数据,通常是灰度图像数据或者是包含三通道的彩色图像数据。第三种,三维数据,一般情况下是视频数据。由于卷积神经网络应用于图像的处理最为普遍,因此基于二维数据的卷积神经网络最为常见。一般情况下,网络的输入特征需要进行归一化处理,比如将分布在[0,255]的原始像素值归一化至[0,1]区间内。输入特征标准化有助于提高卷积神经网络的学习效率和性能。卷积神经网络是通过卷积核在前一层的特征图(featuremap)上面做卷积来提取相应的特征,这样的特征具有局部感受野。然后将特征图送到激励层,不同的激励函数可以把线性特征做一定程度的非线性映射。图2-1卷积神经网络一般结构图再通过池化层达到降低特征维度的功能。最后将各个具有局部感受野的特征层用全连接层连接起来送到Softmax分类器中进行定位和分类。卷积神经网络相对于神经网络而言,最大的区别便是局部感受野和权值共享。传统的神经网络是每一个神经元连接所有图像区域。举例来说,假如说一幅图像的尺寸是512×512×3,那么第一个神经元的权重参数就有512×512×3=786432个。很显然对于一幅图像而言,不可能只有一个神经元。对于多个神经元而言,由于权重计算量过于庞大且权重没有共享,导致计算速度缓慢,往往容易使得神经网络出现过拟合等现象。普通的神经网络只能针对小尺度低分辨率图像,对于高分辨率、大尺度图像缺点很明显,而卷积神经网络则解决了这个问题。对于512×512×3这样的一幅图像,一般将它视为长为512,宽为512,深度为3的一幅图像。卷积神经网络不感受全局图像,而是进行局部感知。其利用较小的卷积核,如大小为3×3的卷积核对图像进行分块感知。而利用一个相同的神经元对整幅图像的不同区域进行感知,这便是卷积神经网络的权值共享。通过在最后一层添加全连接层,把特征图变成一维向量,输入到SVM或Softmax分类器中,从而完成最终的检测识别。通过对网络结构的不断学习和训练,利用卷积神经网络提取的深度特征就会更加丰富。接下来将对上述提到的卷积层、池化层,全连接层等相关部分进行详细介绍。1.1.1卷积层一般提到卷积,大多数情况下可能会想到微积分中的卷积。但实际上图像中的卷积计算方法和微积分中的卷积不完全一样。在进行卷积运算的过程中,会预先设置一个卷积核(ConvolutionalKernel)或者是称为过滤器(Filter)的滑动窗口,大小一般会设置为M×M(M为正整数,窗口的大小也被称为感受野)。每一个卷积核的维度和进入输入层数据的维度都是一致的。卷积核的数量也是可以被调整的。卷积操作中除了可以设置卷积核的数量和窗口大小之外,最重要的便是补零操作(Padding)和卷积步长(Stride)的设置。补零操作的主要作用有两个:一方面可以让卷积核多次覆盖特征图的边缘信息,防止边缘信息中有重要内容被漏,另外一方面可以使得图像尺寸一致。Padding的操作一般为对矩阵的四周补零。如果只是补了一圈零,则Padding=1,简写为P=1。如图2-2所示。图2-2对不规则特征矩阵进行Padding=1的补零卷积核在进行卷积运算时,每次滑动固定的距离对感受野中的特征进行点积运算。每次卷积核滑动的距离被称为步长Stride,一般记为S。图2-3中实线框为第一步运算,虚线框为第二步运算,也就是对补零后的特征图进行滑动计算。公式(2-1)为卷积层输出特征图的尺寸计算公式,其屮K为输出特征大小,W为输入特征图的长或宽,P为Padding的大小,S为步长大小。(2-1)图2-3对补零后的特征图进行Stride=1的卷积操作卷积运算最重要的是卷积核大小的选取。在之前的研究中,一般会选取较大的卷积核,如7×7,此种大小的卷积核对于图像能够有较大范围的感知。但是在后续的研究中发现,多个较小的卷积核往往能够起到和一个较大的卷积核相同的效果,同时权重参能降低一半。需要说明的一点是,卷积核在处理一幅图片时,开始卷积核的维度是一个四维向量[w,h,c,n],w、h代表卷积核的长宽,c代表的是卷积核的通道数,n代表的是有多少种这样的卷积核。每一种卷积核提取的特征类型不同,输出的特征图也自然不一样。卷积神经网络的局部感知示意如图2-4所示。可以清楚地看到卷积核的维数是3×3×3×2。3×3指的是卷积核的大小,第三个3指的是通道数,也就是RGB三通道。最后的一个2指的是有这样的两个不同的卷积核。在Tensorflow框架中,不需要写出整个卷积核的底层构造,只需要用一行代码指定维度便可以搭建整个网络,这使得搭建卷积神经网络变得十分的方便。图2-4卷积神经网络的局部感知1.1.2池化层池化层(PoolingLayer)一般接在卷积层的后面,属于下采样层(SubsamplingLayer)的一种。一般的卷积神经网络是以卷积-池化为结构去构造的(Conv-Pooling)。Pooling主要有两方面的作用,一方面保留主要的特征,减少网络的运算量和特征的参数,另外一方面可以防止过拟合。池化本质上是对图像的各层特征进行一个更高层次的抽象表示。对于单张图像而言,各个不同的区域特征可以相互适用。因此,对于所处不同位置的特征进行聚合统计,从而去描述大型图像的方法在理论上是可行的。研究者通过研究发现,聚合统计的方法有许多,平均值和最大值聚合则是最为常用的两种方法。在卷积的操作中,会有大量的区域被重复计算,计算出来的特征值会有一定程度的冗余。面对这样的卷积结果,池化操作就可以在一定程度上减少冗余。通过池化操作,特征层会丢弃一些局部的信息。但即使是图像或者是特征层在局部位置有所变化,也不会影响最终的结果。池化操作可以保持平移不变性,但同时也要注意到,池化操作本身没有参数可以学习,这种下采样的过程有可能会丢弃掉重要的识别信息。下面本文介绍两种常见的池化操作。图2-5平均池化图(1)平均池化(mean-pooling)如图2-5所示,对一个4×4的特征矩阵求取平均值。其中池化操作的窗口大小为2×2。与卷积操作不同,池化操作不会重复采样。而是对每个不同的目标区域进行采样。其主要目的是对目标区域求平均值,由此即可得到相应的特征值。(2)最大池化(max-pooling)如图2-6所示,本文给出了最大池化的计算样例。其中最大池化也是如同平均池化一样,对特征矩阵中不同的区域进行不重叠采样。唯一的不同在于,输出的不是平均值而是目前区域的最大值。图2-6最大池化图1.1.3激活层激活层(ActivationLayer)一般是由激活函数组成。通过对特征层进行非线性变换,使得卷积层可以在一定程度上模拟非线性函数。不管是卷积、池化抑或者是最后的全连接,都是对特征进行线性变换。但是多层线性变换的组合依旧还是线性变换。因此需要在线性变换层之间添加非线性变换层,从而使得卷积神经网络具有非线性特征。常用的激活函数有Sigmiod函数、双曲正切函数(Tanh)以及整流线性单元函数(RectifiedUnit,Relu)。(1)Sigmoid函数图2-7Sigmoid函数以及导数Sigmoid函数是一种非线性网络激活函数。数学表达式如下所示:(2-2)Sigmoid函数将输入的数值归一化到0到1之间,可以用其来输出概率,如图2-7所示。但同时Sigmoid函数也存在以下缺点:第一、当自变量取值趋近于正负两极时,函数值很难随着自变量的变化而有明显变化,因此在反向传播算法进行运算时,梯度消失较为常见。第二、网络参数运算量大,Sigmoid函数及其导数经常需要进行对指数运算,计算量较大,会影响到网络的收敛速度。(2)Tanh函数Tanh函数的表达式和上文提到Sigmoid函数以及其导数表达式相近,如公式(2-3)所示。(2-3)图2-8Tanh函数及导数Tanh函数和Sigmoid函数的不同之处在于,其输出值取值范围是在[-1,1]这个区间。当输入为0时,输出同样也会变为0。此外平均输出为0。但同时也存在计算量较大,和梯度消失的问题。函数图如图2-8所示。(3)Relu函数Relu函数的数学表达式如公式(2-4)所示:(2-4)由表达式分析可知,当自变量大于0时,因变量和自变量相同。当自变量小于等于0时,因变量等于0。Relu函数运算速度较快,并且当自变量取较大或者是较小正值时,都不会出现梯度消失。但同时Relu函数也有自身的缺点,当自变量小于0时,梯度会变成0,神经元会出现“死亡”的现象。实际中,研究者往往采用的是LeakyRelu,如公式(2-5)所示:(2-5)Relu的函数图如图2-9所示,从公式(2-5)中可以清晰地看到,假定取a为一个很小的常数,那么既可以保证在自变量小于0的时候数据能够修正为接近0,又可以保证自变量大于0时,不会出现梯度消失的现象,这是十分值得关注的。但是该函数中的a的取值必须足够小,但究竟取多少,还需要在实验中确定。一般情况下,业界认为此值为10−4时较好。图2-9ReLU函数及导数1.1.4全连接层卷积神经网络中的全连接层(FullyConnectedLayer)和传统神经网络中的全连接层相似。相邻的卷积层之间都有权重进行连接。一般情况下,全连接层只出现在CNN网络的末端。通过对局部特征进行整合,改善特征层的语义表达,从一般局部特征,上升到全局特征,由此可以完成分类识别等相关任务,如上图所示。对于相邻的一维网络层之间,全连接的具体方式可以用公式(2-6)所示的数学公式表达:(2-6)公式中的输入变量x为向量形式,输入的y也为向量形式。W和b分别代表的是权重参数以及偏置参数。结构图如图2-10所示。图2-10全连接层以5个神经元为例,第一层和第二层之间的权重参数总共有5×5个,偏置参数有5个。共计有30个参数。两层神经元个数乘积再加上偏置参数的个数总和便是总的参数个数。因此全连接层的参数量非常的大,参数学习起来也很慢。1.1.5损失函数损失函数一般用来代表模型的样本的标签值和输出值之间的差距。通过让算法学习数据特征,尽可能地减少损失函数的数值。其中用于计算多分类及其相应的损失函数的部分被称为Softmax损失函数。通过全连接层将输入的特征层送到Softmax中,得到每一个目标类别的概率大小,可以在一定程度上解决多分类问题的核心难点。如果设置训练样本个数为n,其中,x代表样本的特征向量,y是样本的目标标签信息,k是所选取样本的总类别数,是Softmax的参数。样本相应的假设函数公式如式(2-7)所示:(2-7)这里的是超参数,目标是产生[0,1]之间的值。每一个样本所属类别的概率如下所示:(2-8)最后根据最大似然估计推导出Softmax的损失函数如下所示:(2-9)其中是可以被训练的参数,x为训练特征,y为标签,m为训练样本数,其中1{}是示性函数,当其中的表达式为真的时候,输出1,当表达式为假的时候输出为0,j表示不同的种类。为了使损失函数最小化,一般使用梯度下降算法来进行最优化。但同时也需要注意,损失函数并非越低越好,因为会存在过拟合现象。当训练网络时,损失函数降低到较好的一个数值,表示模型在训练集上面表现良好,但在测试集上面表现却不尽如人意,这种情况一般称为过拟合。为了防止过拟合,通常会在原函数中添加惩罚项,如L1正则,L2正则项。但同时,也会有dropout方法,在网络层中随机让一些神经元输出为0。其方法可以用在卷积神经网络任何位置,也是迄今为止,应对过拟合问题最有效的方法之一。1.2卷积神经网络的训练方法在卷积神经网络的研究中,研究者发现反向传播算法是降低损失函数最有效的方法。一般来说,这种算法包括了前向传播以及反向传播两种传播途径。反向传播算法的一般思路是,计算出损失函数的公式,通过链式求导法则求解梯度下降最快的偏导数,对参数不断地进行更新迭代。直到损失函数最小,或者是在某个范围内收敛为止。1.1.1前向传播算法前向传播算法首先需要明确输入层,中间层,损失层,三种不同类别的层级。输入层是最开始输入数据的层级,也是经常提到的卷积神经网络第一层,输入的数据分别为x1,x2,x3等。通过中间层的计算,到达损失层,如图2-11所示。图2-11前向传播算法结构图计算过程可用公式(2-10)至(2-12)表示如下:(2-10)(2-11)(2-12)其中为输入数据的第个数据,因为是第一层输入数据,不需经过激活层。第1层第i个神经元数据的输出数据为,如公式(2-10)所示。网络中第l层的第i个神经元通过激活函数后的输出数据为,总计神经元数量为。第l层的第i个神经元与第l-1层的第j个神经元之间的权重比为。第l+1层的第i个神经元的偏置项为,通过上式可以看出加权以后的输入为。如果把整体的卷积神经网络参数的集合设置为(W,b),W、b均为矩阵形式。那么可以得到第l+1层整体激活值的表达式(2-13)以及(2-14):(2-13)(2-14)1.1.2反向传播算法 通过前向传播算法,可以计算得到卷积神经网络的输出值,但是此输出值不一定是符合样本标签值。因此需要通过反向传播不断地减少真实值和预测值之间的差距。通过计算损失函数,可以得到输出值和目标真实值的误差。再通过反向传播算法,对卷积神经网络的每一层参数进行不断更新。假设训练集样本有m个,网络深度为n:,对于任意一个样本来说,来说,其损失函数可以表示为:(2-15)公式(2-15)中是卷积神经网络的输出值,是网络的权重参数和偏置参数。对于m个样本的训练集,总体损失函数可以表示为:(2-16)公式(2-16)中的n表示总层数,为了防止卷积网络过拟合,因此设置了均方误差和权重衰减相关项,而则代表权重损失的与总体损失的相对值。反向传播算法的核心是让总体损失函数最小化。一般在深度学习中会使用批量梯度下降法(BatchGradientDescent,BGD)作为卷积神经网络参数下降算法。在每一次算法执行完毕,会对参数(W,b)进行更新。首先根据梯度下降算法,可以知道如果想要让J(W,b)这个二元函数整体取得最小值,或者是达到既定的最小阈值。如图2-12所示,二元函数沿着负梯度下降是最快的。由点逐步下降到点,可以发现下降速度逐渐变慢。图2-12二元函数梯度下降过程那么对每个点而言,参数更新的公式为式(2-17)和式(2-18):(2-17)(2-18)对于任意一个样本偏导数公式为式(2-19)和(2-20):(2-19)(2-20)其次再继续利用复合函数求导链式法则公式(2-21)和公式(2-22):(2-21)(2-22)在这里,设。当输出层为最后一层时,即l=n时,可得到如下式(2-23)所示。(2-23)而对于其他层而言,利用链式法则,可推导出对应的公式(2-24),其中sl+1指的是第l+1层神经元的个数:(2-24)由此,可以得到当时(2-25)(2-26)当时(2-27)(2-28)由此,根据上面的公式(2-25)至(2-28)得到反向传播算法的递推公式。通过在卷积神经网络中不断地训练、迭代,然后更新参数。1.3卷积神经网络优化方法对卷积神经网络进行训练时,各种除超参数外相应参数进行更新的算法统称为梯度下降算法。(1)随机梯度下降算法随机梯度下降算法(StochasticGradientDescent,SGD)顾名思义,是随机选取一个样本的损失函数进行参数更新迭代,也就是说用样本中的一个例子来近似所有的样本进而来调整。这样的好处是速度快,本身计算得到的并不是准确的一个梯度,最终的结果往往是在全局最优解附近。其中令,表示学习率,下面式(2-29)是其更新公式:(2-29)(2)批量梯度下降算法每次使用所有的训练集对网络的参数进行更新的算法称为批量梯度下降算法。这种方法的好处在于较为准确,基本上能够下降到全局最优的结果。但是如果数据量过多,算法需要每次对全部训练集相关参数都进行迭代,非常耗时。其中m表示样本总量。参数更新公式如下所示:(2-30)(3)小批量梯度下降算法从上面两种算法可以看出,批量梯度下降需要考虑全部的样本,需要花费较长的时间。而随机梯度下降算法在执行时,只需要随机选取一个样本,但是这样的计算方式导致样本数量太少,往往会导致局部最优。由于这两方面的考虑,研究者提出了小批量随机梯度下降算法。假设样本的总数量为50000个,那么每次随机选取100个作为所有样本的代表,并计算其损失来近似全局的损失。其参数更新公式如式(2-31)所示:(2-31)(4)学习率自适应梯度下降算法对于深度学习参数更新而言,学习率是一个至关重要的参数。当设置学习率为一个较大的固定参数,损失函数容易在全局最优解附近不断跳动,难以收敛。但如果设置学习率为一个较小的固定参数,模型则有可能收敛到“鞍点”无法跳出。因此,为了解决上述的这些问题。需要在模型一开始学习时即初始阶段,设置较大的固定学习率,在中间或者是最后收敛阶段,选取较小的固定学习率。可以发现,如果学习率可以根据上述理论能够自适应地进行调整,那么模型收敛将不会是一个难题。下面介绍几种学习率自适应算法。①AdaGrad算法AdaGrad优化算法的核心思路是,当参数的梯度较大时,学习率应较大。当参数的梯度较小时,学习率需要较小。使得所有参数都进行独立更新。基于AdaGrad优化算法的公式可以表示为式(2-32)到式(2-35):(2-32)(2-33)(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论