首页 深度学习介绍ppt

深度学习介绍ppt

举报
开通vip

深度学习介绍ppt深度学习介绍2018年5月*目录 深度学习概述 深度学习常见场景 深度学习常用算法介绍 深度学习常用框架介绍 TensorFlow入门 深度学习未来和展望*1.1深度学习概述* 深度学习(DeepLearning,DL)由Hinton等人于2006年提出,是机器学习(MachineLearning,ML)的一个新领域。 深度学习起源于人工神经网络,它的定义:通过组合低层特征形成更加抽象的高层特征或类别,从而从大量的输入数据中学习有效特征表示,并把这些特征用于分类、回归和信息检索的一种技术。 深度学习被引入机器学习使...

深度学习介绍ppt
深度学习介绍2018年5月*目录 深度学习概述 深度学习常见场景 深度学习常用算法介绍 深度学习常用框架介绍 TensorFlow入门 深度学习未来和展望*1.1深度学习概述* 深度学习(DeepLearning,DL)由Hinton等人于2006年提出,是机器学习(MachineLearning,ML)的一个新领域。 深度学习起源于人工神经网络,它的定义:通过组合低层特征形成更加抽象的高层特征或类别,从而从大量的输入数据中学习有效特征表示,并把这些特征用于分类、回归和信息检索的一种技术。 深度学习被引入机器学习使其更接近于最初的目标----人工智能(AI,ArtificialIntelligence)。深度学习是学习样本数据的内在规律和表示层次,这些学习过程中获得的信息对诸如文字、图像和声音等数据的解释有很大的帮助。它的最终目标是让机器能够像人一样具有分析学习能力,能够识别文字、图像和声音等数据。1.2与机器学习关系*如上图,人工智能是最早出现的,也是最大、最外侧的同心圆;其次是机器学习,稍晚一点;最内侧,是深度学习,当今人工智能大爆炸的核心驱动。1.3基本概念* 深度学习(DeepLearning,DL):通过组合低层特征形成更加抽象的高层特征或类别,从而从大量的输入数据中学习有效特征表示,并把这些特征用于分类、回归和信息检索的一种技术。 人工神经网络:是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。 深度神经网络:包含多个隐含层的神经网络。 模型:可以理解成算法和数据的合集。 模型训练:利用模型的算法,使用深度神经网络进行权值的训练,最终得出一个最优解。 模型预测:使用训练完成的模型进行预测,得出分类识别结果。目录 深度学习概述 深度学习常见场景 深度学习常用算法介绍 深度学习常用框架介绍 TensorFlow入门 深度学习未来和展望*2深度学习场景*当前深度学习使用的场景主要在无人驾驶,人脸识别,拍照购,智能客服,文字识别,语音识别,目标检测,图片分类等方面。深度学习无人驾驶人脸识别拍照购智能客服文字识别目标检测图像分类语音识别2.1深度学习场景-无人驾驶*无人驾驶:深度学习利用其深层的神经网络,通过一定的算法能训练出一个识别率非常高的分类器,从而能够使环境感知部分高精度的完成,为驾驶决策模块提供正确的环境信息,保证无人驾驶正常的完成。2.2深度学习场景-人脸识别*人脸识别:人脸信息的识别,是对人脸的信息加以提取然后进行识别的办法,一个最重要的目标就是分辨不同人的信息,辨别身份。面部识别的主要方式有:几何结构、子空间局部特征以及深度学习。安防领域开户审核考勤门禁......2.3深度学习场景-文字识别*文字识别:基于深度学习的文字识别系统的实现方法,属于图像处理技术领域,将包含文字的图片进行预处理、切分、识别,重组成一段文本,从而实现图片到文本的转换。涉及到图像预处理、图片切分、图片识别和文字重组。审核车牌识别文档识别......2.4深度学习场景-图像识别*图片识别:图像识别与人脸及文字识别类似,主要流程包括图像预处理,图像分割,图像特征提取和图像分类。图像审核拍照购工业医疗检测目标识别......2.5深度学习场景-语音识别*语音识别:一个完整的语音识别系统可大致分为3部分:语音特征提取、声学模型与模式匹配和语言模型与语言处理。其中声学模型是识别系统的底层模型,并且是语音识别系统中最关键的一部分。语音审核语音转文字语音控制......目录 深度学习概述 深度学习常见场景 深度学习常用算法介绍 深度学习常用框架介绍 TensorFlow入门 深度学习未来和展望*3.1人工神经网络(ANN)* 人工神经网络(ArtificialNeuralNetworks)是一种模仿生物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点(神经元)之间相互连接的权重,从而达到处理信息的目的。3.1人工神经网络(ANN)* 神经网络3.1人工神经网络(ANN)* 人工神经网络的重要概念:1权值矩阵:相当于神经网络的记忆!在训练的过程中,动态调整和适应。2激励函数:3.1人工神经网络(ANN)* 人工神经网络的重要概念:激励函数很重要,无论是对建立神经网络的模型,还是理解神经网络。首先要了解,它有以下几个影响:1如何能更好的求解目标函数的极值!——高等数学中求解函数极值的知识!可微,单调!2如何提升训练效率,让梯度的优化方法更稳定;3权值的初始值,不影响训练结果!3.1卷积神经网络(CNN)* 卷积神经网络(ConvolutionalNeuralNetworks/CNNs/ConvNets)与普通神经网络非常相似,它们都由具有可学习的权重和偏置常量(biases)的神经元组成。每个神经元都接收一些输入,并做一些点积计算,输出是每个分类的分数,普通神经网络里的一些计算技巧到这里依旧适用。 与普通神经网络不同之处:卷积神经网络默认输入是图像,可以让我们把特定的性质编码入网络结构,使是我们的前馈函数更加有效率,并减少了大量参数。3.1卷积神经网络(CNN)* 卷积操作:对图像(不同的数据窗口数据)和滤波矩阵(一组固定的权重:因为每个神经元的权重固定,所以又可以看做一个恒定的滤波器filter)做内积(逐个元素相乘再求和)的操作就是所谓的『卷积』操作,也是卷积神经网络的名字来源。3.1卷积神经网络(CNN)*3.1卷积神经网络(CNN)*3.1卷积神经网络(CNN)* 卷积层(Convolutionallayer),卷积神经网路中每层卷积层由若干卷积单元组成,每个卷积单元的参数都是通过反向传播算法优化得到的。卷积运算的目的是提取输入的不同特征,第一层卷积层可能只能提取一些低级的特征如边缘、线条和角等层级,更多层的网络能从低级特征中迭代提取更复杂的特征。 线性整流层(RectifiedLinearUnitslayer,ReLUlayer),这一层神经的激励函数(Activationfunction)使用线性整流(RectifiedLinearUnits,ReLU)f(x)=max(0,x)。 池化层(Poolinglayer),通常在卷积层之后会得到维度很大的特征,将特征切成几个区域,取其最大值或平均值,得到新的、维度较小的特征。 全连接层(Fully-Connectedlayer),把所有局部特征结合变成全局特征,用来计算最后每一类的得分。3.1卷积神经网络(CNN)*3.1卷积神经网络(CNN)* 在图像处理中,往往把图像表示为像素的向量,比如一个1000×1000的图像,可以表示为一个1000000的向量。在上一节中提到的神经网络中,如果隐含层数目与输入层一样,即也是1000000时,那么输入层到隐含层的参数数据为1000000×1000000=10^12,这样就太多了,基本没法训练。所以图像处理要想练成神经网络大法,必先减少参数加快速度。就跟辟邪剑谱似的,普通人练得很挫,一旦自宫后内力变强剑法变快,就变的很牛了。3.1卷积神经网络(CNN)* 卷积神经网络有两种神器可以降低参数数目,第一种神器叫做局部感知。 在下方右图中,假如每个神经元只和10×10个像素值相连,那么权值数据为1000000×100个参数,减少为原来的万分之一。而那10×10个像素值对应的10×10个参数,其实就相当于卷积操作。3.1卷积神经网络(CNN)* 这样的话参数仍然过多,那么就启动第二级神器,即权值共享。在上面的局部连接中,每个神经元都对应100个参数,一共1000000个神经元,如果这1000000个神经元的100个参数都是相等的,那么参数数目就变为100了。 怎么理解权值共享呢?我们可以这100个参数(也就是卷积操作)看成是提取特征的方式,该方式与位置无关。这其中隐含的原理则是:图像的一部分的统计特性与其他部分是一样的。这也意味着我们在这一部分学习的特征也能用在另一部分上,所以对于这个图像上的所有位置,我们都能使用同样的学习特征。3.1卷积神经网络(CNN)* 上面所述只有100个参数时,表明只有1个100*100的卷积核,显然,特征提取是不充分的,我们可以添加多个卷积核,比如32个卷积核,可以学习32种特征。在有多个卷积核时,如下图所示:3.1卷积神经网络(CNN)* 池化,也称作下采样,可以实现降维。常用有最大值池化和均值池化。3.1卷积神经网络(CNN)* 全连接层:连接所有的特征,将输出值送给分类器(如softmax分类器),最终得出识别结果。3.2常见网络模型* LeNet3.2常见网络模型* AlexNet3.2常见网络模型* VGG16**可编辑3.2常见网络模型* GoogleNet(InceptionV4)3.2常见网络模型* 比较CNN模型比较一LeNet5LeNet5诞生于1994年,是最早的卷积神经网络之一,并且推动了深度学习领域的发展。自从1988年开始,在许多次成功的迭代后,这项由YannLeCun完成的开拓性成果被命名为LeNet5(参见:Gradient-BasedLearningAppliedtoDocumentRecognition)。LeNet5的架构基于这样的观点:(尤其是)图像的特征分布在整张图像上,以及带有可学习参数的卷积是一种用少量参数在多个位置上提取相似特征的有效方式。在那时候,没有GPU帮助训练,甚至CPU的速度也很慢。因此,能够保存参数以及计算过程是一个关键进展。这和将每个像素用作一个大型多层神经网络的单独输入相反。LeNet5阐述了那些像素不应该被使用在第一层,因为图像具有很强的空间相关性,而使用图像中独立的像素作为不同的输入特征则利用不到这些相关性。LeNet5特征能够 总结 初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf 为如下几点:卷积神经网络使用3个层作为一个序列:卷积、池化、非线性→这可能是自从这篇paper起图像深度学习的关键特征!使用卷积提取空间特征使用映射到空间均值下采样(subsample)双曲正切(tanh)或S型(sigmoid)形式的非线性多层神经网络(MLP)作为最后的分类器层与层之间的稀疏连接矩阵避免大的计算成本总体来看,这个网络是最近大量架构的起点,并且也给这个领域的许多带来了灵感。间隔从1998年到2010年神经网络处于孵化阶段。大多数人没有意识到它们不断增长的力量,与此同时其他研究者则进展缓慢。由于手机相机以及便宜的数字相机的出现,越来越多的数据可被利用。并且计算能力也在成长,CPU变得更快,GPU变成了多种用途的计算工具。这些趋势使得神经网络有所进展,虽然速度很慢。数据和计算能力使得神经网络能完成的任务越来越有趣。之后一切变得清晰起来......二DanCiresanNet2010年的时候,DanClaudiuCiresan和JurgenSchmidhuber发布了最早的GPU神经网络的一个实现。这个实现是在一块NVIDIAGTX280图形处理器上运行9层的神经网络,包含前向与反向传播。三AlexNet2012年,AlexKrizhevsky发表了Alexet(参见:ImageNetClassificationwithDeepConvolutionalNeuralNetworks),它是LeNet的一种更深更宽的版本,并以显著优势赢得了困难的ImageNet竞赛。AlexNet将LeNet的思想扩展到了更大的能学习到远远更复杂的对象与对象层次的神经网络上。这项工作的贡献有:使用修正的线性单元(ReLU)作为非线性在训练的时候使用Dropout技术有选择地忽视单个神经元,以避免模型过拟合覆盖进行较大池化,避免平均池化的平均化效果使用GPUNVIDIAGTX580减少训练时间在那时,GPU相比CPU可以提供更多数量的核,训练时间可以提升10倍,这又反过来允许使用更大的数据集和更大的图像。AlexNet的成功掀起了一场小革命。卷积神经网络现在是深度学习的骨干,它已经变成了「现在能解决有用任务的大型神经网络」的代名词。四Overfeat2013年的12月,纽约大学的YannLeCun实验室提出了AlexNet的衍生——Overfeat(参见:OverFeat:IntegratedRecognition,LocalizationandDetectionusingConvolutionalNetworks)。这篇文章也提出了学习边界框(learningboundingbox),并导致之后出现了很多研究这同一主题的论文。我相信学习分割对象比学习人工边界框更好。五VGG来自牛津大学的VGG网络(参见:VeryDeepConvolutionalNetworksforLarge-ScaleImageRecognition)是第一个在各个卷积层使用更小的3×3过滤器(filter),并把它们组合作为一个卷积序列进行处理的网络。这看来和LeNet的原理相反,其中是大的卷积被用来获取一张图像中相似特征。和AlexNet的9×9或11×11过滤器不同,过滤器开始变得更小,离LeNet竭力所要避免的臭名昭著的1×1卷积异常接近——至少在该网络的第一层是这样。但是VGG巨大的进展是通过依次采用多个3×3卷积,能够模仿出更大的感受野(receptivefield)的效果,例如5×5与7×7。这些思想也被用在了最近更多的网络架构中,如Inception与ResNet。VGG网络使用多个3×3卷积层去表征复杂特征。注意VGG-E的第3、4、5块(block):256×256和512×512个3×3过滤器被依次使用多次以提取更多复杂特征以及这些特征的组合。其效果就等于是一个带有3个卷积层的大型的512×512大分类器。这显然意味着有大量的参数与学习能力。但是这些网络训练很困难,必须划分到较小的网络,并逐层累加。这是因为缺少强大的方式对模型进行正则化,或者或多或少约束大量由于大量参数增长的搜索空间。VGG在许多层中都使用大特征尺寸,因为推断(inference)在运行时是相当耗费时间的。正如Inception的瓶颈(bottleneck)那样,减少特征的数量将节省一些计算成本。网络中的网络(Network-in-network)网络中的网络(NiN,参见论文:NetworkInNetwork)的思路简单又伟大:使用1×1卷积为卷积层的特征提供更组合性的能力。NiN架构在各个卷积之后使用空间MLP层,以便更好地在其他层之前组合特征。同样,你可以认为1×1卷积与LeNet最初的原理相悖,但事实上它们可以以一种更好的方式组合卷积特征,而这是不可能通过简单堆叠更多的卷积特征做到的。这和使用原始像素作为下一层输入是有区别的。其中1×1卷积常常被用于在卷积之后的特征映射上对特征进行空间组合,所以它们实际上可以使用非常少的参数,并在这些特征的所有像素上共享!MLP的能力能通过将卷积特征组合进更复杂的组(group)来极大地增加单个卷积特征的有效性。这个想法之后被用到一些最近的架构中,例如ResNet、Inception及其衍生技术。NiN也使用了平均池化层作为最后分类器的一部分,这是另一种将会变得常见的实践。这是通过在分类之前对网络对多个输入图像的响应进行平均完成的。六GoogLeNet与Inception来自谷歌的ChristianSzegedy开始追求减少深度神经网络的计算开销,并设计出GoogLeNet——第一个Inception架构(参见:GoingDeeperwithConvolutions)。那是在2014年秋季,深度学习模型正在变得在图像与视频帧的分类中非常有用。大多数怀疑者已经不再怀疑深度学习与神经网络这一次是真的回来了,而且将一直发展下去。鉴于这些技术的用处,谷歌这样的互联网巨头非常有兴趣在他们的服务器上高效且大规模庞大地部署这些架构。Christian考虑了很多关于在深度神经网络达到较高水平的性能(例如在ImageNet上)的同时减少其计算开销的方式。或者在能够保证同样的计算开销的前提下对性能有所改进。他和他的团队提出了Inception模块:初看之下这不过基本上是1×1、3×3、5×5卷积过滤器的并行组合。但是Inception的伟大思路是用1×1的卷积块(NiN)在昂贵的并行模块之前减少特征的数量。这一般被称为「瓶颈(bottleneck)」。这部分内容将在下面的「瓶颈层(bottlenecklayer)」部分来解释。GoogLeNet使用没有inception模块的主干作为初始层,之后是与NiN相似的一个平均池化层加softmax分类器。这个分类器比AlexNet与VGG的分类器的运算数量少得多。这也促成一项非常有效的网络设计,参见论文:AnAnalysisofDeepNeuralNetworkModelsforPracticalApplications。瓶颈层(Bottlenecklayer)受到NiN的启发,Inception的瓶颈层减少了每一层的特征的数量,并由此减少了运算的数量;所以可以保持较低的推理时间。在将数据通入昂贵的卷积模块之前,特征的数量会减少4倍。在计算成本上这是很大的节约,也是该架构的成功之处。让我们具体验证一下。现在你有256个特征输入,256个特征输出,假定Inception层只能执行3×3的卷积,也就是总共要完成256×256×3×3的卷积(将近589,000次乘积累加(MAC)运算)。这可能超出了我们的计算预算,比如说,在谷歌服务器上要以0.5毫秒运行该层。作为替代,我们决定减少需要进行卷积运算的特征的数量,也就是64(即256/4)个。在这种情况下,我们首先进行256->641×1的卷积,然后在所有Inception的分支上进行64次卷积,接而再使用一个来自64->256的特征的1×1卷积,现在运算如下:256×64×1×1=16,000s64×64×3×3=36,000s64×256×1×1=16,000s相比于之前的60万,现在共有7万的计算量,几乎少了近10倍。而且,尽管我们做了更好的运算,我们在此层也没有损失其通用性(generality)。事实证明瓶颈层在ImageNet这样的数据集上已经表现出了顶尖水平,而且它也被用于接下来介绍的ResNet这样的架构中。它之所以成功是因为输入特征是相关联的,因此可通过将它们与1×1卷积适当结合来减少冗余。然后,在小数量的特征进行卷积之后,它们能在下一层被再次扩展成有意义的结合。InceptionV3(还有V2)Christian和他的团队都是非常高产的研究人员。2015年2月,Batch-normalizedInception被引入作为InceptionV2(参见论文:BatchNormalization:AcceleratingDeepNetworkTrainingbyReducingInternalCovariateShift)。Batch-normalization在一层的输出上计算所有特征映射的均值和 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 差,并且使用这些值规范化它们的响应。这相当于数据「增白(whitening)」,因此使得所有神经图(neuralmaps)在同样范围有响应,而且是零均值。在下一层不需要从输入数据中学习offset时,这有助于训练,还能重点关注如何较好的结合这些特征。2015年12月,该团队发布Inception模块和类似架构的一个新版本(参见论文:RethinkingtheInceptionArchitectureforComputerVision)。该论文更好地解释了原始的GoogLeNet架构,在设计选择上给出了更多的细节。原始思路如下:通过谨慎建筑网络,平衡深度与宽度,从而较大化进入网络的信息流。在每次池化之前,增加特征映射。当深度增加时,网络层的深度或者特征的数量也系统性的增加。使用每一层深度增加在下一层之前增加特征的结合。只使用3×3的卷积,可能的情况下给定的5×5和7×7过滤器能分成多个3×3。看下图因此新的Inception成为了:也可以通过将卷积平整进更多复杂的模块中而分拆过滤器:在进行inception计算的同时,Inception模块也能通过提供池化降低数据的大小。这基本类似于在运行一个卷积的时候并行一个简单的池化层:Inception也使用一个池化层和softmax作为最后的分类器。七ResNet2015年12月又出现了新的变革,这和InceptionV3出现的时间一样。ResNet有着简单的思路:供给两个连续卷积层的输出,并分流(bypassing)输入进入下一层(参见论文:DeepResidualLearningforImageRecognition)。这和之前的一些旧思路类似。但ResNet中,它们分流两个层并被应用于更大的规模。在2层后分流是一个关键直觉,因为分流一个层并未给出更多的改进。通过2层可能认为是一个小型分类器,或者一个Network-In-Network。这是第一次网络层数超过一百,甚至还能训练出1000层的网络。有大量网络层的ResNet开始使用类似于Inception瓶颈层的网络层:这种层通过首先是由带有更小输出(通常是输入的1/4)的1×1卷积较少特征的数量,然后使用一个3×3的层,再使用1×1的层处理更大量的特征。类似于Inception模块,这样做能保证计算量低,同时提供丰富的特征结合。ResNet在输入上使用相对简单的初始层:一个带有两个池的7×7卷基层。可以把这个与更复杂、更少直觉性的InceptionV3、V4做下对比。ResNet也使用一个池化层加上softmax作为最后的分类器。关于ResNet的其他洞见每天都有发生:ResNet可被认为既是平行模块又是连续模块,把输入输出(inout)视为在许多模块中并行,同时每个模块的输出又是连续连接的。ResNet也可被视为并行模块或连续模块的多种组合(参见论文:ResidualNetworksareExponentialEnsemblesofRelativelyShallowNetworks)。已经发现ResNet通常在20-30层的网络块上以并行的方式运行。而不是连续流过整个网络长度。当ResNet像RNN一样把输出反馈给输入时,该网络可被视为更好的生物上可信的皮质模型(参见论文:BridgingtheGapsBetweenResidualLearning,RecurrentNeuralNetworksandVisualCortex)。八InceptionV4这是Christian与其团队的另一个Inception版本,该模块类似于InceptionV3:InceptionV4也结合了Inception模块和ResNet模块:我认为该架构不太简洁,但也满满都是较少透明度的启发法(heuristics)。很难理解里面的选择,对作者们而言也难以解释。考虑到网络的简洁性,可被轻易的理解并修正,那ResNet可能就更好了。九SqueezeNet SqueezeNet(参见论文:SqueezeNet:AlexNet-levelaccuracywith50xfewerparametersand<0.5MBmodelsize)是最近才公布的,该架构是对ResNet与Inception里面概念的重新处理。一个更好的架构设计网络型号要小,而且参数还不需要复杂的压缩算法。十ENet我们的团队 计划 项目进度计划表范例计划下载计划下载计划下载课程教学计划下载 结合近期公开的架构的所有特征,做出一个非常高效、低重的网络,使用较少的参数和计算就能达到顶尖结果。该网络架构被称为ENet,由AdamPaszke设计。我们已经使用它进行过单像素标记和场景解析。详细了解ENet可参见论文ENet:ADeepNeuralNetworkArchitectureforReal-TimeSemanticSegmentation。ENet是一个编码加解码的网络。编码器是一个常规的CNN设计进行分类。解码器是一个增采样(upsampling)网络,将分类反向传播给原始图像进行分割。这只使用了神经网络,没有其他算法进行图像分割。ENet被设计为在开始时尽可能使用最小数量的资源。正是如此它有着如此小的脚本,编码器和解码器网络共占有0.7MB,16fp精度。即使这么小的型号,ENet在分割的准确度上也类似于或者高于其他神经网络解决 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 。3.3其他深度学习算法* 自动编码器(AutoEncoder) 稀疏编码(SparseCoding) 限制玻尔兹曼机(RBM)目录 深度学习概述 深度学习常见场景 深度学习常用算法介绍 深度学习常用框架介绍 TensorFlow入门 深度学习未来和展望*4.1开源框架概述* 深度学习研究的热潮持续高涨,各种开源深度学习框架也层出不穷,其中包括TensorFlow、Caffe、Keras、CNTK、Torch7、MXNet、Leaf、Theano、DeepLearning4、Lasagne、Neon等等。下图是各个开源框架在GitHub上的数据统计(2017年初)。4.1开源框架概述* Google、Microsoft、Facebook等巨头都参与了这场深度学习框架大战,此外,还有毕业于伯克利大学的贾扬清主导开发的Caffe,蒙特利尔大学Lisa Lab团队开发的Theano,以及其他个人或商业组织贡献的框架。下表是主流深度学习框架在各个维度的评分。4.2TensorFlow* TensorFlow最初是由研究人员和GoogleBrain团队针对机器学习和深度神经网络进行研究所开发的,目前开源之后可以在几乎各种领域适用。 TensorFlow灵活的架构可以部署在一个或多个CPU、GPU的台式以及服务器中,或者使用单一的API应用在移动设备中。4.3Caffe* Caffe由加州大学伯克利的PHD贾扬清开发,全称ConvolutionalArchitectureforFastFeatureEmbedding,是一个清晰而高效的开源深度学习框架,目前由伯克利视觉学中心(BerkeleyVisionandLearningCenter,BVLC)进行维护。(贾扬清曾就职于MSRA、NEC、GoogleBrain,他也是TensorFlow的作者之一,目前任职于FacebookFAIR实验室。) Caffe2脸书(Facebook)出品,为生产环境设计,提供在各种平台(包括移动设备)的运行。4.4Torch* Torch是一个有大量机器学习算法支持的科学计算框架,其诞生已经有十年之久,但是真正起势得益于Facebook开源了大量Torch的深度学习模块和扩展。Torch另外一个特殊之处是采用了编程语言Lua(该语言曾被用来开发视频游戏)。 PyTorch是基于Torch的衍生,支持Python语言,实现了机器学习框架Torch在Python语言环境的执行。4.5Theano* 2008年诞生于蒙特利尔理工学院,Theano派生出了大量深度学习Python软件包,最著名的包括Blocks和Keras。Theano的核心是一个数学表达式的编译器,它知道如何获取你的结构。并使之成为一个使用numpy、高效本地库的高效代码,如BLAS和本地代码(C++)在CPU或GPU上尽可能快地运行。它是为深度学习中处理大型神经网络算法所需的计算而专门设计的,是这类库的首创之一(发展始于2007年),被认为是深度学习研究和开发的行业标准。4.6Deeplearning4j* Deeplearning4j是“forJava”的深度学习框架,也是首个商用级别的深度学习开源库。Deeplearning4j由创业公司Skymind于2014年6月发布,使用Deeplearning4j的不乏埃森哲、雪弗兰、博斯咨询和IBM等明星企业。DeepLearning4j是一个面向生产环境和商业应用的高成熟度深度学习开源库,可与Hadoop和Spark集成,即插即用,方便开发者在APP中快速集成深度学习功能。4.7MXNet* 出自CXXNet、Minerva、Purine等项目的开发者之手,主要用C++编写。MXNet强调提高内存使用的效率,甚至能在智能手机上运行诸如图像识别等任务。4.8CNTK* CNTK(Computational Network Toolkit)是微软研究院(MSR)开源的深度学习框架。它最早由start the deep learning craze的演讲人创建,目前已经发展成一个通用的、跨平台的深度学习系统,在语音识别领域的使用尤其广泛。目录 深度学习概述 深度学习常见场景 深度学习常用算法介绍 深度学习常用框架介绍 TensorFlow入门 深度学习未来和展望*5.1引言* TensorFlow的API主要分两个层次,核心层和基于核心层的高级API。核心层面向机器学习的研究人员,以及对模型控制精细的相关人员。高级API使用和学习相对容易,简化重复性任务,使不同的用户之间保持一致性。 高级API,如tf.contrib.learn可以帮助管理数据集dataset,估计量estimators,训练training,推理inference 注意,一些高级API的方法名中包含contrib,意味着这些API依然处于开发过程中,这些方法在后续的TensorFlow版本中可能改变或者不再使用 本章从核心层开始,后边会提到如何使用tf.contrib.learn实现模型。了解核心层,在使用高级API的时候知道程序是如何工作的。5.2安装* 推荐使用Anaconda环境安装,集成了Python,numpy等。 Windows 要求 对教师党员的评价套管和固井爆破片与爆破装置仓库管理基本要求三甲医院都需要复审吗 Python版本为3.5。 在线环境直接使用pipinstalltensorflow(tensorflow_gpu) 离线环境可下载whl包进行安装(https://pypi.python.org/pypi),然后同样执行pipinstallxx.whl进行安装,安装过程中若提示缺少依赖包可下载安装后再继续安装。 推荐Python开发工具PyCharm 安装成功后验证安装是否成功$python>>importtensorflowastf>>tf.__version__#查看TF版本>>tf.__path__#查看TF安装路径5.3张量Tensor* 数据的核心单元,一个tensor是一个包含任意维度的数组,张量的阶Tensor'rank是数组的维度,如下: 3#0阶张量,一个标量scalarwithshape[] [1.,2.,3.]#1阶张量;一个向量vectorwithshape[3] [[1.,2.,3.],[4.,5.,6.]]#2阶张量;一个矩阵matrixwithshape[2,3] [[[1.,2.,3.]],[[7.,8.,9.]]]#3阶张量tensorwithshape[2,1,3] 2是指[[1.,2.,3.]]和[[7.,8.,9.]] 1是指[[1.,2.,3.]]中有1个[1.,2.,3.] 3是指[1.,2.,3.]中有3个:1.,2.,3.5.4计算图ComputationalGraph* Tensorflow编程包含两个步骤:1.构造计算图2.运行计算图 计算图是什么?计算图是一系列的计算操作抽象为图中的节点。 构造一个简单的计算图:每个节点将0或多个tensor作为输入,输出一个tensor。一种类型的节点是常量节点constant,就如同tensorflow中的常数,它有0个输入,输出一个值。构建两个浮点型tensor:node1和node25.4计算图ComputationalGraph* 构造一个简单的计算图:每个节点将0或多个tensor作为输入,输出一个tensor。一种类型的节点是常量节点constant,就如同tensorflow中的常数,它有0个输入,输出一个值。构建两个浮点型tensor:node1和node2node1=tf.constant(3.0,tf.float32)node2=tf.constant(4.0)#alsotf.float32implicitlyprint(node1,node2)输出结果:Tensor("Const:0",shape=(),dtype=float32)Tensor("Const_1:0",shape=(),dtype=float32)5.4计算图ComputationalGraph* 需要说明,打印结果并不是我们期待的3.0,4.0,因为这是打印的节点(属于计算操作),当评估运行之后,才是我们期待的值。 评估一个节点,必须在一个会话Session中运行计算图,会话封装了Tensorflow运行时的状态和控制 接下来创建一个Session会话对象,调用run方法,运行计算图,去评估node1和node2 sess=tf.Session() print(sess.run([node1,node2])) 输出结果: [3.0,4.0]5.4计算图ComputationalGraph* 可以使用计算操作将多个节点组合,构建更复杂的计算,例如将两个常量节点相加,产生一个新的计算图: node3=tf.add(node1,node2) print("node3:",node3) print("sess.run(node3):",sess.run(node3)) 输出结果: node3:Tensor("Add:0",shape=(),dtype=float32) sess.run(node3):7.05.4计算图ComputationalGraph* 计算图可以使用占位符placeholder参数化的从外部输入数据,placeholder的作用是在稍后提供一个值 #构造计算图 a=tf.placeholder(tf.float32) b=tf.placeholder(tf.float32) adder_node=a+b #运行计算图 print("adder_node:",adder_node) print(sess.run(adder_node,{a:3,b:4.5})) print(sess.run(adder_node,{a:[1,3],b:[2,4]})) 输出结果: adder_node:Tensor("add:0",dtype=float32) 7.5 [3.7.]5.4计算图ComputationalGraph* 在机器学习中,需要模型可以任意输入,为了模型具有可训练能力,需要修正计算图,使对于同样的输入得到新的输出。变量Variable允许我们为计算图添加训练参数。 构造一个变量,需要提供类型和初始值: W=tf.Variable([.3],tf.float32) b=tf.Variable([-.3],tf.float32) x=tf.placeholder(tf.float32) linear_model=W*x+b5.4计算图ComputationalGraph* 常量节点在调用tf.constant时就被初始化,而变量在调用tf.Variable时并不初始化,必须显性的执行如下操作: init=tf.global_variables_initializer() sess.run(init) 意识到init对象是Tensorflow子图初始化所有全局变量的句柄是重要的,在调用sess.run(init)方法之前,所有变量都是未初始化的。 因为x是一个占位符,我们可以指定几个值来评估linear_model模型(训练) print("linear_model:",linear_model) print(sess.run(linear_model,{x:[1,2,3,4]})) 得到输出: linear_model:Tensor("add_1:0",dtype=float32) [0.0.300000010.600000020.90000004]5.4计算图ComputationalGraph* 我们创建了一个模型,但是不知道这个模型的效果怎么样,基于训练数据来评估模型,还需要一个placeholdery来提供期望值,我们需要一个损失函数lossfunction 损失函数测量当前模型与真实数据之间的差距,对于线性模型,我们使用标准损失函数,求模型预测结果与实际数据之间差值的平方和sumthesquaresofthedeltas y=tf.placeholder(tf.float32) squared_deltas=tf.square(linear_model-y) loss=tf.reduce_sum(squared_deltas) print("loss:",loss) print(sess.run(loss,{x:[1,2,3,4],y:[0,-1,-2,-3]})) 输出结果: loss:Tensor("Sum:0",dtype=float32) 23.665.4计算图ComputationalGraph* 我们可以通过手动的方式将参数W和b置为W=-1,b=1,使模型最优,即损失函数最小。初始化后的变量可以通过tf.assign来更改,tf.assign后需要tf.run生效 fixW=tf.assign(W,[-1.]) fixb=tf.assign(b,[1.]) sess.run([fixW,fixb]) print("fixloss:",sess.run(loss,{x:[1,2,3,4],y:[0,-1,-2,-3]})) 输出结果: fixloss:0.0 我们猜想最优的W和b值,但是在机器学习中,就是自动的寻找这些最优的模型参数。5.5APItf.train* Tensorflow提供了优化器Optimizer慢慢改变每个变量来最小化损失函数。最简单的Optimizer是梯度下降gradientdescent,它根据损失函数相对于该变量的导数大小来修改参数值,一般来讲,手动计算导数是乏味且易出错的,Tensorflow可以使用方法tf.gradients自动的为给定模型计算导数。优化器通常做这个工作。5.5APItf.train* optimizer=tf.train.GradientDescentOptimizer(0.01) train=optimizer.minimize(loss) print("train:\n",trian) sess.run(init)#重置变量到初始化值 foriinrange(1000): sess.run(train,{x:[1,2,3,4],y:[0,-1,-2,-3]}) print(sess.run([W,b])) 输出结果: train: name:"GradientDescent" op:"NoOp" [array([-0.9999969],dtype=float32),array([0.99999082],dtype=float32)]5.6作业-图像分类* 基本: 使用TensorFlow对商品图像进行训练,模型可自己选择,或自定义 使用TensorBoard查看训练过程 输出商品分类模型 进阶: 使用测试样本集验证模型准确率 部署模型,提供预测服务目录 深度学习概述 深度学习常见场景 深度学习常用算法介绍 深度学习常用框架介绍 TensorFlow入门 深度学习未来和展望*6.1未来与展望* 无监督半监督学习所占比重会越来越大。 用于学习的硬件设备会越来越强大,效率越来越高。 有向移动端转移的趋势。 可视化开发,开发框架会越来越普遍,入门更加简单。 小数据样本的训练所占比重会增大。 谢谢***可编辑
本文档为【深度学习介绍ppt】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
机构认证用户
金水文库
鑫淼网络科技有限公司主要经营:PPT设计 、课件制作,软文策划、合同简历设计、计划书策划案、各类模板等。公司秉着用户至上的原则服务好每一位客户
格式:ppt
大小:10MB
软件:PowerPoint
页数:0
分类:小学语文
上传时间:2020-05-07
浏览量:28