您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 冶金工业 > 第十章-神经网络与深度学习
神经网络与深度学习23蒙特卡洛树搜索(MonteCarloTree)深度学习(DeepLearning)强化学习(ReinforcementLearning)人脸识别IPhoneX人脸识别自动驾驶城市计算自然语言处理RobotsStyleObjectDetectionPoetryQ&AFingerprintImageFaceRecognitionGamePlayingSpeechVideoInformationMachineTranslationHealthcareRetrievalHelpyoutoopenthedoorofdeeplearning提纲神经网络发展史M-P神经元模型激活函数感知机和多层前馈网络深度学习(多层感知机)构建网络整体的学习过程反向传播算法手写数字识别11生物神经元12简而言之,神经元相当于一个计算单元,它从输入神经接受一定数目的信息,并做一些计算。然后将结果通过它的轴突传送到其他节点或者大脑中的其他神经元。AxonTerminalBranchesofAxonDendrites树突轴突突触M-P神经元模型y=𝑓𝑤𝑖𝑥𝑖𝑛𝑖=1−𝑏𝑤𝑖𝑥𝑖𝑛𝑖=1−𝑏13AxonTerminalBranchesofAxonDendritesSx1x2w1w2wnxnx3w3[McCullochandPitts,1943]受生物神经元的启发,McCullochandPitts在1943年提出了MP神经元模型激活函数不连续14阶跃函数15感知机1958年,计算科学家Rosenblatt提出了由两层神经元组成的神经网络。他给它起了一个名字--“感知机”(Perceptron)第一代感知机的硬件实现感知机w1w2yx1x2InputlayeroutputlayerReceiveexternalinputsignalM-Pneuron(functionalneuron)16单层感知机是一个线性分类器,如果训练集是线性可分的话,那么它就可以保证收敛。然而这种模型有很多局限性。17局限性在1969年,MarvinMinsky,SeymourPapert证明了单层感知机只能处理线性可分的问题18多层感知机HiddenlayersInputlayerOutputlayer全连接每个神经元连接到前一层的每个神经元,并且每个连接都有自己的权重。前馈信息只向一个方向移动,从输入节点,通过隐藏节点(如果有的话),到输出节点。网络中没有循环。19反向传播算法(BackPropagation)第一次打破非线性诅咒的是深度学习之父杰弗里·辛顿(GeoffreyHinton),其在1986年发明了适用于多层感知器(MLP)的BP算法(反向传播算法),并采用Sigmoid激活函数进行非线性映射,有效解决了非线性分类和学习的问题。该方法引起了神经网络的第二次热潮~hinton/20Sigmoid激活函数makeneuralnetworksnon-linear21LeNet1989年。YannLeCun利用反向传播的思想发明了卷积神经网络-LeNet,并将其用于数字识别,且取得了较好的成绩YannLeCun22第二次低谷不幸的是,第二波神经网络研究热潮一直持续到90年代中期,随后神经网络又进入低谷时期。由于梯度消失、数据和计算能力不足等原因,神经网络不能处理更加复杂的问题。支持向量机(SVM)在解决小样本、非线性及高维模式识别中表现出许多特有的优势,成为了当时首选的方法23深度学习2006年,Hinton在Science发表论文,再次宣布他知道大脑是如何工作的,并介绍了无监督训练和深度信念网络的概念。使用这种策略,人们能够训练比以前更深的网络,标志着神经网络已经从浅层学习走向了深层学习的变革。神经网络被包装为“深度学习”,正式开启了神经网络的第三次浪潮24深度学习的大突破imagenetAlexnet[AlexKrizhevsky,IlyaSutskever,andGeoffHinton,2012]25神经网络发展的里程碑如何构建一个深度神经网络训练网络的过程学习的算法深度学习12327构建网络HiddenlayersInputlayerOutputlayer超参数(hyperparameters)隐含层的层数每层的神经元个数激活函数损失函数迭代一次用的样本数(Batchsize)训练的轮数(Epochs)学习率学习的参数(learnableparameters)连接权阈值随机初始化28训练过程预测标签真实标签更新参数(权重和阈值)迭代训练集最小化损失HiddenlayersInputlayerOutputlayer验证集从训练集中选择‘一部分’样本(Batch)前向传播损失函数每个样本产生的预测和其真实标签存在一定误差29训练过程训练集HiddenlayersInputlayerOutputlayer验证集一次迭代指的是根据训练集中的‘一部分’样本来更新网络中的参数。在训练神经网络的过程中,一轮训练指的是迭代多次,直到训练集中的所有样本都已经放入到网络中参与了训练。一轮训练之后,通过验证集来查看这轮训练的效果打乱训练集,进行第二轮的训练30将数据集D拆分为训练集(800)和验证集(200)随机梯度下降法(stochasticgradientdescent,SGD)训练集中的一个样本经过神经网络的前向计算后,都要根据这个样本的损失来更新网络中的权重和偏置量针对于这个例子来说,一轮的训练就更新了权重和偏值800次minimizeHiddenlayersInputlayerOutputlayerBatchsize=131批梯度下降法(batchgradientdescent,BGD)训练集中的所有样本经过神经网络的前向计算后,根据所有训练样本的损失均值来更新网络中的权重和偏置量针对于这个例子来说,Batch-Size为训练集的样本数800,一轮的训练就更新了权重和偏值1次minimize将数据集D拆分为训练集(800)和验证集(200)Batchsize=800HiddenlayersInputlayerOutputlayer32Mini-batch梯度下降法(mini-batchgradientdescent)训练集中的一部分样本经过神经网络的前向计算后,根据这一部分训练样本的损失均值来更新网络中的权重和偏置量针对于这个例子来说,Batch-Size为20,一轮的训练就更新了权重和偏置量40次minimize将数据集D拆分为训练集(800)和验证集(200)Batchsize=20HiddenlayersInputlayerOutputlayer33如何构建一个深度神经网络训练网络的过程学习的算法深度学习12334训练过程预测标签真实标签更新参数(权重和阈值)迭代训练集最小化损失HiddenlayersInputlayerOutputlayer验证集从训练集中选择一部分样本(Batch)前向传播损失函数每个样本产生的预测和其真实标签存在一定误差35激活函数:Sigmoid损失函数:均方差损失Batchsize:1超参数训练的参数Weights,BiasInput:Real:Output:OutputlayerHiddenlayerInputlayer随机初始化示例最小化梯度下降法(GradientDescent)36梯度下降法Forexample:什么是梯度?指向函数下降最快的方向梯度指向函数增长最快的方向最小化37梯度下降法梯度下降是求一个函数最小值的一阶迭代优化算法Update:38更新神经网络中的参数UpdateParameters:minimizelossfunction如何高效地更新参数?误差反传播算法(Backpropagation)39BackpropagationOutputlayerHiddenlayerInputlayerChainruleOutputlayerHiddenlayerInputlayer梯度项ChainruleChainruleOutputlayerHiddenlayerInputlayer梯度项输出层总结OutputlayerHiddenlayerInputlayer42Backpropagation原来的连接权OutputlayerHiddenlayerInputlayer43BackpropagationChainrule原来的连接权前面为了方便讲解,我们采用了均方差损失函数和sigmoid函数,不要死记前面的公式。如果损失函数或者激活函数变了,公式会发生微小变化。重要的是根据链式法则学会求梯度项,前一层的梯度项会用到后层梯度项,所以先求后层的梯度项,再求前层的梯度项(BP),所有层的梯度项求出来后,各层的参数可以用梯度下降的更新公式计算出来。激活函数求导实际上,均方差损失函数和sigmoid函数结合使用效果不好,因为存在梯度消失的问题44GlobalMinimumandLocalMinimumInitializetheneuralnetworkwithmultiplesetsofdifferentparametersSimulatedannealingStochasticgradientdescent45Example-MLPforhandwrittendigitsTheMNISTdatabaseofhandwrittendigitshasatrainingsetof60,000examples,andatestsetof10,000examplesMNIST[YannLeCun,etal]28x28–MLPforhandwrittendigitsHiddenlayersInputlayerOutputlayerSoftmax28x2878410Reallabel(one-hot)00010000000.010.020.040.980.110.030.040.060.210.04outputone-hotencode:300010000005000001000047SoftmaxHiddenlayersInputlayer这里以输出为3类为例,显然y1的值更大(概率更大),那么预测的类别就是y1对应的类别48Hello,World49Reference://ufldl.stanford.edu/wiki/index.php/%E5%8F%8D%E5%90%91%E4%BC%A0%E5%AF%BC%E7%AE%97%E6%B3%95://medium.com/the-theory-of-everything/understanding-activation-functions-in-neural-networks-9491262884e0://://deeplearning.net/tutorial/
本文标题:第十章-神经网络与深度学习
链接地址:https://www.777doc.com/doc-4582220 .html