资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,机器学习算法,人工神经网络(,Artificial Neural Netwroks,),报告人:曹杰(湖大团队),神经网络基本概念,1,神经网络的学习方法,2,BP,神经网络,3,BP,神经网络实例(,Python,),4,目录,生物神经元的模型,神经网络的基本概念,神经元的数学模型,神经元的,n,个输入,接收的信息,(,其它神经元的输出,),作比较,的阈值,互连强度/连接权值,激活函数,输出,连接的权值:两个互连的神经元之间相互作用的强弱,。,神经元模型:,神经元相当于一个多元输入一元输出的信息处理单元,神经元的数学模型,上面的神经元模型可以用一个数学表达式进行抽象与概括,从而得到神经元的数学模型:,神经元的网络输入记为,net,,即,有时为了方便,设,则有:,其中,,激活函数,1.,阈值型激活函数,2.S,型激活函数,3.,分段线性激活函数,数学神经元例子,神经网络学习方法,学习:神经网络的最重要特征之一。,实质:同一个训练集的样本输入输出模式反复作用于网络,网络按照一定的训练规则自动调节神经元之间的连接强度或拓扑结构,使实际输出满足期望的要求或者趋于稳定。,学习规则(典型的权值修正方法):,误差修正学习、,Hebb学习规则,学习方法:有监督学习、无监督学习,学习规则,(,1,)选择一组初始权值,w,ij,(1),;,(,2,)计算某一输入模式对应的实际输出与期望输出的误差;,(,3,)更新权值,阈值可视为输入恒为(,1,)的一个权值;,式中,,:学习因子;,d,j,,,y,j,(,t,),:第,j,个神经元的期望输出与实际输出;,x,i,(,t,),:第,j,个神经元的第,i,个输入。,(,4,)返回,(2),,直到对所有训练模式网络输出均能满足要求。,神经网络的学习体现在:,权值变化;网络结构变化。,感知器,*,双层(输入层、输出层);,*,两层单元之间为全互连;,*,连接权值可调。,结构特点:,*,输出层神经元个数等于类,别数(两类问题时输出层,为一个神经元)。,感知器结构示意图,设输入模式向量,共,M,类。,输出层第,j,个神经元对应第,j,个模式类,,输出为,w,ij,:输入模式第,i,个分量与,输出层第,j,个神经元间的连接权。,j,:第,j,个神经元的阈值;,输出单元对所有输入数值加权求和,经阈值型输出函数,产生一组输出模式。,令 。取,有,感知器例子,权重向量,w,。训练样本,x,1.,把权重向量初始化为,0,,或把每个分量初始化为,0,1,间的任意小数,2.,把训练样本输入感知器,得到分类结果(,-1,或,1,),3.,根据分类结果更新权重向量,权重更新算法,权重更新示例,阈值更新,神经网络模型,输出层,第二隐层,第一隐层,输入层,神经网络模型,神经元的连接方式不同,网络的拓扑结构也不同,人工神经网络的拓扑结构是决定人工神经网络特征的第二要素,根据神经元之间连接的拓扑结构不同,可将人工神经网络分成两类,即,分层网络,和,相互连接型网络。,分层网络,分层网络将一个神经网络中的所有神经元按功能分为若干层,一般有输入层、中间层(隐藏层)和输出层。,分层网络按照信息的传递方向可分为,前向式网络(如图,a,),和,反馈网络(如图,b,、,c,),。,BP,神经网络,BP,网络主要用于,1,),函数逼近,:用输入向量和相应的输出向量训练一个网络逼近一个函数。,2,),模式识别,:用一个特定的输出向量将它与输入向量联系起来。,3,),分类,:把输入向量 以所定义的合适方式进行分类。,4,),数据压缩,:减少输出向量维数以便于传输或存储。,BP,神经网络(,Back Propagation Neural Network,),即误差后向传播神经网络,是一种按误差逆向传播算法训练的多层前馈网络,是目前应用最广泛的网络模型之一。,BP,神经网络结构,BP,神经元的网络结构,注:与感知器模型不同的是,,BP,网络的激活函数,f,(,)要求是可微的,所以不能用二值函数,常用,S,型的对数、正切函数或线性函数。,BP,神经节点,BP,神经网络,BP,算法的两个阶段:,BP,算法由数据流的正向传播和误差信号的反向传播两个过程构成。,设:某层任一神经元,j,的,输入为,net,j,,输出为,y,j,;,相邻低一层中任一,神经元,i,的输出为,y,i,。,w,ij,:神经元,i,与,j,之间的连接权;,f,(),:神经元的输出函数。,j,i,S,型输出函数:,j,:神经元阈值;,h,0,:修改输出函数形状的参数。,设:输出层中第,k,个神经元的实际输出为,y,k,,输入为,net,k,;,与输出层相邻的隐层中任一神经元,j,的输出为,y,j,。,对输入模式,X,p,,若输出层中第,k,个神经元的期望输出为,d,pk,,实际输出为,y,pk,。输出层的输出方差:,若输入,N,个模式,网络的系统均方差为:,当输入,X,p,时,,w,jk,的修正增量:,其中,,由 式得到:,令 ,可得,输出单元的误差:,输出单元的修正增量:,对于与输出层相邻的隐层中的神经元,j,和该隐层前低一层,中的神经元,i,:,输出层中神经元输出的误差反向传播到前面各层,对各,层之间的权值进行修正。,BP,算法,建模步骤,:,第二步:输入样本,指定输出层各神经元的希望输出值。,第三步:依次计算每层神经元的实际输出,直到输出层。,第四步:从输出层开始修正每个权值,直到第一隐层。,若,j,是输出层神经元,则:,若,j,是隐层神经元,则:,第五步:转到第二步,循环至权值稳定为止。,第一步:对权值和神经元阈值初始化:,(0,,,1),上分布的随机数。,BP,算法,建模步骤,:,BP,算法,步骤,:,BP,神经网络的设计分析,1,、产生数据样本集,2,、确定网络的类型和结构,选择网络的层数、每层的节点数、初始权值、阈值、学习算法、数值修改频度、结点变换函数及参数、学习率等参数。,3,、训练和测试,包括原始数据的收集、数据分析、变量选择以及数据的预处理,对所有样本数据正向运行一次并反向修改连接权一次称为一次训练,(,或一次学习,),。,训练次数,均方误差,训练数据,测试数据,BP,神经网络的应用实例,BP,神经网络训练数据,1.,问题的描述,下面列表中的数据是某地区20年公路运量数据,在作为下一节的神经网络程序的输入。其中属性“人口数量”、“机动车数量”和“公路面积”作为神经网络的三个输入,属性“公路客运量”和“公路货运量”作为神经网络的两个输出。,某地区20年公路运量数据,年份 人口数量 机动车数量 公路面积 公路客运量 公路货运量,20.55 0.6 0.09 5126 1237,22.44 0.75 0.11 6217 1379,25.37 0.85 0.11 7730 1385,27.13 0.90 0.14 9145 1399,29.45 1.05 0.20 10460 1663,30.1 1.35 0.23 11387 1714,30.96 1.45 0.23 12353 1834,34.06 1.60 0.32 15750 4322,36.42 1.70 0.32 18304 8132,38.09 1.85 0.34 19836 8936,39.13 2.15 0.36 21024 11099,2001 39.99 2.20 0.36 19490 11203,2002 41.93 2.25 0.38 20433 10524,2003 44.59 2.35 0.49 22598 11115,年份 人口数量 机动车数量 公路面积 公路客运量 公路货运量,47.30 2.50 0.56 25107 13320,52.89 2.60 0.59 33442 16762,55.73 2.70 0.59 36836 18673,56.76 2.85 0.67 40548 20724,59.17 2.95 0.69 42927 20803,2009 60.63 3.10 0.79 43462 21804,2.BP,网络训练过程,为了了解利用,BP,网络训练的过程,可把问题分为成以下步骤:,1,)原始数据的输入;,2,)数据归一化;,3,)网络建立以及训练;,4,)对原始数据进行仿真;,5,)将原始数据仿真的结果与已知样本进行对比;,在进行归一化处理时和把仿真的到的数据还原为原始数据的数量级时,在下面的程序中,都是利用系统函数进行的。,训练结果,
展开阅读全文