




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、深度学习报告在写本扌报告前,阅读了TheHistoryBeganfromAlexNet:AComprehensiveSurveyonDeepLearningApproaches,并在网上查看了一些相关的内容,对其整合和理解。但是其中的很多细节还没有足够的时间去探索,有的概念也不是很确定自己说的对不对,还望指正。这篇扌告的主要目标是介绍深度学习的总体思路及其应用相关领域,包括有监督(如DNN、CNN和RNN)、无监督(如AE、GAN)(有时GAN也用于半监督学习任务)和深度强化学习(DRL)的思路。在某些情况下,深度强化学习被认为是半监督无监督的方法。本论文的其余部分的组织方式如下:第一节主要介
2、绍深度学习分类和特征。第二节讨论DNN,第三节讨论CNN;第四节介绍了不同的先进技术,以有效地训练深度学习模型;第五节讨论RNN;第六节讨论AE;第七节讨GAN;第八节中介绍强化学习(RL);第九节解释迁移学习;第十节介绍了深度学习的高效应用方法和硬件;第十一节讨论了深度学习框架和标准开发工具包(SDK)。下面是AI,ML,NN,DL的关系图:一.深度学习分类和特征深度学习类型深度学习方法可以分为以下几个类:监督学习,半监督学习,无监督学习,此外,还有另一类学习方法称为强化学习(RL)或深度强化学习(DRL),它们经常在半监督或有时在非监督学习方法的范围内讨论。(1)监督学习将大量的数据输入机
3、器,这些数据被事先贴上标签,例如,要训练一个神经网络来识别苹果或者橙子的图片,就需要给这些图片贴上标签,机器通过识别所有被标记为苹果或橙子的图片来理解数据,这些图片有共同点,因此机器可以利用这些已识别的图片来更准确的预测新图片中的内容到底是苹果还是橙子。他们看到的标记数据越多,看到的数据集越大,预测准确性就越高。所以监督学习是一种使用标注数据的学习技术。在其案例中,环境包含一组对应的输入输出。比如,输入是x_t,智能体预测后的值与标签对比来获得损失值。接着智能体不断迭代调整网络参数,从而更好地近似期望输出。成功训练之后,智能体可对环境问题做出正确回答。监督学习主要有以下几种:深度神经网络(DN
4、N)、卷积神经网络(CNN)、循环神经网络(RNN)(2)无监督学习一种不使用标注数据的学习技术,即不知道输入数据对应的输出结果是什么。在这种情况下,无监督学习只能默默的读取数据,自己寻找数据的模型和规律,而不需要监护人的指导。无监督学习方法通常有聚类、降维和生成技术等。有些深度学习技术擅长聚类和非线性降维,如自编码器(AE)和GAN等。此外,RNN(比如LSTM)和RL也被用作半监督学习243。到目前为止,在任何方面无监督学习都达不到监督学习的准确性和有效性。(3)半监督学习一种使用部分标注数据的学习技术(通常被称之为强化学习),半监督学习训练中使用的数据,只有一小部分是标记过的,而大部分是
5、没有标记的。因此和监督学习相比,半监督学习的成本较低,但是又能达到较高的准确度。在一些案例中,深度强化学习(DRL)和生成对抗网络(GAN)常被用作半监督学习技术。此外,包含LSTM的RNN和GRU也可划分为半监督学习。(4)强化学习(RL)强化学习(RL)不同于监督学习和非监督学习。在强化学习RL)中没有原始已知数据可以学习。强化学习面对的是一个不断变化的状态空间要解决的是一个决策链问题。其目的是找到在当前环境(状态空间)下最佳决策是什么。这里的挑战是,当下的决策好坏当下无法验证和评估,要根据多次决策以后才能知道。就像下棋,当前的决策(棋子落点)要在五步十步棋之后才能判断是好是坏。所以强化学
6、习中并没有大量的原始已知输入数据,机器需要在变化的环境中通过多次的试错学习,再根据某种规则找到产生最佳结果的最佳路径,从而做出最佳决策。比较常见的应用有下棋(包括下围棋和象棋)、机器人、自动驾驶等,这些人工智能技术中都用到了强化学习。特征学习通过机器学习解决问题的思路:传感器获得数据预处理特征提取特征选择推理,预测和识别(机器学习的部分),中间三部分也叫特征表达,而特征是机器学习系统的原材料,对最终模型影响很重要,数据要能够被很好的表达成特征,但是这一部分一般是靠人工提取特征,而手工提取需要专业知识,费时,靠经验和运气。传统的机器学习特征提取算法包括:尺度不变特征变换(SIFT)、加速鲁棒特征
7、(SURF)、GIST、RANSAC、直方图方向梯度(HOG)、局部二元模式(LBP)、经验模式分解(EMD)语音分析,支持向量机(SVM)、随机森林(RF)、主成分分析(PCA)、核主成分分析(KPCA)、线性递减分析(LDA)、Fisher递减分析(FDA)等。所以就想到能不能自动的学习一些特征,深度学习就是来干这个事的,不需要人参与特征选择的过程,而让机器自动的学习良好的特征。应用深度学习的时机和领域人工智能在以下领域十分有用,深度学习在其中扮演重要角色:缺乏人类专家(火星导航);人们尚无法解释的专业知识(演讲、认知、视觉和语言理解);3问题的解决方案随时间不断变化(追踪、天气预报、偏好
8、、股票、价格预测);解决方案需要适应特定情况(生物统计学、个性化);人类的推理能力有限,而问题的规模却很大(计算网页排名、将广告匹配到Facebook、情感分析)。目前几乎所有领域都在应用深度学习。因此,这种方法通常被称为通用学习方法。下图显示了一些示例应用程序ObjectdetectiDiLmVidCaptiQumz卫皿aiaicpisCarSpsechreccgritiotLSsiurib-3SiDe险倍RrianCanrtWBptticvn深度学习的前沿发展深度学习在计算机视觉和语音识别领域有一些突出的成就,如下所述:1)ImageNet数据集上的图像分类Imagenet数据集是目前深度
9、学习图像领域应用得非常多的一个领域关于图像分类、定位、检测等研究工作大多基于此数据集展开。它有1400多万幅图片,涵盖2万多个类别。Imagenet数据集文档详细,有专门的团队维护,使用非常方便,在计算机视觉领域研究论文中应用非常广,几乎成为了目前深度学习图像领域算法性能检验的“标准”数据集。下图显示了2012年深度学习技术的发展历程。时至今日,我们开发的模型ResNet-152在这个数据集上只有3.57%的误差,低于人类约5%的误差。TheetperimentairesultsonImageNet-2012IB16.4161412童ID20122013201420142015AlfiKNel
10、7ClarifiaBVGG-169GoogLeNet-R&sNet-Human19uq13211Model&Year2)自动语音识别深度学习通过TIMIT数据集(通用数据集通常用于评估)完成的小规模识别任务是深度学习在语音识别领域的初次成功体现TIMIT连续声音语音语料库包含630位来自美国的八种主要英语口音使用者,每位发言人读取10个句子。下图总结了包括早期结果在内的错误率,并以过去20年的电话错误率(PER)来衡量。条形图清楚地表明,与TIMIT数据集上以前的机器学习方法相比,最近开发的深度学习方法(图顶部)表现更好。Phoneerrorrate(PERinpercentagef%)深度学
11、习面临的挑战使用深度学习进行大数据的分析(针对此问题,解决方案正在高性能的计算机系统上进行部署)深度学习方法要有可扩展性(要能在多个服务器上运行,节约时间)在在数据不可用于学习系统的情况下(尤其是对于计算机视觉任务,例如反向图形),生成数据的能力非常重要。(对生成模型进行研究)4特殊用途设备的低能耗技术,如移动端智能,FPGA等。(正在对网络架构和硬件方面高效率深度学习方法进行研究)5.多任务和迁移学习(泛化)或多模块学习。这意味着要从不同的领域或不同的模型一起学习。(谷歌提交的论文OneModelToLearnThemAll29介绍了一种新方法,其可以从不同的应用领域学习,包括ImageNe
12、t、多种翻译任务、图像标题(MS-COCO数据集)、语音识别语料库和英语解析任务)6在学习中处理因果关系。二深度神经网络DNN)DNN介绍神经网络需要通过学习过程来从其环境中获取知识,这个过程模拟了生物大脑的工作方式。基本的计算元素(神经元)被称为接受外部源输入的节点(或单元),具有一些内部参数(包括在训练期间学习到的权重和偏差)并产生输出。这个单位被称为感知器。单层感知器(SLP)感知器的最简单形式是在输入和输出之间有一个单层的权重连接,模型图如下:机-.比Output其中x1,x2.xm是输入信号,wk1,wk2.wkm是权重,这个参数表示了每个特征xj的重要性,bk是偏差,神经元公式可以
13、用数学表达式如下:瑰=叫可片=緘匹+%)其中(.)是非线性的,叫做激活函数。激活函数的作用是将非线性引入神经元的输出为网络提供非线性的建模能力。如果没有激活函数,那么该网络仅能够表达线性射。比时即使有再多的隐藏层,其整个网络跟单层神经网络也是等价的。因此可以认为,只有加入了激活函数,深度神经网络才具备了分层的非线性映射。激舌函数都接受一个数字,并进行特定,固定的计算。在实践中,可能会碰到几种激活函数:Sigmoid(S型激活函数):输入一个实值,输出一个0至1间的值o(x)=1/(1+exp(-x)tanh(双曲正切函数):输入一个实值,输出一个-1,1间的值tanh(x)=2o(2x)-1R
14、eLU:ReLU代表修正线性单元。输出一个实值,并设定0的阈值(函数会将负值变为零)f(x)=max(0,x)。ReLu激活函数是最近几年比较受欢迎的激活函数,相比于其它两种,它能在SGD中快速收敛。2)多层感知器人工神经网络或者一般神经网络由多层感知器(MLP)由组成,其中包括一个或多个隐藏层,每个隐藏层包括多个隐藏单元(神经元),具有MLP的NN模型模型如下:*1bw多层感知器可以用数学表达式(这是一个符合函数)表示如下:yfx)=爭(说冲(iv制(“&4-+眄+旳DL和传统神经网络由相同的地方也有不同的地方。二者的相同在于deeplearning采用了神经网络相似的分层结构,系统由包括输
15、入层、隐层(多层)、输出层组成的多层网络,只有相邻层节点之间有连接,同一层以及跨层节点之间相互无连接,这种分层结构,是比较接近人类大脑的结构的。不同之处是为了克服传统神经网络训练中的问题,DL采用了与神经网络很不同的训练机制。传统神经网络中一般采用的是backpropagation的方式进行,简单来讲就是采用迭代的算法来训练整个网络,随机设定初值计算当前网络的输出,然后根据当前输出和label之间的差去改变前面各层的参数,直到收敛。而DL是逐层训练的训练机制。简单的说,可以分为两步,一是每次训练一层网络,二是调优,使原始表示x向上生成的高级表示r和该高级表示r向下生成的x尽可能一致。梯度下降梯
16、度下降是一种常用的权重优化函数,根据权重造成的误差来调整函数,得到更好的优化代价函数,定义代价函数如下,其中x是输入值,a是输出值。n是训练数据集实例个数,b是偏差,C被称为二次代价函数。C(w,b)越小越好,输出的预测值和真实值差别越小越好。我们训练神经网络的目的是能找到能最小化二次代价函数C(w,b)的权重和偏置:上面的函数有另个变量w,b,通常可以用微积分表示,重复计算梯度度C,然后沿着相反的方向移动,沿着山谷“滚落”。每下降到一个地方,就要计算下一步要往哪个方向下去求得极值过程过程可以用下图表示:横坐标为wk,纵坐标为Co权值和偏置的更新规则:n是学习率,下面将会对其进行讲解。随机梯度
17、下降(SGD)传统梯度下降法会让学习变得相当缓慢,因为它每次都会使用全部训练样本,如果训练数据集过大,会花费很长的时间。而随机梯度下降算法每次只随机选择一个样本来更新模型参数,可能最后只用其中几万条或者几千条的样本,就已经将迭代到最优解了。因此每次的学习是非常快速的。但是缺点是:准确度下降,并不是全局最优;小批量梯度下降(Mini-batchGradientDescent)小批量梯度下降是上面两种方法的折中。MBGD在每次更新参数时使用b个样本(b一般为10),算法的训练过程比较快,而且也能保证最终参数训练的准确率举个例子第一个人看一幅画(输入数据),描述给第二个人(隐层)依此类推,到最后一个
18、人(输出)的时候,画出来的画肯定不能看了(误差较大)反向传播把画拿给最后一个人看(求取误差),然后最后一个人就会告诉前面的人下次描述时需要注意哪里(权值修正)在深度学习中,反向传播就是根据最后的损失值C(w,b)用梯度下降法调整前面每一层的权重取值。不断地交替进行正向传播(求损失值)和反向传播来训练神经网络。动量动量是一种有利于以SGD方法加速训练过程的方法。如图所示,红色为SGD+Momenttum.黑色为SGD学习率学习率是一个重要的超参数,控制着我们基于损失梯度调整神经网络权值的速度,即以多块的速度收敛到局部最小值。学习率过小,意味着要花更多的时间收敛,学习率过大,收我们使用随机梯度下降
19、法和一批大小为128、动力为0.9、权重衰减为0.0005的样例来训练我们的网络。我们发现,这少量的权重衰减对于模型学习是重要的。换句话说,这里的权重衰减不仅仅是一个正则化矩阵:它减少了模型的训练误差。对于权重w的更新规则为0*9*坯一0.0005-wdL其中i是迭代指数,v是动力变量,&是学习率,这里写图片描述是目标关于w、对这里写图片描述求值的导数在第i批样例这里写图片描述上的平均值。我们用一个均值为0、标准差为0.01的高斯分布初始化了每一层的权重。我们用常数1初始化了第二、第四和第五个卷积层以及全连接隐层的神经元偏差。该初始化通过提供带正输入的ReLU来加速学习的初级阶段。我们在其余层
20、用常数0初始化神经元偏差。我们对于所有层都使用了相等的学习率,这是在整个训练过程中手动调整的。我们遵循的启发式是,当验证误差率在当前学习率下不再提高时,就将学习率除以10。学习率初始化为0.01,在终止前降低三次。我们训练该网络时大致将这120万张图像的训练集循环了90次,在两个NVIDIAGTX5803GBGPU上花了五到六天。三卷积神经网络CNN)A.CNN介绍上面所说的全连接网络不太适合图像识别任务,主要有以下几个方面的问题:参数数量太多:考虑一个输入1000*1000像素的图片(一百万像素,现在已经不能算大图了),输入层有1000*1000=100万节点。假设第一个隐藏层有100个节点
21、(这个数量并不多),那么仅这一层就有(1000*1000+1)*100=1亿参数,这实在是太多了!我们看到图像只扩大一点,参数数量就会多很多,因此它的扩展性很差。没有利用像素之间的位置信息对于图像识别任务来说,每个像素和其周围像素的联系是比较紧密的和离得很远的像素的联系可能就很小了。如果一个神经元和上一层所有神经元相连,那么就相当于对于一个像素来说,把图像的所有像素都等同看待,这不符合前面的假设。当我们完成每个连接权重的学习之后,最终可能会发现,有大量的权重,它们的值都是很小的(也就是这些连接其实无关紧要)。努力学习大量并不重要的权重,这样的学习必将是非常低效的。那么,卷积神经网络又是怎样解决
22、这个问题的呢?主要有三个思路尽可能保留重要的参数,去掉大量不重要的参数,来达到更好的学习效果:局部连接:这个是最容易想到的,每个神经元不再和上一层的所有神经元相连,而只和一小部分神经元相连。这样就减少了很多参数。权值共享:一组连接可以共享同一个权重,而不是每个连接有一个不同的权重,这样又减少了很多参数。3下采样:可以使用Pooling来减少每层的样本数,进一步减少参数数量,同时还可以提升模型的鲁棒性。inputimafleJPeaiire3FeaureMaps祸弼ConvolutionLayerPoolingLayerSFeakire5FtaiurtMapsMapsOutputLayerPoo
23、lirigLayerFullyConnectedMeiwcrk下图为CNN的结构图:ConycluticnLayer1)卷积层(ConvolutionLayer)卷积层是用来进行特征提取的,每层神经元只和上一层部分神经元相连(卷积计算规则),第一个卷积层对这幅图像进行了卷积操作,得到了三个FeatureMap。这里的3实际上就是这个卷积层包含三个Filter,也就是三套参数,每个Filter都可以把原始输入图像卷积得到一个FeatureMap,三个Filter就可以得到三个FeatureMap。这其中体现了局部连接和特征共享。参数数量明显减少。2)池化层(PoolingLayer)Poolin
24、g层主要的作用是下采样,通过去掉FeatureMap中不重要的样本,进一步减少参数数量。Pooling的方法很多,最常用的是MaxPooling。池化层引用了平移不变性,也就是说网络对识别对象在图片中的位置不敏感,例如对两张苹果的图片,一个是正放,一个是倒放,最后都可以将它识别为苹果这一类。3)全连接层连接所有的特征,将输出值送给分类器(如softmax分类器)B.流行的CNN体系结构体系结构通常由多个卷积层和最大池层组成,最后是完全连接的SoftMax层。这些模型的一些例子是LeNet,AlexNet,VGGNet,NiN和所有卷积(AllConv)。其他替代和更高效的高级体系结构已经被提出
25、,其中包括GoogLeNet和InceptionNetworks,ResidualNetworks,DenseNet和FractalNet。这些架构中的基本构建组件(卷积和池化)几乎相同。下面图显示了近18年深度神经网络的架构发展情况。Inception-v3ReaNet-50KesWet-34Reshet-18GoogleNetBNAlexNetAlexNpt图中的坐标轴我们可以看出横坐标是操作的复杂度,纵坐标是精度。模型设计一开始的时候模型权重越多模型越大,其精度越高,后来出现了resNet、GoogleNet、Inception等网络架构之后,在取得相同或者更高精度之下,其权重参数不断下
26、降。值得注意的是,并不是意味着横坐标越往右,它的运算时间越大。在这里并没有对时间进行统计,而是对模型参数和网络的精度进行了纵横对比。1)LeNet虽然LeNet是在20世纪90年代提出的,但计算能力和内存容量有限使得该算法难以实现,直到2010年。然而,LeCun使用反向传播算法提出了CNN,并在手写数字数据集上进行了实验,以获得最先进的精确度。他的架构被称为LeNet5。LeNet-5的基本配置是如下图:2个卷积(conv)层,2个池化层,2个完全连接的层以及一个具有高斯连接的输出层。高斯连接输出层)豆麗4口置五LDKClJi2)AlexNet2012年,AlexKrizhevesky和其他
27、人提出了一个与LeNet相比更深更广的CNN模型,并在2012年赢得了视觉对象识别最困难的ImageNet挑战-称为ImageNet大规模视觉识别挑战(ILSVRC)7.这个model的意义比后面那些model都大很多,首先它证明了CNN在复杂模型下的有效性,然后GPU实现使得训练在可接受的时间范围内得到结果,让CNN和GPU都大火了一把,顺便推动了有监督DL的发展AlexNet针对所有传统的机器学习和计算机视觉方法,实现了最先进的识别精度。这是视觉识别和分类任务中机器学习和计算机视觉领域的重大突破,也是对深度学习兴趣迅速增长的历史时刻。AlexNet的架构如下所示,可以看出它有8个权重层,包
28、括5层的Con+pool,2层FC,1层softmax。它的网络结构详细如下:poolipjgpokingiwnWax今天的问题:1卷积计算详细过程。卷积层2filter指代什么,怎么选取3池化池化层(平均,最大怎么选)4全连接5softmax6dropout7给一个cnn例子A卷积层过程假设有一个5*5的图像,使用一个3*3的filter进行卷积,步幅取1,会得到一个3*3的FeatureMap,如下图所示:image5*5计算结果如下:filter3*3featuremap3*3filter3*3featuremap3*3image5*5一直计算完得到:filter3*3featurema
29、p3*3111000111000I.1:00Qo01Q.QiImageE00S0a3ConvolvedFeature还可以将步幅设为大于1的数。例如,当步幅为2时,FeatureMap计算如下:bias=Ofilter3*3featuremap2*2filter3*3featuremap2k21110001110001110011001100filter3*3featuremap2*2image5*5101010101bias=Ofilter3*3featuremap2*2一张彩色图片在计算机中是以像素存储的,它由三原色(红,绿,蓝)以不同比例相加产生多种多样的色光,所以可以看成有三个通道RG
30、B。比如下图可以看成是一个5*5*3的输入图片,3表示图片的3个通道,经过两个3*3*3filter的卷积(步幅为2),这里卷积的深度也要取为3和前面保持一致,得到一个3*3*2的输出。在后面的卷积层中,卷积的深度要和前一层输入的FeaturnMap保持一致。InputXblmne(-pad1)(m)x::#FilterWOMji3)沁:0G100200001100001-000000000Q100Q/01124001a孑0y01X410U0二0勺2r0010X000从全局看:featuremap)iOOxlOOxm-100-10000才-1-1FilterW:沖-1Q0-LQ1100uioe
31、mentOutputalmne3-I-198x98xn动图链接: HYPERLINK https:/cs231n.github.io/assets/conv-demo/index.html https:/cs231n.github.io/assets/conv-demo/index.html可以看到,最后得到的FeatureMap的个数取决于卷积核的个数。卷积核的选择:个数选择:2的次方大小选择:根据输入数据和图像特征,比如你的图像很大,你想插入的距离稍微大点,就可以选择大点的卷积核。但是一般取小一点比较好,比如3*3。卷积核用于提取特征,卷积核个数越多,提取的特征越多,理论上精度也会更高,但
32、是,也意味着训练的参数的个数越多。深度选择:与输入数据一致内部信息:随机初始化,然后再通过反向传播进行调整。步长选择:步长小重叠信息比较多,计算比较冗余。步长大信息可能会丢失。B.池化层过程1使用最多的是最大池化层(maxpooling),计算图像区域内的最大值,提取纹理效果好Singledepthslicemaxpoolwitfi2x2filtersandstride26H保留背景更好2平均池化层(meanpooling),计算图像区域的平均值,SingledepthsliceTneanpoolvvlth2x2filtersordstride23.25525C.全连接层的作用全连接层在整个卷
33、积神经网络中起到“分类器”的作用。如果说卷积层,池化层等操作是将原始数据映射到隐层特征空间的话(即特征提取),全连接层则起到将学到的“分布式特征表示”映射到样本标记空间的作用(分类),对特征进行重新拟合,减少特征信息的丢失。假设一个识别图片内容的神经网络已经训练完了,全连接层已经知道当我们得到以上特征,我们就可以判定这个图片是猫从下图可以看到红色的神经元表示这个特征被找到了,同一层的其他神经元,要么猫的特征不明显,要么没找到,当我们把这些找到的特征组合在一起时,发现最符合要求的是猫。往前走一层,要对子特征进行分类,就是对猫头,猫尾巴,猫腿等进行分类,下面把猫头找出来猫头的子特征如上,在上一层中
34、,找到这些特征,神经元就被激活(下图红色圆圈)这子特征就是通过前面的卷积层和池化层得来的。Dsoftmax如果是多分类问题,一般会在全连接层后面接一个softmax层。它的输入是T*1的向量,输出也是T*1的向量,这个向量的每个值表示这个样本属于每个类的概率(在01之间,总和为1),Softmax公式:例如上面的图,最后是4分类问题,假设是将图片分为猫,狗,鸟,鸭。如下图,最后选择概率值最大的分类,该图片是猫。-eOOyl沖13口F面详细的讲解LeNet-5,它是用于手写字体识别的一个经典的CNN:C3:f.FRaps;1610 x10mans.qj-samplingFullconnectio
35、n输入:32*32的手写字体图片,这些手写字体包含09数字,也就是相当于10个类别的图片输出:分类结果,09之间的一个数。因此我们可以知道,这是一个多分类问题,总共有十个类,因此神经网络的最后输出层必然是SoftMax问题,然后神经元的个数是10个。LeNet-5结构:输入层:32*32的图片,也就是相当于1024个神经元Cl层:选择6个filter,然后filter大小选择5*5,这样我们可以得到6个FeatureMap,然后每个特征图的大小为32-5+1=28(步长为1),也就是神经元的个数为6*28*28=784。S2层:这就是下采样层,也就是使用最大池化进行下采样,池化的size,选择
36、(2,2)(步长为2),也就是相当于对C1层28*28的图片,进行分块,每个块的大小为2*2,这样我们可以得到14*14个块,然后我们统计每个块中,最大的值作为下采样的新像素,因此我们可以得到S1结果为:14*14大小的图片,共有6个这样的图片。C3层:选择16个filter,然后filter大小选择5*5,那么每个特征图的大小为14-5+1=10(步长为1),这样我们可以得到16个FeatureMap。S4层:下采样层,比较简单,也是知己对C3的16张10*10的图片进行最大池化,池化块的大小为2*2。因此最后S4层为16张大小为5*5的图片。至此我们的神经元个数已经减少为:16*5*5=4
37、00。C5层:我们继续用5*5的卷积核进行卷积,然后我们希望得到120个特征图。这样C5层图片的大小为5-5+1=1,也就是相当于1个神经元,120个特征图,因此最后只剩下120个神经元了。F6层:将上图中的86个神经元改为10个,应为后面的softmax是10分类问题Softmax层:计算每个数字的概率,概率最大的类判定为图片中的手写字类别。E.训练过程(1)全连接层参数更新过程假设,你有这样一个网络层:第一层是输入层,包含两个神经元il,i2,和截距项bl;第二层是隐含层,包含两个神经元h1,h2和截距项b2,第三层是输出o1,o2,每条线上标的wi是层与层之间连接的权重,激活函数我们默认
38、为sigmoid函数。现在对他们随机赋上初值,如下图:.45W60125w350w30w45515w1.20w2其中,输入数据输出数据初始权重i1=0.05,i2=0.10;o1=0.01,o2=0.99;w1=0.15,w2=0.20,w3=0.25,w4=0.30;w5=0.40,w6=0.45,w7=0.50,w8=0.55目标:给出输入数据il,i2(0.05和0.10),使输出尽可能与原始输出ol,o2(0.01和0.99)接近。Step1前向传播1.输入层隐含层:计算神经元h1的输入加权和:=加*!j-I-*1nethl=0.15%005十0.2木0.1+0.35牛I=0.3775
39、神经元h1的输出o1:(此处用到激活函数为sigmoid函数):outhl=卄匕叫1=幻粘=0.593269992同理,可计算出神经元h2的输出o2:outh2=0.59G8843782隐含层输出层:计算输出层神经元o1和o2的值:net(x+outhi十w6+f皿曲b*1net=0.4爭0.593269992+().45*0.596884378+().6床1=1.105905967。诃01_|_c-1.10T9D59G/-1()51365(1/outo2=0772928465这样前向传播的过程就结束了,我们得到输出值为0.75136079,0.772928465,与实际值0.01,0.99相
40、差还很远,现在我们对误差进行反向传播,更新权值,重新计算输出。Step2反向传播1.计算总误差总误差:(squareerror)Etotai=刀garget-output)2但是有两个输出,所以分别计算o1和o2的误差,总误差为两者之和:E01=targetoi-outo)2=|(0.01-0.75136507)2=0.274811083E枫=0,023560026=EO1+Eo2=0,274811083+0.023560026=0.2983711092隐含层输出层的权值更新:以权重参数w5为例,如果我们想知道w5对整体误差产生了多少影响,可以用整体误差对w5求偏导求出:(链式法则)8Et如_
41、BEgtcd水%肚俎*加1doutoidnetoidw下面的图可以更直观的看清楚误差是怎样反向传播的:b2outputEO1=I4(targeto1-outo1)totalE+Eo2*曲*Em谥dti小output现在我们来分别计算每个式子的值:计算:d如=(targetol-out屏+j(targeto2-out)2爲晋=-(target张晋=2*tar(jetol-呃如尸一】*-1+0Htol)=-(0.01-0.75136507)=0.74136507计算亦讯i=ou.toll-outol)=0.75130507(1-0.75136507)=0J86815602这一步实际上就是对sigm
42、oid函数求导)计算neto-地水outhi十帘outh2十b半1務斜=1水皿切水於it)()十()=outhA=0.593269992最后三者相乘:dncti074136507左0.1SG815602芈0,593269992=(L082167041这样我们就计算出整体误差E(total)对w5的偏导值。回过头来再看看上面的公式,发现:驚f=(targetolouto)*OUt0y(10Utoi)*OUth为了表达方便,用来表示输出层的误差灵敏度:x丈円fi1dE如0outoidnetodneto50-(targetoidoA)*outol1out亦)因此,整体误差E(total)对w5的偏导
43、公式可以写成:最后我们来更新w5的值:(其中,是学习速率,这里我们取0.5)同理,可更新w6,w7,w8:乩讣=0.408666186wt=0.511301270wt=0.5613701213隐含层输入层的权值更新:方法其实与上面说的差不多,但是有个地方需要变一下,在上文计算总误差对w5的偏导时,是从out(ol)net(ol)w5,但是在隐含层之间的权值更新时,是out(hl)net(hl)w1,而out(hl)会接受E(ol)和E(o2)两个地方传来的误差,所以这个地方两个都要计算。netol=W5水0泌hl十6*O祖h2十2*1dout.hiw5=0.40込i=douth-爲茁水牆忙=0
44、.138498562曲0.40=0.055399425同理,计算出:蔬一0.019049119两者相加得到总值:&=7&十脇7=05399425十-0X)19049119=0.036350306再计算dnethlouthi14-e_nethloi叫15nethiouthl(l一outhl)-0.59326999(1一59326999)-0.241300709dwi再计算=Wy*右+W2*勺2十b*1最后,三者相乘:BE如Qi_8%如芈%如*刃肚如dwjdoutf,dnetfii乃的S3S*!IM(I”H(3)池化操作反向传播0doQ14ab5D0O00O0/Lo00h0Li151osQSJz工
45、!r芬力北防轴递率百旳禄聲擁.它的网络特点有:(1)RELU的使用AlexNet使用RELU作为激活函数,相比于反正切,该方法训练速度大约有6倍提升。下图是一个基于CIFARTO的四层卷积网络在tanh和ReLU达到25%的trainingerror的迭代次数:实线、间断线分别代表的是ReLU、tanh的trainingerror,可见ReLU比tanh冃能够更快的收敛。(2)LRN(LocalResponseNormalization局部响应标准化)LRN加在RELU的激活后面,能够增加网络的泛化能力,并在ILSVRC-2012上降低1%的错误率(不是很了解)(3)OverlappingPo
46、oliing(重叠池化)重叠池化的意思是,池化步伐小于kernelsize,这样池化后的featuremap的感受野其实是有部分重叠的。(作用是什么?)(4)DataAgumentation(数据增强)数据增强是为了增强模型性能,通过扩充样本的数量防止模型过拟合。例如通过PCA扩展数据集。另外,其实还有更多的方法视你的业务场景去使用,比如做基本的图像转换如增加减少亮度,一些滤光算法等等之类的,这是一种特别有效地手段,尤其是当数据量不够大的时候。(5)DropOut训练阶段:卷积神经网络的计算量其实主要集中在全连接层,这些层参数太多了,也最容易发生过拟合。所谓的Dropout指的是在用前向传播算
47、法和反向传播算法训练DNN模型时,一批数据迭代时,随机的从全连接DNN网络中去掉一部分隐藏层的神经元。现在它已经是主流的做法了。比如我们本来的DNN模型对应的结构是这样的:在对训练集中的一批数据进行训练时,我们随机去掉一部分隐藏层的神经元,以概率P舍弃部分神经元,其他神经元以概率q=p-1被保留,每个神经元被“舍弃”的概率是一样的。并用去掉隐藏层的神经元的网络来拟合我们的一批训练数据。如下图,去掉了一半的隐藏层神经元:然后用这个去掉隐藏层的神经元的网络来反向传播,更新相应的W,b。在下一批数据迭代前,我们会把DNN模型恢复成最初的全连接模型,然后再用随机的方法去掉部分隐藏层的神经元,接着去迭代
48、更新W,b。测试阶段:在网络前向传播到输出层前时隐含层节点的输出值都要缩减到(1-v)倍;例如正常的隐层输出为a,此时需要缩减为a(1-v)o这里网上看到的一个解释是:假设比例v=0.5,即在训练阶段,以0.5的比例忽略隐层节点;那么假设隐层有80个节点,每个节点输出值为1,那么此时只有40个节点正常工作;也就是说总的输出为40个1和40个0;输出总和为40;而在测试阶段,由于我们的权值已经训练完成,此时就不在按照0.5的比例忽略隐层输出,假设此时每个隐层的输出还是1,那么此时总的输出为80个1,明显比dropout训练时输出大一倍(由于dropout比例为0.5);所以为了得到和训练时一样的
49、输出结果,就缩减隐层输出为a(1-v);即此时输出80个0.5,总和也为40.这样就使得测试阶段和训练阶段的输出“一致”了。一般p取0.5,能使泛华能力最好。3)NiN(网络中的网络)这个模型与之前引入一些新概念的模型略有不同。第一个概念是使用多层感知卷积,其中使用1X1滤波器执行卷积,这有助于在模型中增加更多的非线性。这有助于增加网络的深度,然后可以通过丢失来调整网络的深度。这个概念经常用在深度学习模型的瓶颈层面。第二个概念是使用全局平均池(GAP)作为完全连接层的替代方案。这有助于显着减少网络参数的数量。GAP显着改变网络结构。通过在大特征映射上应用GAP,我们可以生成最终的低维特征向量而
50、不减少特征映射的维度。4)VGG5)GoogLeNet6)ResNet(剩余网络)ILSVRC2015的获胜者是剩余网络架构,ResNet。Resnet是由KaimingHe开发的,目的是设计超深网络,这种网络不会遇到前辈们所遇到的渐变梯度问题。ResNet开发了许多不同数量的层;34,50,101,152和甚至1202。流行的ResNet50在网络末端包含49个卷积层和1个完全连接层。7)DenseNet(密度链接网)8)FractalNet其他模型还有很多其他网络架构计算机视觉社区中:XceptionRCNN(递归卷积神经网络)IRCNN(初始卷积递归神经网络)。分割任务:FCN(完全卷积
51、网络)。其他最近提出的CNN模型包括具有随机深度的深度网络,深度监督网络和梯形网络79,80,81CNN的应用1)用于解决图形问题的CNN学习图形数据结构是数据挖掘和机器学习任务中各种不同应用的常见问题。DL技术已经成为机器学习和数据挖掘团队之间的桥梁。2016年提出了一种用于任意图形处理的高效CNN。2)图像处理和计算机视觉最新研究上面讨论的大多数模型都应用于不同的应用领域,包括图像分类,检测,分割,定位,字幕,视频分类等等。有关图像处理和计算机视觉相关任务的深度学习方法有很好的调查。使用CNN方法的单幅图像超分辨率。使用块匹配CNN进行图像去噪。使用A-Lamp的照片美学评估。DCNN用于
52、使用马尔可夫随机场(MRF)进行分割的高光谱成像。使用CNN进行图像注册。用于快速艺术风格转移的分层深度CNN。使用DCNN进行背景分割。使用DCNN方法的手写字符识别。使用深度学习方法的光学图像分类。使用蜂窝同时循环网络和卷积神经网络进行目标识别。3)语音处理CNN方法也用于语音处理:使用多模式深度CNN的语音增强和使用卷积门控循环网络(CGRN)的音频标记。4)用于医学成像的CNN一项关于DL用于分类,检测和分割任务的医学成像的良好调查。本次调查后发表了一些论文。MDNet是为图像诊断和相应的文字描述而开发的。使用短轴MRI进行心脏分割104。使用CNN对视盘和视网膜血管进行分割。使用具有
53、完全卷积神经网络(FCNN)学习功能的随机森林进行脑肿瘤分割106。最近,U-Net300的改进版本使用了回归残余卷积神经网络(RRCNN),名为R2U-Net301。四高效培训技术上一节缺少的是高级培训技术或组件,需要认真考虑高效培训DL方法。,应用,接下来讨论高效培训DL方法,应用不同的高级技术来更好的训练深度学习模型。这些技术包括输入预处理,更好的初始化方法,批量归一化,替代卷积方法,高级激活函数,替代池化技术,网络正规则化等等A准备数据集在将数据馈送到网络之前,目前已经应用了不同的方法。准备数据集的不同操作如下:样本重新缩放,平均减法,随机裁剪,相应于水平或垂直轴的翻转数据,颜色抖动,
54、PCA/ZCA白化等等。网络初始化深度网络的初始化对整体识别精度有很大影响。以前,大多数网络已经用随机权重初始化。对于具有高维数据训练的复杂任务,DNN变得困难,因为由于反向传播过程,权重不应该是对称的。因此,有效的初始化技术对于培训这种类型的DNN非常重要。但是,在过去的几年中,有许多有效的技术已经提出。1998年,LeCun和Y.Bengio在2010年提出了一种简单而有效的方法。在这种方法中,权重通过该层的输入神经元数量的平方根的倒数来缩放,其可以表示为其中N2是仕层的输入神经元的数量。针对线性假设,基于对称激活函数提出了Xavier的深度网络初始化方法。这种方法被称为“Xavier”初
55、始化方法。最近在2016年,DmytroM.等人提出层顺序单元不变性(LSUV),这是一种数据驱动的初始化方法,并且在几个基准数据集(包括ImageNet)上提供了良好的识别准确性。其中一种流行的初始化方法由KimingHe在2015年提出。第l层权重的分布为均值为零,方差为2的正态分布,BatchNormalization(批量标准化)BN的提出还是为了克服深度神经网络难以训练的弊病,BN的原理是为了防止“梯度消0.9300.4失”,梯度消失的一个例子就是0.4,在BN中,是通过将activation规范为均值和方差一致的手段使得原本会减小的activation的scale变大。另一种卷积方
56、式已提出替代性和计算效率高的卷积技术,可将乘法成本降低2.5倍激活函数过去几十年来,传统的Sigmoid和Tanh激活函数已被用于实施神经网络方法。2010年提出的称为整流线性单元(ReLU)的流行激活函数解决了用于训练深度学习方法的消失梯度问题。ReLU激活在AlexNet中首次使用,这是Hinton在2012年提出的一项突破性CNN技术。由于激活函数在深入体系结构的权重学习中起着至关重要的作用。许多研究人员把重点放在这里,因为这方面有很多工作要做。同时,已经提出了几种改进的ReLU版本,与ReLU激活功能相比,它提供了更好的准确性。ReLU激活函数的有效改进版本称为KaimingHe等人提
57、出的参数ReLU(PReLU)。图26显示了LeakyReLU和ELU激活功能的图示。这项技术可以自动学习参数,并以可忽略的额外计算成本提高精度。最近提出的指数线性单位激活函数,可以使DCNN结构更快更准确的版本。此外,调整激活函数的负向部分会产生最近提出的具有多指数线性单元(MELU)的泄漏ReLU。S形整流线性激活单元在2015年提出。现代激活功能调查于2015年进行。池层目前,两种不同的技术已经被用于在池层实现深度网络:平均池和最大池。LeNet首次使用平均池层的概念,AlexNet在2012年使用了最大池层7。最大池化和平均池化操作的概念图如图所示。多尺度金字塔池汇于2015年提出11
58、8。正则化方法上面说的DropOut就是一种正则化方法,除此之外还有别的方法,但是此方法现在比较流行。DL的其他优化方法有不同的优化方法,如SGD,Adagrad,AdaDelta,RMSprop和Adam等等五.循环神经网络RNN)RNN介绍传统的神经网络,输入与输出都是互相独立的。比如说在用卷积神经网络做图像识别的时候,一个图片中的猫和狗是被分割开的,是互相独立的。然而在有些场景下,后续的输出和之前的内容是相关的。比如“我是中国人,我的母语是_”,空格中要填写的需要依赖于前文中的“中国人”。其实就像英语考试中的完形填空一样,要知道这个空中填什么,必须要看上下文。因此,RDD中引入了“记忆”
59、的概念。“输出”依赖于“输入”和上一个时间点的”记忆“。记忆使得前文中的东西仍然对后文产生了影响。RNN网络结构在普通的全连接网络或者CNN中,每层神经元的信号只能向上一层传播,样本的处理在各个时刻独立。而在RNN中,神经元的输出可以在下一个时间戳直接作用到自身,即第i层神经元在在m时刻的输入,除了(i-1)层神经元在该时刻的输出外,还包括自身在(m-1)时刻的输出,表示成图如下:OutputLayerHlddenLayerInputLayer从上图可以看到隐含层节点之间增加了互连。将RNN在时间上展开,得到下图所示结构:OvVWJJUO-Unfold9O-上图的右边部分。从左到右是时间发展的
60、过程,第一个是t-i的时刻,中间是t时刻,第三个是t+1时刻。St是t时刻的记忆,x是指输入,O是指输出,W是指从上一个时刻t-1到这个时刻t的权重,U是指输入到隐层的权重。很直观的看到,在t时刻,St被两个箭头所指向,分别是来自于t-1时刻的st-1*W的影响,和t时刻的输入Xt*U的影响。也就是说,和传统的神经网络相比,RNN多了一份对过去的记忆。公式如下:RNN结构细节:1可以把隐状态St视作“记忆体”,它捕捉了之前时间点上的信息。2.输出Ot由当前时间及之前所有的“记忆”共同得到。虽然指向St的只有上一个时刻的记忆StT,但是StT是由St-2的记忆得到的,逐层往前推,其实St是受到了
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CSPSTC 52-2020预制集成外保温墙板应用技术规程
- T/CSMT-YB 003-2022膜式燃气表应用评价规范
- T/CSBME 052-2022虚拟现实产品视觉健康影响评价方法
- T/CNFIA 176-2023柔雅馥合香型白酒
- T/CNCA 028-2022井下巷道失速防护设施碰撞性能试验技术规范
- T/CNCA 022-2022煤矿用可伸缩带式输送机无基础安装装置
- T/CMMA 3-2016镁质胶凝材料制品建筑模壳
- T/CIES 015-2017基于窄带物联网(NB-IoT)的道路照明智能控制系统技术规范
- T/CGCC 57-2021散装即食食品经营操作规范
- T/CERDS 5-2023企业ESG管理体系
- 2025届高三高考押题预测卷 数学(新高考Ⅱ卷02) 含解析
- 智能家居安装与调试协议
- 担保贷款免责协议书
- 租金折抵欠款协议书
- 2025年人机交互领域考试题及答案
- 2025年全科卫生资格考试试题及答案
- 2025年中考英语冲刺模拟试卷-山西省适用-教师版
- 山西晟诚环美固体废物处置有限公司 粉煤灰、煤矸石综合利用整沟治理项目报告书
- 石油销售企业“双低”站治理实践与探索
- 2025-2030中国风洞行业市场发展趋势与前景展望战略研究报告
- 仁爱版八年级下册英语期末复习计划
评论
0/150
提交评论