第5章 深度学习模型ppt课件.pptx
,高级大数据人才培养丛书之一,大数据挖掘技术与应用,刘鹏 主编 赵海峰 副主编,BIG DATA,刘 鹏 张 燕 总主编,深度学习,全国高校标准教材xxx姊妹篇,剖析xxx技术和实战应用,绪论,of,47,2,5.1神经网络技术的历史与发展,第五章 深度学习模型,早期的神经网络是一个浅层的学习模型(包含一个输入层、一个隐层及一个输出层),它有大量的参数,在训练集上有较好的表现,但实际应用时其识别率并没有比其他模型(如支持向量机、Boosting等)体现出明显的优势神经网络在训练时采用误差反向传播算法(Back Propagation,简称BP算法),使用梯度下降方法在训练过程中修正权重减少网络误差。在层次深的情况下性能变得很不理想,传播时容易出现所谓的梯度弥散Gradient Diffusion或称之为梯度消失(Vanishing Gradient Problem),根源在于非凸目标代价函数导致求解陷入局部最优,且这种情况随着网络层数的增加而更加严重,即随着梯度的逐层不断消散导致其对网络权重调整的作用越来越小。所以只能转而处理浅层结构(通常小于等于3),从而限制了神经网络的大范围应用。,of,47,3,5.1 概述-浅层神经网络,5.1神经网络技术的历史与发展,第五章 深度学习模型,2006年Hinton提出深度学习11后才被打破,深度神经网络的复兴存在多方面的原因其一,大规模的训练样本可以缓解过拟合问题;其二,网络模型的训练方法也有了显著的进步;其三,计算机硬件的飞速发 展(如英伟达显卡的出现)使得训练效率能够以几倍、十几倍的幅度提升。此外,深度神经网络具有强大的特征学习能力, 过去几十年中,手工设计特征一直占据着主导地位,特征的好坏直接影响到系统的性能。,of,47,4,5.1 概述-深度学习模型,5.1神经网络技术的历史与发展,第五章 深度学习模型,面对一个新的任务,如果采用手工设计的方式,往往需要很长时间,而深度学习能很快提取到具有代表性的特征。另一方面,随着分类任务复杂性的增加,需要用到越来越多的参数及样本,虽然浅层神经网络也能模拟出与深度学习相同的分类函数,但其所需的参数要多出几个数量级,以至于很难实现。,of,47,5,5.1 概述-深度学习模型,5.1神经网络技术的历史与发展,第五章 深度学习模型,学术界已经提出了多种深度学习模型,其中影响力较大的有以下几种(1)卷积神经网络:该网络一般包含三种类型的层,分别是卷积层、下采样层及全连接层。通过卷积核与上一层输出进行卷积作为卷积层的输出,这样可以达到权值共享的目的;下采样是在卷积层的基础上,在一个固定区域中采样一个点,使得整个网络具有一定的缩放、平移及形变不变性。(2)循环神经网络:该网络与传统前馈网络的区别在于,隐层的输入不仅包括输入层的数据,还包括前一时刻的隐层数据。这种结构的网络能有效处理序列数据,如自然语言处理。(3)深度置信网络:该网络由若干层受限玻尔兹曼机及一个反向传播网络组成。,of,47,6,5.1 概述-深度学习模型,全国高校标准教材xxx姊妹篇,剖析xxx技术和实战应用,绪论,of,47,7,5.2卷积神经网络,第五章 深度学习模型,卷积神经网络(Convolutional neural networks, CNN)已在图像理解领域得到了广泛的应用,特别是随着大规模图像数据的产生以及计算机硬件(特别是GPU)的飞速发展, 卷积神经网络以及其改进方法在图像理解中取得了突破性的成果,引发了研究的热潮。,of,47,8,5.2 卷积神经网络,5.2卷积神经网络,第五章 深度学习模型,卷积神经网络(Convolutional neural networks, CNN)已在图像理解领域得到了广泛的应用,特别是随着大规模图像数据的产生以及计算机硬件(特别是GPU)的飞速发展, 卷积神经网络以及其改进方法在图像理解中取得了突破性的成果,引发了研究的热潮。,of,47,9,5.2 卷积神经网络,5.2卷积神经网络,第五章 深度学习模型,of,47,10,图5.1 卷积神经网络整体结构图,5.2卷积神经网络,第五章 深度学习模型,of,47,11,图5.2 卷积层,图5.3 图像卷积效果示意图,5.2卷积神经网络,第五章 深度学习模型,of,47,12,卷积计算的输出值通常需要通过激励函数,实现非线性变换。,Sigmoid函数 ( Sigmoid Function ), Sigmoid 是常用的非线性的激活函数,它的数学形式如下:,Sigmoid函数,它能把实数(-,+)压缩到区间(0,1)之间,5.2卷积神经网络,第五章 深度学习模型,of,47,13,ReLU(Rectified Linear Units)函数,它的数学表达式如下:1维的情况下,当x0时,输出为输入。ReLU激励函数变的越来越受欢迎。ReLU的有效性体现在两个方面:1)克服梯度消失的问题;2)加快训练速度。,5.2卷积神经网络,第五章 深度学习模型,of,47,14,在深层卷积神经网络中,可以通过设计多个卷积层,不同层可以提取到不同类型的特征用于最终分类任务。,5.2卷积神经网络,第五章 深度学习模型,of,47,15,池化层:池化层也属于中间层,也称采样层或抽样层,为特征映射层池化包括:最大池化或平均池化。,5.2卷积神经网络,第五章 深度学习模型,of,47,16,输出层:卷积神经网络的输出层与其他神经前馈神经网络一样,为全连接方式。,5.2卷积神经网络,第五章 深度学习模型,of,47,17,输出层:卷积神经网络的输出层与其他神经前馈神经网络一样,为全连接方式。全连接方式中输出值的计算:,5.2卷积神经网络,第五章 深度学习模型,of,47,18,神经网络有两类基本运算模式:前向传播和反向传播。前向传播是指输入信号通过前一层中一个或多个网络层之间传递信号,然后在输出层得到输出的过程。反向传播算法是神经网络有监督学习中的一种常用方法,其目标是根据训练样本和期望输出来估计网络参数。卷积神经网络的训练卷积神经网络的训练要复杂一些。但训练的原理是一样的:利用链式求导计算损失函数对每个权重的偏导数(梯度),然后根据梯度下降公式更新权重。,5.2卷积神经网络,第五章 深度学习模型,of,45,19,反向传输调整权重反向传输过程是CNN最复杂的地方,虽然从宏观上来看基本思想跟BP一样,都是通过最小化残差来调整权重和偏置,但CNN的网络结构并不像BP网络那样单一,而且因为权重共享,使得计算残差变得很困难。输出层的残差和BP一样,CNN的输出层的残差与中间层的残差计算方式不同,输出层的残差是输出值与类标值的误差值,而中间各层的残差来源于下一层的残差的加权和。本章以平方误差损失函数的多分类问题为例介绍反向传播算法算法。对于一个c个类和和N个训练样本的例子,总误差可以如下给出。,5.2卷积神经网络,第五章 深度学习模型,of,45,20,首先介绍网络第l层的灵敏度的计算方法(Sensitivity),描述了总误差E怎样随着净激活值而变化反向传播算法实际上通过所有网络层的灵敏度来计算总误差对所有网络参数的偏导数从而计算使得训练误差减小的方向。,5.2卷积神经网络,第五章 深度学习模型,of,45,21,卷积层l的灵敏度需要用下一层池化层l+1的灵敏度表示卷积层l的灵敏度,然后计算总误差E对卷积层参数(卷积核参数k、偏置参数b)的偏导数。通过链式求导可得第l层中第j个通道的灵敏度:其中,表示每个向量与矩阵相乘。若池化层采样因子为n,则将每个像素在水平和垂直方向上复制n次,于是就可以从l+1层的灵敏度上采样成卷积层l的灵敏度,5.2卷积神经网络,第五章 深度学习模型,of,45,22,使用灵敏度计算卷积层l中的参数(卷积核参数k、偏置参数b)的偏导,分两种情况。情况1:对于总误差E对偏移量的偏导,可以对卷积层l的灵敏度中所有结点进行求和运算:情况2:对于总误差关于卷积核参数的偏导,使用链式求导时需要用所有与该卷积核相乘的特征图元素来求偏导:,5.2卷积神经网络,第五章 深度学习模型,of,45,23,池化层(downsampling):为计算池化层l的灵敏度,需要用下一层卷积层l+1的灵敏度表示池化层l的灵敏度,然后计算总误差E对池化层参数(权重系数、偏置参数b)的导数。此处的down()表示池化层的下采样(down sampling)函数。一般来说将l层中nxn块进行最大池化或平均池化操作,使得输出的图像维度在两个方向上都要小n倍。此处我们假设池化层的上一层和下一层都是卷积层。如果下一层开始是全连接层,那么可以使用BP神经网络中的反向传播算法来计算灵敏度矩阵。,5.2卷积神经网络,第五章 深度学习模型,of,45,24,全连接层:在全连接网络中,如果使用l表示当前层,使用L表示输出层,那么可以使用如下式子来计算输入当前层的输出,此处输出激活函数一般选sigmoid函数或者ReLU函数,常称为当前神经单元的净激活值。全连接层l的灵敏度可通过下式计算:输出层的神经元灵敏度可由下面的公式计算:总误差对偏移项的偏导如下:,5.2卷积神经网络,第五章 深度学习模型,of,47,25,全连接层:在全连接网络中,如果使用l表示当前层,使用L表示输出层,那么可以使用如下式子来计算输入当前层的输出,此处输出激活函数一般选sigmoid函数或者ReLU函数,常称为当前神经单元的净激活值。总误差对偏移项的偏导如下:总误差对权系数项的偏导如下,5.2卷积神经网络,第五章 深度学习模型,of,47,26,对于每个网络参数都有一个特定的学习率。若学习率太小,则训练的速度缓慢;若学习率太大,则可导致无法收敛。在实际问题中,如果总误差在学习过程中发散,那么学习率调小;反之,如果学习速度过慢,那么将学习率调大。,5.2卷积神经网络,第五章 深度学习模型,of,47,27,CNN训练技巧卷积层训练技巧传统卷积神经网络的卷积层采用线性滤波器与非线性激活函数,一种改进的方法在卷积层使用多层感知机模型作为微型神经网络,通过在输入图像中滑动微型神经网络来得到特征图,该方法能够增加神经网络的表示能力,被称为Network in network。池化层的选择 池化(Pooling)是卷积神经网络中一个重要的操作,它能够使特征减少,同时保持特征的局部不变性。常用的池化操作有:空间金字塔池化(Spatial Pyramid Pooling,SPP)、最大池化 (Max Pooling)、平均池化(Mean Pooling)、随机池化(Stochastic Pooling)等激活函数的选择常用激活函数有:ReLU、Leakly ReLU、Parametric ReLU、Randomized ReLU、ELU等。,5.2卷积神经网络,第五章 深度学习模型,of,47,28,CNN训练技巧损失函数的选择损失函数的选择在卷积神经网络中起重要作用,代表性的损失函数有:平方误差损失、互熵损失 (Cross entropy loss)、Hinge 损失等优化方法和技巧卷积神经网络常用的优化方法包含随机梯度下降方法(Stochastic gradient descent, SGD) ,常用的技巧有权值初始化、权值衰减(Weight decay)、Batch normalization等。,全国高校标准教材xxx姊妹篇,剖析xxx技术和实战应用,绪论,of,47,29,5.3 循环神经网络,第五章 深度学习模型,of,47,30,循环神经网络(Recurrent neural networks, RNN)是用来处理序列数据的神经网络RNN之所以称为循环神经网路,即一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,并且隐藏层的输入不仅包括输入层的输出还包括上一时刻隐藏层的输出。隐藏层之间的节点不再无连接而是有连接的。RNN已经被在实践中证明对NLP是非常成功的。如词向量表达、语句合法性检查、词性标注等。,5.3 循环神经网络,第五章 深度学习模型,of,47,31,RNN结构RNN网络的隐含层节点之间是有连接的,隐含层的节点的输入不仅包括输入层还有上一时刻隐含层的输出。RNN和其他网络一样也包含输入层、隐含层和输出层。这些隐含层的连接是RNN最主要的特色。,5.3 循环神经网络,第五章 深度学习模型,of,47,32,RNN结构输入层节点和隐含层节点相互连接,隐含层输出到输出层,而隐含层不是节点之间没有相互影响,可以是上一个时间节点输出信息重新返回隐含层节点,还可以包含隐含层相邻节点相互连接,是一个动态的网络。生物神经网络都是一种循环网络,可以对序列式数据理解,因此RNN更加接近生物神经系统。,5.2 循环神经网络,第五章 深度学习模型,of,47,33,RNN训练对于RNN是的训练和对传统的ANN训练一样。同样使用BP误差反向传播算法,不过有一点区别。如果将RNNs进行网络展开,那么参数W,U,V是共享的,而传统神经网络却不是的。并且在使用梯度下降算法中,每一步的输出不仅依赖当前步的网络,并且还以来前面若干步网络的状态。,5.2 循环神经网络,第五章 深度学习模型,of,47,34,RNN训练前馈网络的BP算法不能直接转移到RNN网络,因为误差的反馈是以节点之间的连接没有环状结构为前提的。在RNN中使用BPTT(Back Propagation Through Time)训练算法它会沿着时间展开神经网络,重新指定网络中的连接来形成序列。它的基本原理和BP算法是一样的,也包含同样的三个步骤:1)前向计算每个神经元的输出值;2)反向计算每个神经元的误差项值,它是误差函数E对神经元j的加权输入的偏导数;3)计算每个权重的梯度,最后再用随机梯度下降算法更新权重。,5.2 循环神经网络,第五章 深度学习模型,of,47,35,RNN中的自我反馈结构 在传统神经网络中,每一个网络层的参数是不共享的。而在RNNs中,每输入一步,每一层各自都共享参数U,V,W。因此RNNs中的每一步计算函数,只是输入值不同,因此极大地降低了网络中需要学习的参数;此处将RNN进行展开,这样变成了多层的网络。RNN的关键之处在于隐藏层,隐藏层具有记忆能力,能够记忆序列信息。,5.2 循环神经网络,第五章 深度学习模型,of,47,36,RNN训练技巧前面介绍RNN训练算法BPTT无法解决长时依赖问题(即当前的输出与前面很长的一段序列有关,一般超过十步就无能为力了),因为BPTT会带来所谓的梯度消失或梯度爆炸问题(vanishing/exploding gradient problem),这导致训练时梯度不能在较长序列中一直传递下去,从而使RNN无法捕捉到长距离的影响。梯度爆炸更容易处理一些。因为梯度爆炸的时候,我们的程序会收到NaN错误。我们也可以设置一个梯度阈值,当梯度超过这个阈值的时候可以直接截取。,5.2 循环神经网络,第五章 深度学习模型,of,47,37,RNN训练技巧前面介绍RNN训练算法BPTT无法解决长时依赖问题(即当前的输出与前面很长的一段序列有关,一般超过十步就无能为力了),因为BPTT会带来所谓的梯度消失或梯度爆炸问题(vanishing/exploding gradient problem),这导致训练时梯度不能在较长序列中一直传递下去,从而使RNN无法捕捉到长距离的影响。梯度消失更难检测,而且也更难处理一些。一般有三种方法应对梯度消失问题:合理的初始化权重值。初始化权重,使每个神经元尽可能不要取极大或极小值,以躲开梯度消失的区域;使用ReLU代替sigmoid和tanh作为激活函数;使用其他结构的RNNs,比如长短时记忆网络(LTSM: Long Short-Term Memory Neural Network),5.2 循环神经网络,第五章 深度学习模型,of,47,38,循环神经网络小结介绍了基本的循环神经网络、循环神经网络的训练算法:BPTT(Back Propagation Through Time)方法。基本的循环神经网络存在梯度爆炸和梯度消失问题,往往无法真正处理好长距离的依赖。真正得到广泛的应用的是循环神经网络的一个变体:长短时记忆网络(LTSM : Long Short-Term Memory Neural Network)。该模型相对于一般的RNNs,只是在隐藏层内部有一些特殊的结构,可以很好的处理长距离的依赖。长短时记忆网络比标准的 RNN 在很多的任务上都表现得更好。很多令人振奋的关于 RNN 的结果都是通过长短时记忆网络达到的。,1深度神经网络发展流行发展的主要原因有那些?2卷积神经网络主要包括哪几层? 3循环神经网络和卷积神经网络应用方向有哪些不同? 4循环神经网络主要包括哪几层?5简述循环神经网络训练中使用的BPTT方法?,习题:,AIRack人工智能实验平台一站式的人工智能实验平台,DeepRack深度学习一体机开箱即用的AI科研平台,BDRack大数据实验平台一站式的大数据实训平台,云创公众号推荐,手机APP推荐,网站推荐,感谢聆听,