机器学习算法——人工神经网络(ArtificialNeuralNetwroks)报告人:曹杰(湖大团队)神经网络基本概念1神经网络的学习方法2BP神经网络3BP神经网络实例(Python)4目录生物神经元的模型来自其它神经元轴突的神经末梢细胞体轴突细胞核树突神经末梢突触神经网络的基本概念神经元的数学模型x1x2xnw1w2wn┇∑fy┇神经元的n个输入接收的信息(其它神经元的输出)作比较的阈值互连强度/连接权值激活函数输出连接的权值:两个互连的神经元之间相互作用的强弱。神经元模型:神经元相当于一个多元输入一元输出的信息处理单元)-(netfyniiixwnet1神经元的数学模型上面的神经元模型可以用一个数学表达式进行抽象与概括,从而得到神经元的数学模型:)-(netfy神经元的网络输入记为net,即niiixwnet1),(Rwxii有时为了方便,设1nwT11],,,[nnWT1]1,,,[nxxX则有:)(XWfyT其中,为阈值即临界值其中激活函数1.阈值型激活函数2.S型激活函数1()1xfxe10()0xfxx,若-1,若01ynetθ(a)01ynet(b)ynet(c)013.分段线性激活函数n1nxxx1nnniiixwxwxwnet111数学神经元例子0)(10)(1)(1netnetxwfyniiix1x2xnw1w2wn┇∑fy┇10)(00)(132netnetfy)(神经网络学习方法学习:神经网络的最重要特征之一。实质:同一个训练集的样本输入输出模式反复作用于网络,网络按照一定的训练规则自动调节神经元之间的连接强度或拓扑结构,使实际输出满足期望的要求或者趋于稳定。学习规则(典型的权值修正方法):δ误差修正学习、Hebb学习规则学习方法:有监督学习、无监督学习δ学习规则(1)选择一组初始权值wij(1);(2)计算某一输入模式对应的实际输出与期望输出的误差;(3)更新权值,阈值可视为输入恒为(-1)的一个权值;)()]([)()1(txtydtwtwijjijij式中,η:学习因子;dj,yj(t):第j个神经元的期望输出与实际输出;xi(t):第j个神经元的第i个输入。(4)返回(2),直到对所有训练模式网络输出均能满足要求。神经网络的学习体现在:权值变化;网络结构变化。njjjtydE12))((21┇x2xiiyix1jwijw2j┇w1j┇┇wnjyj┇xn感知器x1x2xn…yMy1………*双层(输入层、输出层);*两层单元之间为全互连;*连接权值可调。结构特点:*输出层神经元个数等于类别数(两类问题时输出层为一个神经元)。感知器结构示意图┇x2xiyix1jwijw2j┇w1j┇┇wnjyj设输入模式向量,,共M类。T21],,,[nxxxX输出层第j个神经元对应第j个模式类,)(1jniiijjxwfy输出为wij:输入模式第i个分量与输出层第j个神经元间的连接权。θj:第j个神经元的阈值;输出单元对所有输入数值加权求和,经阈值型输出函数产生一组输出模式。令。取jnjw)1(T)1(21],,,[jnjjjWT21]1,,,,[nxxxX)()(T11XWjniiijjfxwfy有感知器例子权重向量w。训练样本x1.把权重向量初始化为0,或把每个分量初始化为[0,1]间的任意小数2.把训练样本输入感知器,得到分类结果(-1或1)3.根据分类结果更新权重向量权重更新算法类是感知器计算出来的分类,是书如有样本的正确分间的小数,表示学习率,是一个,yyjxyyjwjwjwjw]10[)(*)(*)()()()(,权重更新示例1,1,3.0,3,2,1,0,0,0,yyxw]8.1,2.1,6.0[8.1)2()2()2(8.13*2*3.0)2(*))1(1(*3.0)2(2.1)1()1()1(2.12*2*3.0)1(*))1(1(*3.0)1(6.0)0()0()0(6.01*2*3.0)0(*))1(1(*3.0)0())1(1(*3.0)0()0()0(1,1)(*)0(,0)0(,,神经网络模型…yMy1…x1x2xn…………输出层第二隐层第一隐层输入层神经网络模型神经元的连接方式不同,网络的拓扑结构也不同,人工神经网络的拓扑结构是决定人工神经网络特征的第二要素,根据神经元之间连接的拓扑结构不同,可将人工神经网络分成两类,即分层网络和相互连接型网络。分层网络分层网络将一个神经网络中的所有神经元按功能分为若干层,一般有输入层、中间层(隐藏层)和输出层。分层网络按照信息的传递方向可分为前向式网络(如图a)和反馈网络(如图b、c)。BP神经网络BP网络主要用于1)函数逼近:用输入向量和相应的输出向量训练一个网络逼近一个函数。2)模式识别:用一个特定的输出向量将它与输入向量联系起来。3)分类:把输入向量以所定义的合适方式进行分类。4)数据压缩:减少输出向量维数以便于传输或存储。BP神经网络(BackPropagationNeuralNetwork),即误差后向传播神经网络,是一种按误差逆向传播算法训练的多层前馈网络,是目前应用最广泛的网络模型之一。BP神经网络结构BP神经元的网络结构…yMy1…x1x2xn…………注:与感知器模型不同的是,BP网络的激活函数f(·)要求是可微的,所以不能用二值函数,常用S型的对数、正切函数或线性函数。BP神经节点x1x2xnw1w2wn┇∑fy┇BP神经网络BP算法的两个阶段:BP算法由数据流的正向传播和误差信号的反向传播两个过程构成。设:某层任一神经元j的输入为netj,输出为yj;相邻低一层中任一神经元i的输出为yi。iiijjywnet)(jjnetfywij:神经元i与j之间的连接权;f(∙):神经元的输出函数。…yMy1…x1x2xn…………jiS型输出函数:0.510yjnetjθj)(jjnetfy0)(11hjjneteθj:神经元阈值;h0:修改输出函数形状的参数。设:输出层中第k个神经元的实际输出为yk,输入为netk;与输出层相邻的隐层中任一神经元j的输出为yj。jjjkkywnet)(kknetfy对输入模式Xp,若输出层中第k个神经元的期望输出为dpk,实际输出为ypk。输出层的输出方差:kpkpkpydE2)(21若输入N个模式,网络的系统均方差为:pkpkpkydNE2)(21ppEN1当输入Xp时,wjk的修正增量:jkpjkpwEwΔjkkkpjkpwnetnetEwE其中,jjjkkywnet由式得到:pjpjjjkjkjkkyy令,可得kppknetE输出单元的误差:输出单元的修正增量:)1()(pkpkpkpkpkyyydpjpkjkpykjkpkpjpjpjwyy)1(pjpjijpywΔ对于与输出层相邻的隐层中的神经元j和该隐层前低一层中的神经元i:输出层中神经元输出的误差反向传播到前面各层,对各层之间的权值进行修正。BP算法建模步骤:第二步:输入样本,指定输出层各神经元的希望输出值。jjjdXX,1,1Mj,,2,1第三步:依次计算每层神经元的实际输出,直到输出层。第四步:从输出层开始修正每个权值,直到第一隐层。ijijijytwtw)()1(10若j是输出层神经元,则:))(1(jjjjjydyy若j是隐层神经元,则:kjkkjjjwyy)1(第五步:转到第二步,循环至权值稳定为止。第一步:对权值和神经元阈值初始化:(0,1)上分布的随机数。BP算法建模步骤:开始初始化:给出训练样本集,对阈值及各连接权值赋初值输入一个训练样本p前向传播,计算各层节点的输出:)(jjiiijjnetfOownet计算样本p的误差epkkkpyye2)ˆ(21e满足要求?计算输出层各节点的δk,并调节相应的连接权值jkjkjkjkjkkkkkkkkwtwtwOwnetfyyYYnetf)()1()(')ˆ()1()('输入一个下一个训练样本p反向传播,计算隐层各节点的δk,并调节相应的连接权值jkjkjkjkjkmkmmkkkkkwtwtwOwwnetfOOnetf)()1()(')1()('N所有e满足要求?YNY结束开始连接权及阀值初始化学习模式对提供给网络计算中间层各单元的输入、输出计算输出层各单元的输入、输出计算输出层各单元的一般化误差计算中间层各单元的一般化误差调整中间层至输出层之间的连接权及输出层各单元的输出阀值调整输入层至中间层之间的连接权及中间层各单元的输出阀值更新学习输入模式全部模式训练完?更新学习次数误差e或学习次数N学习结束是否是否BP算法步骤:BP神经网络的设计分析1、产生数据样本集2、确定网络的类型和结构选择网络的层数、每层的节点数、初始权值、阈值、学习算法、数值修改频度、结点变换函数及参数、学习率等参数。3、训练和测试包括原始数据的收集、数据分析、变量选择以及数据的预处理对所有样本数据正向运行一次并反向修改连接权一次称为一次训练(或一次学习)。训练次数均方误差训练数据测试数据BP神经网络的应用实例BP神经网络训练数据1.问题的描述下面列表中的数据是某地区20年公路运量数据,在作为下一节的神经网络程序的输入。其中属性“人口数量”、“机动车数量”和“公路面积”作为神经网络的三个输入,属性“公路客运量”和“公路货运量”作为神经网络的两个输出。某地区20年公路运量数据年份人口数量机动车数量公路面积公路客运量公路货运量199020.550.60.0951261237199122.440.750.1162171379199225.370.850.1177301385199327.130.900.1491451399199429.451.050.20104601663199530.11.350.23113871714199630.961.450.23123531834199734.061.600.32157504322199836.421.700.32183048132199938.091.850.34198368936200039.132.150.362102411099200139.992.200.361949011203200241.932.250.382043310524200344.592.350.492259811115年份人口数量机动车数量公路面积公路客运量公路货运量200447.302.500.562510713320200552.892.600.593344216762200655.732.700.593683618673200756.762.850.674054820724200859.172.950.694292720803200960.633.100.7943462218042.BP网络训练过程为了了解利用BP网络训练的过程,可把问题分为成以下步骤:1)原始数据的输入;2)数据归一化;3)网络建立以及训练;4)对原始数据进行仿真;5)将原始数据仿真的结果与已知样本进行对比;在进行归一化处理时和把仿真的到的数据还原为原始数据的数量级时,在下面的程序中,都是利用系统函数进行的。训练结果