第四讲神经网络◆人工神经网络简介◆神经网络工具箱◆应用实例谢中华天津科技大学2020/2/26第一部分人工神经网络简介以冯·诺依曼型计算机为中心的信息处理技术的高速发展,使得计算机在当今的信息化社会中起着十分重要的作用。但是,当用它来解决某些人工智能问题时却遇到了很大的困难。例如,一个人可以很容易地识别他人的脸孔,但计算机则很难做到这一点。大脑是由生物神经元构成的巨型网络,它在本质上不同于计算机,是一种大规模的并行处理系统,它具有学习、联想记忆、综合等能力,并有巧妙的信息处理方法。人工神经网络来源于对人脑实际神经网络的模拟一、神经网络发展历史1.背景知识人工神经网络(ArtificialNeuralNetwroks,简称ANN)是对人类大脑系统的一种仿真,简单地讲,它是一个数学模型,可以用电子线路来实现,也可以用计算机程序来模拟,是人工智能研究的一种方法。实际上它是由大量的、功能比较简单的形式神经元互相连接而构成的复杂网络系统,用它可以模拟大脑的许多基本功能和简单的思维方式。尽管它还不是大脑的完美元缺的模型,但它可以通过学习来获取外部的知识并存贮在网络内,可以解决计算机不易处理的难题,特别是语音和图像的识别、理解、知识的处理、组合优化计算和智能控制等一系列本质上是非计算的问题。2.什么是人工神经网络1943年,美国心理学家W.McCulloch和数学家W.Pitts在提出了一个简单的神经元模型,即MP模型。1958年,F.Rosenblatt等研制出了感知机(Perceptron)。3.几个发展阶段第一次热潮(40-60年代未)1982年,美国物理学家J.J.Hopfield提出Hopfield模型,它是一个互联的非线性动力学网络他解决问题的方法是一种反复运算的动态过程,这是符号逻辑处理方法所不具备的性质.1987年首届国际ANN大会在圣地亚哥召开,国际ANN联合会成立,创办了多种ANN国际刊物。1990年12月,北京召开首届学术会议。低潮(70-80年代初)第二次热潮1.生物神经元模型二、生物神经元生物神经元模型就是一个简单的信号处理器。树突是神经元的信号输入通道,接受来自其他神经元的信息。轴突是神经元的信号输出通道。信息的处理与传递主要发生在突触附近。神经元细胞体通过树突接受脉冲信号,通过轴突传到突触前膜。当脉冲幅度达到一定强度,即超过其阈值电位后,突触前膜将向突触间隙释放神经传递的化学物质(乙酰胆碱),使位于突触后膜的离子通道(IonChannel)开放,产生离子流,从而在突触后膜产生正的或负的电位,称为突触后电位。2.生物神经元模型的运行机理突触有两种:兴奋性突触和抑制性突触。前者产生正突触后电位,后者产生负突触后电位。一个神经元的各树突和细胞体往往通过突触和大量的其他神经元相连接。这些突触后电位的变化,将对该神经元产生综合作用,即当这些突触后电位的总和超过某一阎值时,该神经元便被激活,并产生脉冲,而且产生的脉冲数与该电位总和值的大小有关。脉冲沿轴突向其他神经元传送,从而实现了神经元之间信息的传递。1x2xnx12nuy◆连接权:◆求和单元:◆激励函数(响应函数):i1niiivx1niiiux三、人工神经元模型1.人工神经元模型的三要素)(f)(f模型中为输入信号,为输出信号,为神经元的阈值。该模型的数学表达式为:12,,,nxxxy()yv1niiivx1niiiux2.人工神经元模型的数学表达一()yv1niiivx01x1x2xnx12nu()y00x03.人工神经元模型的数学表达二◆域值函数:◆分段线性函数:◆sigmoid函数:10()00vvv111()(1)11201vvvvv1()1exp()vv()tanh()vv4.激励函数的形式◆前馈型网络:◆反馈型网络:1x2xnx1y2yny输入层隐层输出层1x2x1nxnx1y2y1nyny四、网络结构及工作方式1.网络结构◆学习期:各计算单元状态不变,各连接线上权值通过学习来修改◆工作期:连接权固定,计算单元状态变化,以达到某种稳定状态2.工作方式◆有教师学习:外界存在一个教师,对给定的一组输入,提供应有的输出(标准答案),学习系统可根据实际输出与标准答案之间的差值来调整系统参数学习系统教师环境输入应有响应+误差信号实际响应—五、神经网络的学习方法1.学习方式◆无教师学习:学习系统按照环境提供数据的某些统计规律来调节自身参数环境学习系统动作输出输入状态环境学习系统输入◆强化学习:环境对系统输出结果只给出评价信息(奖或惩),系统通过强化受奖动作来改善自身性能●考察神经元k在n时刻的输入和输出●输入:●实际输出:●应有输出:●由误差信号构造能量函数:其中E(.)为求期望算子●求解最优化问题:●得出系统参数:()kxn()()()()()kkkkkynendnyndn误差信号:21()()2kkJEen21()()2kkJEenmin2.学习规则通常情况下用时刻n的瞬时值代替J,即求解最优化问题由数值迭代算法(如最速下降法、模拟退火算法等),可得其中为学习步长21()()2nkkJen21()()2nkkJenmin)()(nxnejkkj神经学家Hebb提出的学习规则:当某一连接两端的神经元同步激活(或同为抑制)时,该连接的强度应增强,反之应减弱,数学描述如下:其中分别为两端神经元的状态最常用的一种情况是:(),()kjhnhnij))(),((nhnhFjkkj)()(nhnhjkkj3.Hebb学习规则对于多层网络,由于有隐层后学习比较困难,限制了多层网络的发展,BP算法的出现解决了这一困难。六、BP算法(向后传播算法)对于多层前馈型网络,网络中有两种信号在流通,(1)工作信号,施加的输入信号向前传播直到在输出层产生实际的输出信号,是输入信号和权值的函数(2)误差信号,网络实际输出与应有输出间的差值,它由输出层开始逐层向后传播1.BP算法的原理下面推导用于多层前馈型网络学习的BP算法下面就逐个样本学习的情况来推导BP算法如右图,令单元j的净输入为则求对的梯度该单元的误差信号为,定义单元j的平方误差为,则输出层总的平方误差的瞬时值为:设在第n次迭代中某一层的第j个单元的输出为)(nyj)()()(nyndnejjjjjnen)(21)(2)(212nej)(nyi()jvn()j()jyn()jdn()jen()jin()()()jjiiivnnyn()(())jjjynvn()nji2.BP算法当j单元所在层为输出层时其中称为局部梯度权值的修正量为()()()()()()()()()jjjjijjjjienynvnnnenynvnn()(1)(())()jjjienvnyn()(())()jjjienvnynji()()()()()(())()()()jjjjjjjjjenynnnenvnenynvn)()()()(nynnnijjiji)(nyi()jvn()j()jyn()kdn()ken()jin()kjn()kvn()kyn)(k当j单元所在层为隐层时权值的修正量为ji()()(())kkkknenvn()(())()()jjjkkjknvnnnnynnnijjiji其中第二部分神经网络工具箱1x2xnx1y2ymy输入层隐层输出层1k 一、BP网络1.构造多层前向神经网络net=newff(A,B,{C},’trainfun’)Matlab命令A是一个n×2的矩阵,第i行元素为输入信号xi的最小值和最大值;参数说明B为一k维行向量,其元素为各隐层节点数;trainfun为学习规则采用的训练函数(常见训练函数如下表)。C为一k维字符串行向量,每一分量为对应层神经元的激励函数;函数名功能函数名traingd梯度下降法traincgftraingdm势能修正法traincgptraingdx自调整学习效率法traincgbtrainrp恢复BP法trainscgFR共轭梯度法trainbfgBFGS拟牛顿法PR共轭梯度法trainoss一步共轭+拟牛顿PB共轭梯度法trainlmLM法标量共轭梯度法trainbrBayesian规范法2.常见训练函数MATLAB中激励函数为1log()1xsigxetan()xxxxeesigxee()purelinxx其字符串分别为:’logsig’,’tansig’,’purelin’3.激励函数除了需要输入A,B,{C},’trainfun’外,还有些默认的参数可修改,如下表4.可修改参数参数名功能缺省值net.trainParam.goal目标函数设定值0net.trainParam.epochs最大迭代次数100net.trainParam.show显示中间结果的周期25net.trainParam.lr整批学习的学习效率0.01net.trainParam.mc势能学习规则traingdm的势能率0.9注:不同版本Matlab的可修改参数列表可能不同。[net,tr,Y1,E]=train(net,X,Y)5.BP网络的训练与泛化网络训练训练跟踪信息训练后网络网络实际输出误差矩阵网络训练函数未经训练网络网络实际输入网络应有输出X为n×M矩阵,为输入数据矩阵,M为样本的组数。Y为m×M矩阵,为输出数据矩阵。训练结束后,对新的输入点数据X2,调用sim函数进行泛化,得出这些输入点处的输出矩阵Y2.数据泛化Y2=sim(net,X2)用经过训练的网络对于不是样本集的输入,计算出相应的输出。什么是数据泛化?例4-1由下面的语句生成一组数据x和y,用神经网络进行数据拟合x=0:.1:10;y=0.12*exp(-0.213*x)+0.54*exp(-0.17*x).*sin(1.23*x);可知(x,y)是曲线上的点。0.2130.170.120.54sin(1.23)xxyeexx=0:.1:10;y=0.12*exp(-0.213*x)+0.54*exp(-0.17*x).*sin(1.23*x);net=newff([0,10],[5,1],{'tansig','tansig'});net.trainParam.epochs=1000;net=train(net,x,y);x0=0:.1:10;figure(1)y1=sim(net,x0);plot(x,y,'o',x0,y1,'r')0246810-0.4-0.200.20.40.6nntool命令产生神经网络图形交互界面如下二、神经网络交互式界面010203040506070809010010-710-610-510-410-310-210-1100100EpochsTraining-BluePerformanceis1.53643e-007,Goalis0第三部分应用实例实例1.蠓虫分类问题的神经网络方法(1989年MCM竞赛题目)生物学家试图对两种蠓虫(Af与Apf)进行鉴别,依据的资料是触角和翅膀的长度,已经测得9只Af和6只Apf的数据如下:9只Af触角长:1.241.361.381.381.381.401.481.541.56翅膀长:1.721.741.641.821.901.701.821.822.086只Apf触角长:1.141.181.201.261.281.30翅膀长:1.781.961.862.002.001.96问题:(1)如何凭借原始资料(15对数据,被称之为学习样本)制定一种方