神经网络综述及简单应用实例课件_Matlab程序_第1页
神经网络综述及简单应用实例课件_Matlab程序_第2页
神经网络综述及简单应用实例课件_Matlab程序_第3页
神经网络综述及简单应用实例课件_Matlab程序_第4页
神经网络综述及简单应用实例课件_Matlab程序_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第四讲第四讲 神经网络神经网络 人工神经网络简介人工神经网络简介 神经网络工具箱神经网络工具箱 应用实例应用实例2022-4-21第一部分第一部分 人工神经网络简介人工神经网络简介 以冯以冯诺依曼型计算机为中心的信息处理技术的高速诺依曼型计算机为中心的信息处理技术的高速发展,使得计算机在当今的信息化社会中起着十分重要发展,使得计算机在当今的信息化社会中起着十分重要的作用。但是,当用它来解决某些人工智能问题时却遇的作用。但是,当用它来解决某些人工智能问题时却遇到了很大的困难。到了很大的困难。 例如,一个人可以很容易地识别他人的脸孔,但计例如,一个人可以很容易地识别他人的脸孔,但计算机则很难做到这

2、一点。算机则很难做到这一点。 大脑是由生物神经元构成的巨型网络,它在本质上大脑是由生物神经元构成的巨型网络,它在本质上不同于计算机,是一种大规模的并行处理系统,它具有不同于计算机,是一种大规模的并行处理系统,它具有学习、联想记忆、综合等能力,并有巧妙的信息处理方学习、联想记忆、综合等能力,并有巧妙的信息处理方法。法。 人工神经网络来源于对人脑实际神经网络的模拟人工神经网络来源于对人脑实际神经网络的模拟一、一、 神经网络发展历史神经网络发展历史背景知识背景知识 人工神经网络(人工神经网络(Artificial Neural Netwroks,简称,简称ANN)是对人类大脑系统的一种仿真,简单地讲

3、,它是)是对人类大脑系统的一种仿真,简单地讲,它是一个数学模型,可以用电子线路来实现,也可以用计算一个数学模型,可以用电子线路来实现,也可以用计算机程序来模拟,是人工智能研究的一种方法。机程序来模拟,是人工智能研究的一种方法。 实际上它是由大量的、功能比较简单的形式神经元实际上它是由大量的、功能比较简单的形式神经元互相连接而构成的复杂网络系统,用它可以模拟大脑的互相连接而构成的复杂网络系统,用它可以模拟大脑的许多基本功能和简单的思维方式。尽管它还不是大脑的许多基本功能和简单的思维方式。尽管它还不是大脑的完美元缺的模型,但它可以通过学习来获取外部的知识完美元缺的模型,但它可以通过学习来获取外部的

4、知识并存贮在网络内,可以解决计算机不易处理的难题,特并存贮在网络内,可以解决计算机不易处理的难题,特别是别是语音和图像的识别、理解、知识的处理、组合优化语音和图像的识别、理解、知识的处理、组合优化计算和智能控制等计算和智能控制等一系列本质上是非计算的问题。一系列本质上是非计算的问题。 2什么是人工神经网络什么是人工神经网络 1943年年,美国心理学家美国心理学家W.McCulloch和数学家和数学家W.Pitts在提出了一个简单的神经元模型,即在提出了一个简单的神经元模型,即MP模型。模型。1958年,年,F.Rosenblatt等研制出了等研制出了感知机感知机(Perceptron)。3几个

5、发展阶段几个发展阶段q 第一次热潮第一次热潮(40-60年代未年代未) 1982年,美国物理学家年,美国物理学家J.J.Hopfield提出提出Hopfield模模型型,它是一个互联的非线性动力学网络他解决问题的方,它是一个互联的非线性动力学网络他解决问题的方法是一种反复运算的动态过程法是一种反复运算的动态过程,这是符号逻辑处理方法所这是符号逻辑处理方法所不具备的性质不具备的性质. 1987年首届国际年首届国际ANN大会在圣地亚哥召大会在圣地亚哥召开,国际开,国际ANN联合会成立,创办了多种联合会成立,创办了多种ANN国际刊物。国际刊物。1990年年12月,北京召开首届学术会议。月,北京召开首

6、届学术会议。q 低潮低潮(70-80年代初年代初)q 第二次热潮第二次热潮1. 生物神经元模型生物神经元模型二、二、 生物神经元生物神经元 生物神经元模型就是一个简单的信号处理器。生物神经元模型就是一个简单的信号处理器。树突树突是神经元的信号输入通道,接受来自其他神经元的信息。是神经元的信号输入通道,接受来自其他神经元的信息。轴突是神经元的信号输出通道。轴突是神经元的信号输出通道。 信息的处理与传递主要发生在信息的处理与传递主要发生在突触突触附近。神经元细附近。神经元细胞体通过树突接受脉冲信号,通过胞体通过树突接受脉冲信号,通过轴突轴突传到传到突触前膜突触前膜。当当脉冲脉冲幅度达到一定强度,即

7、超过其阈值电位后,突触幅度达到一定强度,即超过其阈值电位后,突触前膜将向突触间隙释放神经传递的化学物质前膜将向突触间隙释放神经传递的化学物质( (乙酰胆碱乙酰胆碱) ),使位于突触后膜的离子通道使位于突触后膜的离子通道(Ion Channel)(Ion Channel)开放,产生开放,产生离离子流子流,从而在突触后膜产生正的或负的电位,称为,从而在突触后膜产生正的或负的电位,称为突触突触后电位后电位。2. 生物神经元模型的运行机理生物神经元模型的运行机理 突触有两种:突触有两种:兴奋性突触兴奋性突触和和抑制性突触抑制性突触。前者产生。前者产生正突触后电位正突触后电位,后者产生,后者产生负突触后

8、电位负突触后电位。一个神经元的。一个神经元的各树突和细胞体往往通过突触和大量的其他神经元相连各树突和细胞体往往通过突触和大量的其他神经元相连接。这些突触后电位的变化,将对该神经元产生综合作接。这些突触后电位的变化,将对该神经元产生综合作用,即当这些突触后电位的总和超过某一阎值时,该神用,即当这些突触后电位的总和超过某一阎值时,该神经元便被激活,并经元便被激活,并产生脉冲产生脉冲,而且产生的脉冲数与该电,而且产生的脉冲数与该电位总和值的大小有关。脉冲沿轴突向其他神经元传送,位总和值的大小有关。脉冲沿轴突向其他神经元传送,从而实现了神经元之间信息的传递。从而实现了神经元之间信息的传递。 连接权:连

9、接权: 求和单元:求和单元: 激励函数(响应函数)激励函数(响应函数) : i1niiivx()1x2xnx12nu()y1niiiux三、三、 人工神经元模型人工神经元模型1. 人工神经元模型的三要素人工神经元模型的三要素 模型中模型中 为输入信号, 为输出信号,为输出信号, 为神经元的阈值。该模型的数学表达式为:为神经元的阈值。该模型的数学表达式为:12,nx xxy( )yv1niiivx1niiiux2. 人工神经元模型的数学表达一人工神经元模型的数学表达一( )yv1niiivx01x 1x2xnx12nu()y00 x0 3. 人工神经元模型的数学表达二人工神经元模型的数学表达二

10、阈值函数:阈值函数: 分段线性函数:分段线性函数: sigmoid函数:函数:10( )00vvv111( )(1)11201vvvvv 1( )1exp()vv( )tanh()vv4. 激励函数的形式激励函数的形式 前馈型网络前馈型网络: 反馈型网络反馈型网络:1x2xnx1y2yny输输入入层层隐隐层层输输出出层层1x2x1nxnx1y2y1nyny四、四、 网络结构及工作方式网络结构及工作方式1. 网络结构网络结构 学习期学习期: 各计算单元状态不变,各连接线上权值通过学习来修改各计算单元状态不变,各连接线上权值通过学习来修改 工作期工作期: 连接权固定,计算单元状态变化,以达到某种稳

11、定状态连接权固定,计算单元状态变化,以达到某种稳定状态2. 工作方式工作方式 有教师学习有教师学习: 外界存在一个教师,对给定的一组输入,提供应有的外界存在一个教师,对给定的一组输入,提供应有的输出(标准答案),学习系统可根据实际输出与标准答输出(标准答案),学习系统可根据实际输出与标准答案之间的差值来调整系统参数案之间的差值来调整系统参数学学 习习系系 统统教师教师环境环境输入输入应有应有响应响应 +误差信号误差信号实际响应实际响应 五、五、 神经网络的学习方法神经网络的学习方法1. 学习方式学习方式 无教师学习:无教师学习: 学习系统按照环境提供数据的某些统计规律来调节自学习系统按照环境提

12、供数据的某些统计规律来调节自身参数身参数环境环境学学 习习系系 统统动动作作输出输出输入输入状态状态环境环境学习系统学习系统输入输入 强化学习:强化学习: 环境对系统输出结果只给出评价信息(奖或惩),系环境对系统输出结果只给出评价信息(奖或惩),系统通过强化受奖动作来改善自身性能统通过强化受奖动作来改善自身性能 考察神经元考察神经元 k 在在 n 时刻的输入和输出时刻的输入和输出 输入:输入: 实际输出:实际输出: 应有输出:应有输出: 由误差信号构造能量函数:由误差信号构造能量函数: 其中其中E(.)为求期望算子为求期望算子 求解最优化问题:求解最优化问题: 得出系统参数:得出系统参数:(

13、)kx n( )( )( )( )( )kkkkkynendnyndn误差信号:21( )( )2kkJEen21( )( )2kkJEenmin2. 学习规则学习规则 通常情况下用时刻通常情况下用时刻 n 的瞬时值的瞬时值 代替代替J,即求解最优化问题即求解最优化问题由数值迭代算法(如最速下降法、模拟退火算法等),可由数值迭代算法(如最速下降法、模拟退火算法等),可得得其中其中 为学习步长为学习步长21( )( )2nkkJen21( )( )2nkkJenmin)()(nxnejkkj 神经学家神经学家Hebb提出的学习规则:当某一连接两端的神提出的学习规则:当某一连接两端的神经元同步激活

14、(或同为抑制)时,该连接的强度应增强,经元同步激活(或同为抑制)时,该连接的强度应增强,反之应减弱,数学描述如下:反之应减弱,数学描述如下: 其中其中 分别为分别为 两端神经元的状态两端神经元的状态最常用的一种情况是:最常用的一种情况是:( ),( )kjh n h nij)(),(nhnhFjkkj)()(nhnhjkkj3. Hebb学习规则学习规则 对于多层网络,由于有隐层后学习比较困难,限制了对于多层网络,由于有隐层后学习比较困难,限制了多层网络的发展,多层网络的发展,BP算法的出现解决了这一困难。算法的出现解决了这一困难。六、六、 BP算法(向后传播算法)算法(向后传播算法) 对于多

15、层前馈型网络,网络中有两种信号在流通,对于多层前馈型网络,网络中有两种信号在流通,(1)工作信号,施加的输入信号向前传播直到在输出层产)工作信号,施加的输入信号向前传播直到在输出层产生实际的输出信号,是输入信号和权值的函数生实际的输出信号,是输入信号和权值的函数 (2)误差信号,网络实际输出与应有输出间的差值,它由)误差信号,网络实际输出与应有输出间的差值,它由输出层开始逐层向后传播输出层开始逐层向后传播1. BP算法的原理算法的原理下面推导用于多层前馈型网络学习的下面推导用于多层前馈型网络学习的BP算法算法 下面就逐个样本学习的情况来推导下面就逐个样本学习的情况来推导BP算法算法如右图,令单

16、元如右图,令单元 j 的净输入为的净输入为则则求求 对对 的梯度的梯度 该单元的误差信号为该单元的误差信号为 ,定义单元,定义单元 j 的平的平方误差为方误差为 ,则输出层总的平方误差的瞬时值为,则输出层总的平方误差的瞬时值为: 设在第设在第 n 次迭代中某一层的第次迭代中某一层的第 j 个单元的输出为个单元的输出为)(nyj)()()(nyndnejjjjjnen)(21)(2)(212nej)(nyi( )jv n()j( )jy n( )jdn( )je n( )jin( )( )( )jjiiiv nn y n( )( )jjjy nv n( )nji2. BP算法算法q 当当 j 单

17、元所在层为输出层时单元所在层为输出层时其中其中 称为称为局部梯度局部梯度权值权值 的修正量为的修正量为( )( )( )( )( )( )( )( )( )jjjjijjjjie ny nv nnne ny nv nn( ) ( 1)( )( )jjjie nv ny n ( )( )( )jjjie nv n y n ji( )( )( )( )( )( )( )( )( )jjjjjjjjje ny nnne nv ne ny nv n )()()()(nynnnijjiji)(nyi( )jv n()j( )jy n( )kdn( )ke n( )jin( )kjn( )kv n( )k

18、yn)(kq 当当 j 单元所在层为隐层时单元所在层为隐层时权值权值 的修正量为的修正量为ji( )( )( )kkkkne nv n( )( )( )( )jjjkkjknv nnn nynnnijjiji其中其中第二部分第二部分 神经网络工具箱神经网络工具箱1x2xnx1y2ymy输入层隐层输出层1k 一、一、 BP网络网络1. 构造多层前向神经网络构造多层前向神经网络net = newff ( A, B, C, trainfun )q Matlab命令命令A是一个是一个 n 2的矩阵,第的矩阵,第 i 行元素为输入信号行元素为输入信号 x i 的的最最小值和最大值小值和最大值;q 参数说

19、明参数说明B为一为一 k 维行向量,其元素为各维行向量,其元素为各隐层节点数隐层节点数;trainfun为学习规则采用的为学习规则采用的训练函数训练函数(常见训练函数如下(常见训练函数如下表)。表)。C为一为一k 维字符串行向量,每一分量为对应层神经元的维字符串行向量,每一分量为对应层神经元的激激励函数励函数;函数名函数名功能功能函数名函数名traingd梯度下降法梯度下降法traincgftraingdm势能修正法势能修正法traincgptraingdx自调整学习效率法自调整学习效率法traincgbtrainrp恢复恢复BP法法trainscgFR共轭梯度法共轭梯度法trainbfgBF

20、GS拟牛顿法拟牛顿法PR共轭梯度法共轭梯度法trainoss一步共轭一步共轭 + 拟牛顿拟牛顿PB共轭梯度法共轭梯度法trainlmLM法法标量共轭梯度法标量共轭梯度法trainbrBayesian规范法规范法2. 常见训练函数常见训练函数MATLAB中激励函数为中激励函数为1log( )1xsig xetan( )xxxxeesig xee( )purelin xx其字符串分别为:其字符串分别为:logsig,tansig,purelin3. 激励函数激励函数 除了需要输入除了需要输入A,B,C,trainfun外,还有些默认的参数可外,还有些默认的参数可修改,如下表修改,如下表4. 可修改

21、参数可修改参数参数名参数名功能功能缺省值缺省值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 )

22、5. BP网络的训练与泛化网络的训练与泛化q 网络训练网络训练训训练练跟跟踪踪信信息息训训练练后后网网络络网网络络实实际际输输出出误误差差矩矩阵阵网网络络训训练练函函数数未未经经训训练练网网络络网网络络实实际际输输入入网网络络应应有有输输出出X为为nM矩阵,为输入数据矩阵,矩阵,为输入数据矩阵,M为样本的组数。为样本的组数。Y为为mM矩阵,为输出数据矩阵。矩阵,为输出数据矩阵。 训练结束后,对新的输入点数据训练结束后,对新的输入点数据X2,调用,调用sim函数进行泛函数进行泛化,得出这些输入点处的输出矩阵化,得出这些输入点处的输出矩阵Y2. q 数据泛化数据泛化Y2=sim(net,X2) 用

23、经过训练的网络对于不是样本集的输入,计算出相应用经过训练的网络对于不是样本集的输入,计算出相应的输出。的输出。 什么是数据泛化?什么是数据泛化?例例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

24、*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.6 nntool命令产生神经网络图形交互界面如下命令产生神经网络图形交互界面如下二、二、 神经网络交互式界面神经网络交互式界面010203040506070809010010-710-610-510-410-310-210-1100100 Epoc

25、hsTraining-BluePerformance is 1.53643e-007, Goal is 0第三部分第三部分 应用实例应用实例实例实例1. 蠓虫分类问题的神经网络方法蠓虫分类问题的神经网络方法(1989年年MCM竞赛题目竞赛题目 )生物学家试图对两种蠓虫(生物学家试图对两种蠓虫(Af与与Apf)进行)进行鉴别,依据的资料鉴别,依据的资料是触角和翅膀的长度,已经测得是触角和翅膀的长度,已经测得9只只Af和和6只只Apf的数据如下:的数据如下: 9只只Af触角长:触角长:1.24 1.36 1.38 1.38 1.38 1.40 1.48 1.54 1.56翅膀长:翅膀长:1.72

26、1.74 1.64 1.82 1.90 1.70 1.82 1.82 2.086只只Apf触角长:触角长:1.14 1.18 1.20 1.26 1.28 1.30翅膀长:翅膀长:1.78 1.96 1.86 2.00 2.00 1.96问题:问题:(1)如何凭借原始资料)如何凭借原始资料(15 对数据对数据,被称之为学习样本被称之为学习样本)制制 定一种方法定一种方法,正确区分两类蠓虫正确区分两类蠓虫; (2)依据确立的方法)依据确立的方法,对以下三个样本:对以下三个样本: (1.24,1.80),(1.28,1.84),(1.40,2.04)加以识别加以识别 解法一:解法一:建立建立两层前

27、向神经网络两层前向神经网络如下:如下: 隐层节点可适量选取(没有具体标准)。隐层节点可适量选取(没有具体标准)。X= 为输入矩阵,为输入矩阵,x1对应于触角长,对应于触角长, x2对应于翅膀长。对应于翅膀长。Y= 为输出矩阵为输出矩阵规定规定Af对应的应有输出为对应的应有输出为 , Apf对应的应有输出为对应的应有输出为 1x2x1y2y输入层隐层输出层21xx21yy1001以上神经网络模型的以上神经网络模型的MATLAB程序如下:程序如下: x=1.24 1.36 1.38 1.38 1.38 1.40 1.48 1.54 1.56 1.14 1.18 1.20 1.26 1.28 1.3

28、0 1.72 1.74 1.64 1.82 1.90 1.70 1.82 1.82 2.08 1.78 1.96 1.86 2.00 2.00 1.96; %原始数据原始数据x=x-1.1; %数据标准化数据标准化y=0 0 0 0 0 0 0 0 0 1 1 1 1 1 1;1 1 1 1 1 1 1 1 1 0 0 0 0 0 0; %应有的输出应有的输出net=newff(0,1;0 1,5,2,tansig,tansig); %建立两层前向神经网络建立两层前向神经网络%net.trainParam.goal=0.0000001; %设定训练误差设定训练误差net.trainParam.

29、epochs=2000; %设定最大训练步数设定最大训练步数net=train(net,x,y); %训练网络训练网络y1=sim(net,x) %输出数据输出数据yy=sim(net,1.24 1.28 1.40;1.80 1.84 2.04) %数据泛化数据泛化解法二:解法二:建立建立单层感知器模型单层感知器模型如下:如下: X= 为输入矩阵,为输入矩阵,x1对应于触角长,对应于触角长, x2对应于翅膀长。对应于翅膀长。Y= 为输出矩阵,规定为输出矩阵,规定Af对应的应有输出为对应的应有输出为 , Apf对应的应有输出为对应的应有输出为 21xx21yy10011x2x1y2y输入层输出层

30、以上神经网络模型的以上神经网络模型的MATLAB程序如下:程序如下: x=1.24 1.36 1.38 1.38 1.38 1.40 1.48 1.54 1.56 1.14 1.18 1.20 1.26 1.28 1.30 1.72 1.74 1.64 1.82 1.90 1.70 1.82 1.82 2.08 1.78 1.96 1.86 2.00 2.00 1.96; %原始数据原始数据x=x-1.1; %数据标准化数据标准化y=0 0 0 0 0 0 0 0 0 1 1 1 1 1 1;1 1 1 1 1 1 1 1 1 0 0 0 0 0 0; %应有的输出应有的输出net=newp(

31、minmax(x),2); %建立单层两节点感知器模型建立单层两节点感知器模型%net.trainParam.goal=0.0000001; %设定训练误差设定训练误差net.trainParam.epochs=200; %设定最大训练步数设定最大训练步数net=train(net,x,y); %训练网络训练网络y1=sim(net,x) %输出数据输出数据yy=sim(net,1.24 1.28 1.40;1.80 1.84 2.04) %数据泛化数据泛化plotpv(x,y) %绘制输入向量和目标向量绘制输入向量和目标向量plotpc(net.iw1,1,net.b1) %绘制分界线绘制分界线实例实例2. 利用神经网络实现数据拟合利用神经网络实现数据拟合(赤潮预报的人工神经网络方法(赤潮预报的人工神经网络方法 )1. 何为赤潮?何为赤潮? 赤潮,是在一定环境条件下,海水中某些浮游植物、原生动物或细菌在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论