深度学习介绍ppt课件.ppt

上传人:小飞机 文档编号:1294345 上传时间:2022-11-05 格式:PPT 页数:64 大小:8.45MB
返回 下载 相关 举报
深度学习介绍ppt课件.ppt_第1页
第1页 / 共64页
深度学习介绍ppt课件.ppt_第2页
第2页 / 共64页
深度学习介绍ppt课件.ppt_第3页
第3页 / 共64页
深度学习介绍ppt课件.ppt_第4页
第4页 / 共64页
深度学习介绍ppt课件.ppt_第5页
第5页 / 共64页
点击查看更多>>
资源描述

《深度学习介绍ppt课件.ppt》由会员分享,可在线阅读,更多相关《深度学习介绍ppt课件.ppt(64页珍藏版)》请在三一办公上搜索。

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

2、gence)。深度学习是学习样本数据的内在规律和表示层次,这些学习过程中获得的信息对诸如文字、图像和声音等数据的解释有很大的帮助。它的最终目标是让机器能够像人一样具有分析学习能力,能够识别文字、图像和声音等数据。,4,1.2 与机器学习关系,如上图,人工智能是最早出现的,也是最大、最外侧的同心圆;其次是机器学习,稍晚一点;最内侧,是深度学习,当今人工智能大爆炸的核心驱动。,5,1.3 基本概念,深度学习(Deep Learning, DL):通过组合低层特征形成更加抽象的高层特征或类别,从而从大量的输入数据中学习有效特征表示,并把这些特征用于分类、回归和信息检索的一种技术。人工神经网络:是一种

3、模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。深度神经网络:包含多个隐含层的神经网络。模型:可以理解成算法和数据的合集。模型训练:利用模型的算法,使用深度神经网络进行权值的训练,最终得出一个最优解。模型预测:使用训练完成的模型进行预测,得出分类识别结果。,6,目录,深度学习概述深度学习常见场景深度学习常用算法介绍深度学习常用框架介绍TensorFlow入门深度学习未来和展望,7,2 深度学习场景,当前深度学习使用的场景主要在无人驾驶,人脸识别,拍照购,智能客服,文字识别,语音识别,目标

4、检测,图片分类等方面。,深度学习,无人驾驶,人脸识别,拍照购,智能客服,文字识别,目标检测,图像分类,语音识别,8,2.1 深度学习场景 - 无人驾驶,无人驾驶:深度学习利用其深层的神经网络,通过一定的算法能训练出一个识别率非常高的分类器,从而能够使环境感知部分高精度的完成,为驾驶决策模块提供正确的环境信息,保证无人驾驶正常的完成。,9,2.2 深度学习场景 - 人脸识别,人脸识别:人脸信息的识别,是对人脸的信息加以提取然后进行识别的办法,一个最重要的目标就是分辨不同人的信息,辨别身份。面部识别的主要方式有:几何结构、子空间局部特征以及深度学习。,安防领域,开户审核,考勤门禁,.,10,2.3

5、 深度学习场景 - 文字识别,文字识别:基于深度学习的文字识别系统的实现方法,属于图像处理技术领域,将包含文字的图片进行预处理、切分、识别,重组成一段文本,从而实现图片到文本的转换。涉及到图像预处理、图片切分、图片识别和文字重组。,审核,车牌识别,文档识别,.,11,2.4 深度学习场景 - 图像识别,图片识别:图像识别与人脸及文字识别类似,主要流程包括图像预处理,图像分割,图像特征提取和图像分类。,图像审核,拍照购,工业医疗检测,目标识别,.,12,2.5 深度学习场景 - 语音识别,语音识别:一个完整的语音识别系统可大致分为3部分:语音特征提取、声学模型与模式匹配和语言模型与语言处理。其中

6、声学模型是识别系统的底层模型,并且是语音识别系统中最关键的一部分。,语音审核,语音转文字,语音控制,.,13,目录,深度学习概述深度学习常见场景深度学习常用算法介绍深度学习常用框架介绍TensorFlow入门深度学习未来和展望,14,3.1 人工神经网络(ANN),人工神经网络(Artificial Neural Networks)是一种模仿生物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点(神经元)之间相互连接的权重,从而达到处理信息的目的。,15,3.1 人工神经网络(ANN),神经网络,16,3.1 人工神经网络(ANN),人工神

7、经网络的重要概念: 1 权值矩阵:相当于神经网络的记忆!在训练的过程中,动态调整和适应。 2 激励函数:,17,3.1 人工神经网络(ANN),人工神经网络的重要概念: 激励函数很重要,无论是对建立神经网络的模型,还是理解神经网络。首先要了解,它有以下几个影响: 1 如何能更好的求解目标函数的极值!高等数学中求解函数极值的知识!可微,单调! 2 如何提升训练效率,让梯度的优化方法更稳定; 3 权值的初始值,不影响训练结果!,18,3.1 卷积神经网络(CNN),卷积神经网络(Convolutional Neural Networks / CNNs / ConvNets)与普通神经网络非常相似,

8、它们都由具有可学习的权重和偏置常量(biases)的神经元组成。每个神经元都接收一些输入,并做一些点积计算,输出是每个分类的分数,普通神经网络里的一些计算技巧到这里依旧适用。与普通神经网络不同之处:卷积神经网络默认输入是图像,可以让我们把特定的性质编码入网络结构,使是我们的前馈函数更加有效率,并减少了大量参数。,19,3.1 卷积神经网络(CNN),卷积操作:对图像(不同的数据窗口数据)和滤波矩阵(一组固定的权重:因为每个神经元的权重固定,所以又可以看做一个恒定的滤波器filter)做内积(逐个元素相乘再求和)的操作就是所谓的卷积操作,也是卷积神经网络的名字来源。,20,3.1 卷积神经网络(

9、CNN),21,3.1 卷积神经网络(CNN),22,3.1 卷积神经网络(CNN),卷积层(Convolutional layer),卷积神经网路中每层卷积层由若干卷积单元组成,每个卷积单元的参数都是通过反向传播算法优化得到的。卷积运算的目的是提取输入的不同特征,第一层卷积层可能只能提取一些低级的特征如边缘、线条和角等层级,更多层的网络能从低级特征中迭代提取更复杂的特征。线性整流层(Rectified Linear Units layer, ReLU layer),这一层神经的激励函数(Activation function)使用线性整流(Rectified Linear Units, Re

10、LU)f(x)=max(0,x)。池化层(Pooling layer),通常在卷积层之后会得到维度很大的特征,将特征切成几个区域,取其最大值或平均值,得到新的、维度较小的特征。全连接层( Fully-Connected layer), 把所有局部特征结合变成全局特征,用来计算最后每一类的得分。,23,3.1 卷积神经网络(CNN),24,3.1 卷积神经网络(CNN),在图像处理中,往往把图像表示为像素的向量,比如一个10001000的图像,可以表示为一个1000000的向量。在上一节中提到的神经网络中,如果隐含层数目与输入层一样,即也是1000000时,那么输入层到隐含层的参数数据为1000

11、0001000000=1012,这样就太多了,基本没法训练。所以图像处理要想练成神经网络大法,必先减少参数加快速度。就跟辟邪剑谱似的,普通人练得很挫,一旦自宫后内力变强剑法变快,就变的很牛了。,25,3.1 卷积神经网络(CNN),卷积神经网络有两种神器可以降低参数数目,第一种神器叫做局部感知。在下方右图中,假如每个神经元只和1010个像素值相连,那么权值数据为1000000100个参数,减少为原来的万分之一。而那1010个像素值对应的1010个参数,其实就相当于卷积操作。,26,3.1 卷积神经网络(CNN),这样的话参数仍然过多,那么就启动第二级神器,即权值共享。在上面的局部连接中,每个神

12、经元都对应100个参数,一共1000000个神经元,如果这1000000个神经元的100个参数都是相等的,那么参数数目就变为100了。怎么理解权值共享呢?我们可以这100个参数(也就是卷积操作)看成是提取特征的方式,该方式与位置无关。这其中隐含的原理则是:图像的一部分的统计特性与其他部分是一样的。这也意味着我们在这一部分学习的特征也能用在另一部分上,所以对于这个图像上的所有位置,我们都能使用同样的学习特征。,27,3.1 卷积神经网络(CNN),上面所述只有100个参数时,表明只有1个100*100的卷积核,显然,特征提取是不充分的,我们可以添加多个卷积核,比如32个卷积核,可以学习32种特征

13、。在有多个卷积核时,如下图所示:,28,3.1 卷积神经网络(CNN),池化,也称作下采样,可以实现降维。常用有最大值池化和均值池化。,29,3.1 卷积神经网络(CNN),全连接层:连接所有的特征,将输出值送给分类器(如softmax分类器),最终得出识别结果。,30,3.2 常见网络模型,LeNet,31,3.2 常见网络模型,AlexNet,32,3.2 常见网络模型,VGG16,33,3.2 常见网络模型,GoogleNet (InceptionV4),34,3.2 常见网络模型,比较,35,3.3 其他深度学习算法,自动编码器(AutoEncoder)稀疏编码(Sparse Codi

14、ng)限制玻尔兹曼机(RBM),36,目录,深度学习概述深度学习常见场景深度学习常用算法介绍深度学习常用框架介绍TensorFlow入门深度学习未来和展望,37,4.1 开源框架概述,深度学习研究的热潮持续高涨,各种开源深度学习框架也层出不穷,其中包括TensorFlow、Caffe、Keras、CNTK、Torch7、MXNet、Leaf、Theano、DeepLearning4、Lasagne、Neon等等。下图是各个开源框架在GitHub上的数据统计(2017年初)。,38,4.1 开源框架概述,Google、Microsoft、Facebook等巨头都参与了这场深度学习框架大战,此外,

15、还有毕业于伯克利大学的贾扬清主导开发的Caffe,蒙特利尔大学LisaLab团队开发的Theano,以及其他个人或商业组织贡献的框架。下表是主流深度学习框架在各个维度的评分。,39,4.2 TensorFlow,TensorFlow最初是由研究人员和Google Brain团队针对机器学习和深度神经网络进行研究所开发的,目前开源之后可以在几乎各种领域适用。TensorFlow灵活的架构可以部署在一个或多个CPU、GPU的台式以及服务器中,或者使用单一的API应用在移动设备中。,40,4.3 Caffe,Caffe由加州大学伯克利的PHD贾扬清开发,全称Convolutional Archite

16、cture for Fast Feature Embedding,是一个清晰而高效的开源深度学习框架,目前由伯克利视觉学中心(Berkeley Vision and Learning Center,BVLC)进行维护。(贾扬清曾就职于MSRA、NEC、Google Brain,他也是TensorFlow的作者之一,目前任职于Facebook FAIR实验室。)Caffe2脸书 (Facebook) 出品,为生产环境设计,提供在各种平台(包括移动设备)的运行。,41,4.4 Torch,Torch是一个有大量机器学习算法支持的科学计算框架,其诞生已经有十年之久,但是真正起势得益于Facebook

17、开源了大量Torch的深度学习模块和扩展。Torch另外一个特殊之处是采用了编程语言Lua(该语言曾被用来开发视频游戏)。PyTorch是基于Torch的衍生,支持Python语言,实现了机器学习框架 Torch 在 Python 语言环境的执行。,42,4.5 Theano,2008年诞生于蒙特利尔理工学院,Theano派生出了大量深度学习Python软件包,最著名的包括Blocks和Keras。Theano的核心是一个数学表达式的编译器,它知道如何获取你的结构。并使之成为一个使用numpy、高效本地库的高效代码,如BLAS和本地代码(C+)在CPU或GPU上尽可能快地运行。它是为深度学习中

18、处理大型神经网络算法所需的计算而专门设计的,是这类库的首创之一(发展始于2007年),被认为是深度学习研究和开发的行业标准。,43,4.6 Deeplearning4j,Deeplearning4j是“for Java”的深度学习框架,也是首个商用级别的深度学习开源库。Deeplearning4j由创业公司Skymind于2014年6月发布,使用 Deeplearning4j的不乏埃森哲、雪弗兰、博斯咨询和IBM等明星企业。DeepLearning4j是一个面向生产环境和商业应用的高成熟度深度学习开源库,可与Hadoop和Spark集成,即插即用,方便开发者在APP中快速集成深度学习功能。,4

19、4,4.7 MXNet,出自CXXNet、Minerva、Purine 等项目的开发者之手,主要用C+ 编写。MXNet 强调提高内存使用的效率,甚至能在智能手机上运行诸如图像识别等任务。,45,4.8 CNTK,CNTK(ComputationalNetworkToolkit)是微软研究院(MSR)开源的深度学习框架。它最早由startthedeeplearningcraze的演讲人创建,目前已经发展成一个通用的、跨平台的深度学习系统,在语音识别领域的使用尤其广泛。,46,目录,深度学习概述深度学习常见场景深度学习常用算法介绍深度学习常用框架介绍TensorFlow入门深度学习未来和展望,4

20、7,5.1 引言,TensorFlow的API主要分两个层次,核心层和基于核心层的高级API。核心层面向机器学习的研究人员,以及对模型控制精细的相关人员。高级API使用和学习相对容易,简化重复性任务,使不同的用户之间保持一致性。高级API,如tf.contrib.learn可以帮助管理数据集data set,估计量estimators,训练training,推理inference注意,一些高级API的方法名中包含contrib,意味着这些API依然处于开发过程中,这些方法在后续的TensorFlow版本中可能改变或者不再使用本章从核心层开始,后边会提到如何使用tf.contrib.learn实

21、现模型。了解核心层,在使用高级API的时候知道程序是如何工作的。,48,5.2 安装,推荐使用Anaconda环境安装,集成了Python,numpy等。Windows要求Python版本为3.5。在线环境直接使用pip install tensorflow (tensorflow_gpu)离线环境可下载whl包进行安装(https:/pypi.python.org/pypi),然后同样执行pip install xx.whl进行安装,安装过程中若提示缺少依赖包可下载安装后再继续安装。推荐Python开发工具 PyCharm安装成功后验证安装是否成功$pythonimport tensorfl

22、ow as tftf._version_ #查看TF版本tf._path_ #查看TF安装路径,49,5.3 张量Tensor,数据的核心单元,一个tensor是一个包含任意维度的数组,张量的阶Tensor rank是数组的维度,如下:3 # 0阶张量,一个标量scalar with shape1. ,2., 3. # 1阶张量; 一个向量vector with shape 31., 2., 3., 4., 5., 6. # 2阶 张量; 一个矩阵matrix with shape 2, 31., 2., 3., 7., 8., 9. # 3阶 张量tensor with shape 2, 1

23、, 32 是指1., 2., 3. 和 7., 8., 9.1 是指1., 2., 3. 中有1个 1., 2., 3.3 是指 1., 2., 3.中有3个:1., 2., 3.,50,5.4 计算图 Computational Graph,Tensorflow编程包含两个步骤: 1.构造计算图 2.运行计算图计算图是什么?计算图是一系列的计算操作抽象为图中的节点。构造一个简单的计算图:每个节点将0或多个tensor作为输入,输出一个tensor。一种类型的节点是常量节点constant,就如同tensorflow中的常数,它有0个输入,输出一个值。构建两个浮点型tensor:node1和n

24、ode2,51,5.4 计算图 Computational Graph,构造一个简单的计算图:每个节点将0或多个tensor作为输入,输出一个tensor。一种类型的节点是常量节点constant,就如同tensorflow中的常数,它有0个输入,输出一个值。构建两个浮点型tensor:node1和node2node1 = tf.constant(3.0, tf.float32) node2 = tf.constant(4.0) # also tf.float32 implicitly print(node1, node2) 输出结果:Tensor(Const:0, shape=(), dty

25、pe=float32) Tensor(Const_1:0, shape=(), dtype=float32),52,5.4 计算图 Computational Graph,需要说明,打印结果并不是我们期待的3.0 , 4.0,因为这是打印的节点(属于计算操作),当评估运行之后,才是我们期待的值。评估一个节点,必须在一个会话Session中运行计算图,会话封装了Tensorflow运行时的状态和控制接下来创建一个Session会话对象,调用run方法,运行计算图,去评估node1和node2sess=tf.Session() print(sess.run(node1,node2) 输出结果:3.

26、0, 4.0,53,5.4 计算图 Computational Graph,可以使用计算操作将多个节点组合,构建更复杂的计算,例如将两个常量节点相加,产生一个新的计算图: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.0,54,5.4 计算图 Computational Graph,计算图可以使用占位符placeholder

27、参数化的从外部输入数据,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.,55,5.4 计算图 Comp

28、utational Graph,在机器学习中,需要模型可以任意输入,为了模型具有可训练能力,需要修正计算图,使对于同样的输入得到新的输出。变量Variable允许我们为计算图添加训练参数。构造一个变量,需要提供类型和初始值:W=tf.Variable(.3,tf.float32) b=tf.Variable(-.3,tf.float32) x=tf.placeholder(tf.float32) linear_model=W*x+b,56,5.4 计算图 Computational Graph,常量节点在调用tf.constant时就被初始化,而变量在调用tf.Variable时并不初始化,必

29、须显性的执行如下操作: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=float3

30、2) 0. 0.30000001 0.60000002 0.90000004,57,5.4 计算图 Computational Graph,我们创建了一个模型,但是不知道这个模型的效果怎么样,基于训练数据来评估模型,还需要一个placeholder y 来提供期望值,我们需要一个损失函数loss function损失函数测量当前模型与真实数据之间的差距,对于线性模型,我们使用标准损失函数,求模型预测结果与实际数据之间差值的平方和sum the squares of the deltasy=tf.placeholder(tf.float32) squared_deltas=tf.square(l

31、inear_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.66,58,5.4 计算图 Computational Graph,我们可以通过手动的方式将参数W和b置为W=-1,b=1,使模型最优,即损失函数最小。初始化后的变量可以通过tf.assign来更改,tf.assign后需要tf.run生效fixW=tf.assign(W,-1.) fix

32、b=tf.assign(b,1.) sess.run(fixW,fixb) print(fix loss:,sess.run(loss,x:1,2,3,4,y:0,-1,-2,-3) 输出结果:fix loss: 0.0 我们猜想最优的W和b值,但是在机器学习中,就是自动的寻找这些最优的模型参数。,59,5.5 API tf. train,Tensorflow提供了优化器Optimizer慢慢改变每个变量来最小化损失函数。最简单的Optimizer是梯度下降gradient descent,它根据损失函数相对于该变量的导数大小来修改参数值,一般来讲,手动计算导数是乏味且易出错的,Tensorf

33、low可以使用方法tf.gradients自动的为给定模型计算导数。优化器通常做这个工作。,60,5.5 API tf. train,optimizer=tf.train.GradientDescentOptimizer(0.01) train=optimizer.minimize(loss) print(train:n,trian) sess.run(init)#重置变量到初始化值 for i in range(1000): sess.run(train,x:1,2,3,4,y:0,-1,-2,-3) print(sess.run(W,b) 输出结果:train: name: Gradien

34、tDescent op: NoOp array(-0.9999969, dtype=float32), array( 0.99999082, dtype=float32),61,5.6 作业 - 图像分类,基本:使用TensorFlow对商品图像进行训练,模型可自己选择,或自定义使用TensorBoard查看训练过程输出商品分类模型进阶:使用测试样本集验证模型准确率部署模型,提供预测服务,62,目录,深度学习概述深度学习常见场景深度学习常用算法介绍深度学习常用框架介绍TensorFlow入门深度学习未来和展望,63,6.1 未来与展望,无监督半监督学习所占比重会越来越大。用于学习的硬件设备会越来越强大,效率越来越高。有向移动端转移的趋势。可视化开发,开发框架会越来越普遍,入门更加简单。小数据样本的训练所占比重会增大。,64,谢谢,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号