《神经网络综述及简单应用实例课件_Matlab程序综述》由会员分享,可在线阅读,更多相关《神经网络综述及简单应用实例课件_Matlab程序综述(49页珍藏版)》请在金锄头文库上搜索。
1、第四讲 神经网络 人工神经网络简介 神经网络工具箱 应用实例 * 第一部分 人工神经网络简介 以冯诺依曼型计算机为中心的信息处理技术的高速 发展,使得计算机在当今的信息化社会中起着十分重要 的作用。但是,当用它来解决某些人工智能问题时却遇 到了很大的困难。 例如,一个人可以很容易地识别他人的脸孔,但计 算机则很难做到这一点。 大脑是由生物神经元构成的巨型网络,它在本质上 不同于计算机,是一种大规模的并行处理系统,它具有 学习、联想记忆、综合等能力,并有巧妙的信息处理方 法。 人工神经网络来源于对人脑实际神经网络的模拟 一、 神经网络发展历史 背景知识 人工神经网络(Artificial Neu
2、ral Netwroks,简称 ANN)是对人类大脑系统的一种仿真,简单地讲,它是 一个数学模型,可以用电子线路来实现,也可以用计算 机程序来模拟,是人工智能研究的一种方法。 实际上它是由大量的、功能比较简单的形式神经元 互相连接而构成的复杂网络系统,用它可以模拟大脑的 许多基本功能和简单的思维方式。尽管它还不是大脑的 完美元缺的模型,但它可以通过学习来获取外部的知识 并存贮在网络内,可以解决计算机不易处理的难题,特 别是语音和图像的识别、理解、知识的处理、组合优化 计算和智能控制等一系列本质上是非计算的问题。 2什么是人工神经网络 1943年,美国心理学家W.McCulloch和数学家W.P
3、itts 在提出了一个简单的神经元模型,即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. 生物神经元模型 二、 生物神经元
4、生物神经元模型就是一个简单的信号处理器。树突 是神经元的信号输入通道,接受来自其他神经元的信息 。轴突是神经元的信号输出通道。 信息的处理与传递主要发生在突触附近。神经元细 胞体通过树突接受脉冲信号,通过轴突传到突触前膜。 当脉冲幅度达到一定强度,即超过其阈值电位后,突触 前膜将向突触间隙释放神经传递的化学物质(乙酰胆碱) ,使位于突触后膜的离子通道(Ion Channel)开放,产生 离子流,从而在突触后膜产生正的或负的电位,称为突 触后电位。 2. 生物神经元模型的运行机理 突触有两种:兴奋性突触和抑制性突触。前者产生 正突触后电位,后者产生负突触后电位。一个神经元的 各树突和细胞体往往通
5、过突触和大量的其他神经元相连 接。这些突触后电位的变化,将对该神经元产生综合作 用,即当这些突触后电位的总和超过某一阎值时,该神 经元便被激活,并产生脉冲,而且产生的脉冲数与该电 位总和值的大小有关。脉冲沿轴突向其他神经元传送, 从而实现了神经元之间信息的传递。 连接权: 求和单元: 激励函数(响应函数) : 三、 人工神经元模型 1. 人工神经元模型的三要素 模型中 为输入信号, 为输出信号, 为神经元的阈值。该模型的数学表达式为: 2. 人工神经元模型的数学表达一 3. 人工神经元模型的数学表达二 阈值函数: 分段线性函数: sigmoid函数: 4. 激励函数的形式 前馈型网络: 反馈型
6、网络: 输 入 层 隐 层 输 出 层 四、 网络结构及工作方式 1. 网络结构 学习期: 各计算单元状态不变,各连接线上权值通过学习来修改 工作期: 连接权固定,计算单元状态变化,以达到某种稳定状态 2. 工作方式 有教师学习: 外界存在一个教师,对给定的一组输入,提供应有的 输出(标准答案),学习系统可根据实际输出与标准答 案之间的差值来调整系统参数 学 习 系 统 教师环境 输入 应有 响应 + 误差信号 实际响应 五、 神经网络的学习方法 1. 学习方式 无教师学习: 学习系统按照环境提供数据的某些统计规律来调节自 身参数 环境 学 习 系 统 动作输出 输入 状态 环境学习系统 输入
7、 强化学习: 环境对系统输出结果只给出评价信息(奖或惩),系 统通过强化受奖动作来改善自身性能 考察神经元 k 在 n 时刻的输入和输出 输入: 实际输出: 应有输出: 由误差信号构造能量函数: 其中E(.)为求期望算子 求解最优化问题: 得出系统参数: 2. 学习规则 通常情况下用时刻 n 的瞬时值 代替J ,即求解最优化问题 由数值迭代算法(如最速下降法、模拟退火算法等),可 得 其中 为学习步长 神经学家Hebb提出的学习规则:当某一连接两端的神 经元同步激活(或同为抑制)时,该连接的强度应增强, 反之应减弱,数学描述如下: 其中 分别为 两端神经元的状态 最常用的一种情况是: 3. H
8、ebb学习规则 对于多层网络,由于有隐层后学习比较困难,限制了 多层网络的发展,BP算法的出现解决了这一困难。 六、 BP算法(向后传播算法) 对于多层前馈型网络,网络中有两种信号在流通, (1)工作信号,施加的输入信号向前传播直到在输出层产 生实际的输出信号,是输入信号和权值的函数 (2)误差信号,网络实际输出与应有输出间的差值,它由 输出层开始逐层向后传播 1. BP算法的原理 下面推导用于多层前馈型网络学习的BP算法 下面就逐个样本学习的情况来推导BP算法 如右图,令单元 j 的净输入为 则 求 对 的梯度 该单元的误差信号为 ,定义单元 j 的平 方误差为 ,则输出层总的平方误差的瞬时
9、值为: 设在第 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
10、维字符串行向量,每一分量为对应层神经元的激 励函数; 函数名功能函数名 traingd梯度下降法traincgf traingdm势势能修正法traincgp traingdx自调调整学习习效率法traincgb trainrp恢复BP法trainscg FR共轭轭梯度法trainbfgBFGS拟拟牛顿顿法 PR共轭轭梯度法trainoss一步共轭轭 + 拟拟牛顿顿 PB共轭轭梯度法trainlmLM法 标标量共轭轭梯度 法 trainbrBayesian规规范法 2. 常见训练函数 MATLAB中激励函数为 其字符串分别为:logsig,tansig,purelin 3. 激励函数 除了需要
11、输入A,B,C,trainfun外,还有些默认的参数可 修改,如下表 4. 可修改参数 参数名功能缺省值值 net.trainParam.goal目标标函数设设定值值0 net.trainParam.epochs最大迭代次数100 net.trainParam.show显显示中间结间结 果的周期25 net.trainParam.lr整批学习习的学习习效率0.01 net.trainParam.mc势势能学习规则习规则 traingdm的势势能率0.9 注:不同版本Matlab的可修改参数列表可能不同。 net, tr, Y1, E = train ( net, X, Y ) 5. BP网络的
12、训练与泛化 q 网络训练 训 练 跟 踪 信 息 训 练 后 网 络 网 络 实 际 输 出 误 差 矩 阵 网 络 训 练 函 数 未 经 训 练 网 络 网 络 实 际 输 入 网 络 应 有 输 出 X为nM矩阵,为输入数据矩阵,M为样本的组数。Y为 mM矩阵,为输出数据矩阵。 训练结束后,对新的输入点数据X2,调用sim函数进行泛 化,得出这些输入点处的输出矩阵Y2. q 数据泛化 Y2=sim(net,X2) 用经过训练的网络对于不是样本集的输入,计算出相应 的输出。 什么是数据泛化? 例4-1 由下面的语句生成一组数据 x 和 y,用神经网络进 行数据拟合 x=0:.1:10; y
13、=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命令产生神经网络图形交互界面如下 二、
14、 神经网络交互式界面 第三部分 应用实例 实例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.08 6只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对应的应有输出为 输 入 层 隐 层 输