神经网络综述及简单应用实例课件Matlab程序清华大学.ppt
第四讲第四讲 神经网络神经网络 人工神经网络简介人工神经网络简介 神经网络工具箱神经网络工具箱 应用实例应用实例6/10/2023第一部分第一部分 人工神经网络简介人工神经网络简介 以冯以冯诺依曼型计算机为中心的信息处理技术的高诺依曼型计算机为中心的信息处理技术的高速发展,使得计算机在当今的信息化社会中起着十分重速发展,使得计算机在当今的信息化社会中起着十分重要的作用。但是,当用它来解决某些人工智能问题时却要的作用。但是,当用它来解决某些人工智能问题时却遇到了很大的困难。遇到了很大的困难。例如,一个人可以很容易地识别他人的脸孔,但计例如,一个人可以很容易地识别他人的脸孔,但计算机则很难做到这一点。算机则很难做到这一点。大脑是由生物神经元构成的巨型网络,它在本质上大脑是由生物神经元构成的巨型网络,它在本质上不同于计算机,是一种大规模的并行处理系统,它具有不同于计算机,是一种大规模的并行处理系统,它具有学习、联想记忆、综合等能力,并有巧妙的信息处理方学习、联想记忆、综合等能力,并有巧妙的信息处理方法。法。人工神经网络来源于对人脑实际神经网络的模拟人工神经网络来源于对人脑实际神经网络的模拟一、一、神经网络发展历史神经网络发展历史背景知识背景知识 人工神经网络(人工神经网络(Artificial Neural Netwroks,简称,简称ANN)是对人类大脑系统的一种仿真,简单地讲,它是)是对人类大脑系统的一种仿真,简单地讲,它是一个数学模型,可以用电子线路来实现,也可以用计算一个数学模型,可以用电子线路来实现,也可以用计算机程序来模拟,是人工智能研究的一种方法。机程序来模拟,是人工智能研究的一种方法。实际上它是由大量的、功能比较简单的形式神经元实际上它是由大量的、功能比较简单的形式神经元互相连接而构成的复杂网络系统,用它可以模拟大脑的互相连接而构成的复杂网络系统,用它可以模拟大脑的许多基本功能和简单的思维方式。尽管它还不是大脑的许多基本功能和简单的思维方式。尽管它还不是大脑的完美元缺的模型,但它可以通过学习来获取外部的知识完美元缺的模型,但它可以通过学习来获取外部的知识并存贮在网络内,可以解决计算机不易处理的难题,特并存贮在网络内,可以解决计算机不易处理的难题,特别是别是语音和图像的识别、理解、知识的处理、组合优化语音和图像的识别、理解、知识的处理、组合优化计算和智能控制等计算和智能控制等一系列本质上是非计算的问题。一系列本质上是非计算的问题。2什么是人工神经网络什么是人工神经网络 1943年年,美国心理学家美国心理学家W.McCulloch和数学家和数学家W.Pitts在提出了一个简单的神经元模型,即在提出了一个简单的神经元模型,即MP模型。模型。1958年,年,F.Rosenblatt等研制出了等研制出了感知机感知机(Perceptron)。3几个发展阶段几个发展阶段q 第一次热潮第一次热潮(40-60年代未年代未)1982年,美国物理学家年,美国物理学家J.J.Hopfield提出提出Hopfield模模型型,它是一个互联的非线性动力学网络他解决问题的方,它是一个互联的非线性动力学网络他解决问题的方法是一种反复运算的动态过程法是一种反复运算的动态过程,这是符号逻辑处理方法所这是符号逻辑处理方法所不具备的性质不具备的性质.1987年首届国际年首届国际ANN大会在圣地亚哥召大会在圣地亚哥召开,国际开,国际ANN联合会成立,创办了多种联合会成立,创办了多种ANN国际刊物。国际刊物。1990年年12月,北京召开首届学术会议。月,北京召开首届学术会议。q 低潮低潮(70-80年代初年代初)q 第二次热潮第二次热潮1.生物神经元模型生物神经元模型二、二、生物神经元生物神经元 生物神经元模型就是一个简单的信号处理器。生物神经元模型就是一个简单的信号处理器。树突树突是神经元的信号输入通道,接受来自其他神经元的信息。是神经元的信号输入通道,接受来自其他神经元的信息。轴突是神经元的信号输出通道。轴突是神经元的信号输出通道。信息的处理与传递主要发生在信息的处理与传递主要发生在突触突触附近。神经元细附近。神经元细胞体通过树突接受脉冲信号,通过胞体通过树突接受脉冲信号,通过轴突轴突传到传到突触前膜突触前膜。当当脉冲脉冲幅度达到一定强度,即超过其阈值电位后,突触幅度达到一定强度,即超过其阈值电位后,突触前膜将向突触间隙释放神经传递的化学物质前膜将向突触间隙释放神经传递的化学物质(乙酰胆碱乙酰胆碱),使位于突触后膜的离子通道,使位于突触后膜的离子通道(Ion Channel)(Ion Channel)开放,产生开放,产生离子流离子流,从而在突触后膜产生正的或负的电位,称为,从而在突触后膜产生正的或负的电位,称为突突触后电位触后电位。2.生物神经元模型的运行机理生物神经元模型的运行机理 突触有两种:突触有两种:兴奋性突触兴奋性突触和和抑制性突触抑制性突触。前者产生。前者产生正突触后电位正突触后电位,后者产生,后者产生负突触后电位负突触后电位。一个神经元的。一个神经元的各树突和细胞体往往通过突触和大量的其他神经元相连各树突和细胞体往往通过突触和大量的其他神经元相连接。这些突触后电位的变化,将对该神经元产生综合作接。这些突触后电位的变化,将对该神经元产生综合作用,即当这些突触后电位的总和超过某一阎值时,该神用,即当这些突触后电位的总和超过某一阎值时,该神经元便被激活,并经元便被激活,并产生脉冲产生脉冲,而且产生的脉冲数与该电,而且产生的脉冲数与该电位总和值的大小有关。脉冲沿轴突向其他神经元传送,位总和值的大小有关。脉冲沿轴突向其他神经元传送,从而实现了神经元之间信息的传递。从而实现了神经元之间信息的传递。连接权:连接权:求和单元:求和单元:激励函数(响应函数)激励函数(响应函数):三、三、人工神经元模型人工神经元模型1.人工神经元模型的三要素人工神经元模型的三要素 模型中模型中 为输入信号,为输出信号,为输出信号,为神经元的阈值。该模型的数学表达式为:为神经元的阈值。该模型的数学表达式为:2.人工神经元模型的数学表达一人工神经元模型的数学表达一3.人工神经元模型的数学表达二人工神经元模型的数学表达二 阈值函数:阈值函数:分段线性函数:分段线性函数:sigmoid函数:函数:4.激励函数的形式激励函数的形式 前馈型网络前馈型网络:反馈型网络反馈型网络:输输入入层层隐隐层层输输出出层层四、四、网络结构及工作方式网络结构及工作方式1.网络结构网络结构 学习期学习期:各计算单元状态不变,各连接线上权值通过学习来修改各计算单元状态不变,各连接线上权值通过学习来修改 工作期工作期:连接权固定,计算单元状态变化,以达到某种稳定状态连接权固定,计算单元状态变化,以达到某种稳定状态2.工作方式工作方式 有教师学习有教师学习:外界存在一个教师,对给定的一组输入,提供应有的外界存在一个教师,对给定的一组输入,提供应有的输出(标准答案),学习系统可根据实际输出与标准答输出(标准答案),学习系统可根据实际输出与标准答案之间的差值来调整系统参数案之间的差值来调整系统参数学学 习习系系 统统教师教师环境环境输入输入应有应有响应响应+误差信号误差信号实际响应实际响应 五、五、神经网络的学习方法神经网络的学习方法1.学习方式学习方式 无教师学习:无教师学习:学习系统按照环境提供数据的某些统计规律来调节自学习系统按照环境提供数据的某些统计规律来调节自身参数身参数环境环境学学 习习系系 统统动作动作输出输出输入输入状态状态环境环境学习系统学习系统输入输入 强化学习:强化学习:环境对系统输出结果只给出评价信息(奖或惩),系环境对系统输出结果只给出评价信息(奖或惩),系统通过强化受奖动作来改善自身性能统通过强化受奖动作来改善自身性能 考察神经元考察神经元 k 在在 n 时刻的输入和输出时刻的输入和输出 输入:输入:实际输出:实际输出:应有输出:应有输出:由误差信号构造能量函数:由误差信号构造能量函数:其中其中E(.)为求期望算子为求期望算子 求解最优化问题:求解最优化问题:得出系统参数:得出系统参数:2.学习规则学习规则 通常情况下用时刻通常情况下用时刻 n 的瞬时值的瞬时值 代替代替J,即求解最优化问题,即求解最优化问题由数值迭代算法(如最速下降法、模拟退火算法等),可由数值迭代算法(如最速下降法、模拟退火算法等),可得得其中其中 为学习步长为学习步长 神经学家神经学家Hebb提出的学习规则:当某一连接两端的神提出的学习规则:当某一连接两端的神经元同步激活(或同为抑制)时,该连接的强度应增强,经元同步激活(或同为抑制)时,该连接的强度应增强,反之应减弱,数学描述如下:反之应减弱,数学描述如下:其中其中 分别为分别为 两端神经元的状态两端神经元的状态最常用的一种情况是:最常用的一种情况是:3.Hebb学习规则学习规则 对于多层网络,由于有隐层后学习比较困难,限制了对于多层网络,由于有隐层后学习比较困难,限制了多层网络的发展,多层网络的发展,BP算法的出现解决了这一困难。算法的出现解决了这一困难。六、六、BP算法(向后传播算法)算法(向后传播算法)对于多层前馈型网络,网络中有两种信号在流通,对于多层前馈型网络,网络中有两种信号在流通,(1)工作信号,施加的输入信号向前传播直到在输出层产)工作信号,施加的输入信号向前传播直到在输出层产生实际的输出信号,是输入信号和权值的函数生实际的输出信号,是输入信号和权值的函数 (2)误差信号,网络实际输出与应有输出间的差值,它由)误差信号,网络实际输出与应有输出间的差值,它由输出层开始逐层向后传播输出层开始逐层向后传播1.BP算法的原理算法的原理下面推导用于多层前馈型网络学习的下面推导用于多层前馈型网络学习的BP算法算法 下面就逐个样本学习的情况来推导下面就逐个样本学习的情况来推导BP算法算法如右图,令单元如右图,令单元 j 的净输入为的净输入为则则求求 对对 的梯度的梯度 该单元的误差信号为该单元的误差信号为 ,定义单元,定义单元 j 的平的平方误差为方误差为 ,则输出层总的平方误差的瞬时值为,则输出层总的平方误差的瞬时值为:设在第设在第 n 次迭代中某一层的第次迭代中某一层的第 j 个单元的输出为个单元的输出为2.BP算法算法q 当当 j 单元所在层为输出层时单元所在层为输出层时其中其中 称为称为局部梯度局部梯度权值权值 的修正量为的修正量为q 当当 j 单元所在层为隐层时单元所在层为隐层时权值权值 的修正量为的修正量为其中其中第二部分第二部分 神经网络工具箱神经网络工具箱输入层隐层输出层一、一、BP网络网络1.构造多层前向神经网络构造多层前向神经网络net =newff (A,B,C,trainfun )q Matlab命令命令A是一个是一个 n 2的矩阵,第的矩阵,第 i 行元素为输入信号行元素为输入信号 x i 的的最最小值和最大值小值和最大值;q 参数说明参数说明B为一为一 k 维行向量,其元素为各维行向量,其元素为各隐层节点数隐层节点数;trainfun为学习规则采用的为学习规则采用的训练函数训练函数(常见训练函数如下(常见训练函数如下表)。表)。C为一为一k 维字符串行向量,每一分量为对应层神经元的维字符串行向量,每一分量为对应层神经元的激激励函数励函数;函数名函数名功能功能函数名函数名traingd梯度下降法梯度下降法traincgftraingdm势能修正法势能修正法traincgptraingdx自调整学习效率法自调整学习效率法traincgbtrainrp恢复恢复BP法法trainscgFR共轭梯度法共轭梯度法trainbfgBFGS拟牛顿法拟牛顿法PR共轭梯度法共轭梯度法trainoss一步共轭一步共轭+拟牛顿拟牛顿PB共轭梯度法共轭梯度法trainlmLM法法标量共轭梯度法标量共轭梯度法trainbrBayesian规范法规范法2.常见训练函数常见训练函数MATLAB中激励函数为中激励函数为其字符串分别为:其字符串分别为:logsig,tansig,purelin3.激励函数激励函数 除了需要输入除了需要输入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网络的训练与泛化网络的训练与泛化q 网络训练网络训练训训练练跟跟踪踪信信息息训训练练后后网网络络网网络络实实际际输输出出误误差差矩矩阵阵网网络络训训练练函函数数未未经经训训练练网网络络网网络络实实际际输输入入网网络络应应有有输输出出X为为nM矩阵,为输入数据矩阵,矩阵,为输入数据矩阵,M为样本的组数。为样本的组数。Y为为mM矩阵,为输出数据矩阵。矩阵,为输出数据矩阵。训练结束后,对新的输入点数据训练结束后,对新的输入点数据X2,调用,调用sim函数进行泛函数进行泛化,得出这些输入点处的输出矩阵化,得出这些输入点处的输出矩阵Y2.q 数据泛化数据泛化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)是曲线是曲线 上的点。上的点。x=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)nntool命令产生神经网络图形交互界面如下命令产生神经网络图形交互界面如下二、二、神经网络交互式界面神经网络交互式界面第三部分第三部分 应用实例应用实例实例实例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 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)加以识别加以识别 解法一:解法一:建立建立两层前向神经网络两层前向神经网络如如下:下:隐层节点可适量选取(没有具体标准)。隐层节点可适量选取(没有具体标准)。X=为输入矩阵,为输入矩阵,x1对应于触角长,对应于触角长,x2对应于翅膀长。对应于翅膀长。Y=为输出矩阵为输出矩阵规定规定Af对应的应有输出为对应的应有输出为 ,Apf对应的应有输出为对应的应有输出为 输入层隐层输出层以上神经网络模型的以上神经网络模型的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=newff(0,1;0 1,5,2,tansig,tansig);%建立两层前向神经网络建立两层前向神经网络%net.trainParam.goal=0.0000001;%设定训练误差设定训练误差net.trainParam.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对应的应有输出为对应的应有输出为 输入层输出层以上神经网络模型的以上神经网络模型的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(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.何为赤潮?何为赤潮?赤潮,是在一定环境条件下,海水中某些浮游植物、原生动物或细菌在赤潮,是在一定环境条件下,海水中某些浮游植物、原生动物或细菌在短时间内突发性增殖或高度聚集而引起海水变色、发臭并造成危害的现象,短时间内突发性增殖或高度聚集而引起海水变色、发臭并造成危害的现象,它是当今全球主要海洋灾害之一。赤潮是一个历史沿用名,它不一定都是红它是当今全球主要海洋灾害之一。赤潮是一个历史沿用名,它不一定都是红色,实际上是许多赤潮的统称。赤潮发生的原因、种类、数量的不同,水体色,实际上是许多赤潮的统称。赤潮发生的原因、种类、数量的不同,水体会呈现不同的颜色,有红颜色或砖红颜色、绿色、黄色、棕色等。会呈现不同的颜色,有红颜色或砖红颜色、绿色、黄色、棕色等。1999年年5月月15日上海外滩赤潮日上海外滩赤潮1999年年7月月16日辽东湾夜光虫赤潮日辽东湾夜光虫赤潮2.赤潮的成因与危害赤潮的成因与危害 赤潮是一种复杂的生态异常现象,发生的原因比较复杂。赤潮是一种复杂的生态异常现象,发生的原因比较复杂。主要有以下几个方面主要有以下几个方面 1.海水富营养化是赤潮发生的物质基础和首要条件海水富营养化是赤潮发生的物质基础和首要条件 2.水文气象和海水理化因子的变化是引发赤潮重要原因水文气象和海水理化因子的变化是引发赤潮重要原因 3.海水养殖的自身污染亦是诱发赤潮的因素之一海水养殖的自身污染亦是诱发赤潮的因素之一 赤潮对海洋生态平衡的破坏:影响水体的酸碱度和光照度,赤潮对海洋生态平衡的破坏:影响水体的酸碱度和光照度,赤潮生物毒素使海洋动物生理失调或死亡等等;赤潮生物毒素使海洋动物生理失调或死亡等等;赤潮对人类健康和生命的威胁:主要指有毒赤潮产生的生赤潮对人类健康和生命的威胁:主要指有毒赤潮产生的生物毒素通过食物链的传递导致人类的中毒甚至死亡;物毒素通过食物链的传递导致人类的中毒甚至死亡;赤潮给经济发展带来巨大的经济损失赤潮给经济发展带来巨大的经济损失。2007年年5,6月份无锡太湖蓝藻事件的爆发,又一次给我月份无锡太湖蓝藻事件的爆发,又一次给我国水安全敲响警钟。对无锡蓝藻事件的爆发,环保部门认为国水安全敲响警钟。对无锡蓝藻事件的爆发,环保部门认为既有自然因素,也有人为因素。左图为无锡太湖蓝藻爆发的既有自然因素,也有人为因素。左图为无锡太湖蓝藻爆发的情景;右图为由于蓝藻造成的太湖鱼大量死亡。情景;右图为由于蓝藻造成的太湖鱼大量死亡。数据数据 程序程序建立模型(建立模型(四层前向神经网络四层前向神经网络)3.求解求解训练图训练图预测图预测图