人工神经网络matlab工具箱_第1页
人工神经网络matlab工具箱_第2页
人工神经网络matlab工具箱_第3页
人工神经网络matlab工具箱_第4页
人工神经网络matlab工具箱_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

模式识别讲义第5章人工神经网络 xxx嘉应学院 matlab神经网络工具箱 主要内容 0引例 神经网络函数拟合 预测 1matlab神经网络工具箱2人工神经网络 ANN 简介3前馈神经网络 BP网络 4实例 多元神经网络预测5实验 神经网络分类 0引例 神经网络函数拟合 预测 试构造合适的神经网络模型拟合如下数据点 并预测x 10的值 matlab代码 x 0 0 5 9 5 y 0 0 43 0 69 0 74 0 61 0 36 0 08 0 17 0 34 0 4 0 35 0 23 0 08 0 06 0 16 0 21 0 2 0 15 0 07 net newff 0 9 5 5 1 net trainParam epochs 100 net trainParam goad 0 000001 net train net x y x1 0 0 1 10 y1 sim net x1 figure plot x y holdon plot x1 y1 r f f f f f f x y b1 b2 b3 b4 b5 b 网络结构 y f w21 f w11 x b1 w25 f w15 x b5 b w1 net IW 1 w2 net LW 2 b1 net b 1 b2 net b 2 a tansig w1 x0 b1 y tansig w2 a b2 Sigmoid函数 1matlab神经网络工具箱 1 1网络数据对象的建立 net newff xm xM h1 hk f1 fk xm xM分别为列向量 行数为变量个数 分别存储每个变量的最小值和最大值 h1 hk 表示网络各层的节点数 一共有k层 f1 fk 表示各层使用的传输函数 默认为 tansig 即Sigmoid函数 还可使用函数 purelin 即f x x 其它可看matlab帮助 helpnewff 1 2网络数据对象net的属性 net IW 来自输入层的加权矩阵 BP网络只用net IW 1 表示各个输入变量对第1层各节点的加权矩阵 net LW 来自中间层的加权向量 BP网络用net IW 2 1 表示第1隐层个节点向下一层个节点的加权矩阵 net IW 3 2 表示第2隐层向下一层的加权矩阵 net b 各层的偏移 Net b 1 表示第1隐层个节点的偏移 net trainParam epochs 最大训练步数 不过当误差准则满足时 即使没达到此步数也停止训练 缺省为100 net trainParam goad 网络误差准则 当误差小于此准则时停止训练 缺省为0 net trainFcn 训练算法 缺省为 trainlm 即Levenberg Marquardt算法 还可使用 traingdx 即带动量的梯度下降算法 traincgf 即共轭梯度法 其它可看matlab帮助 help contents NeuralNetworkToobox NetworkObjectReference help net trainFcn helpnewffCaution trainlmisthedefaulttrainingfunctionbecauseitisveryfast butitrequiresalotofmemorytorun Ifyougetan out of memory errorwhentrainingtrydoingoneofthese Slowtrainlmtraining butreducememoryrequirementsbysettingnet trainParam mem reducto2ormore Seehelptrainlm Usetrainbfg whichisslowerbutmorememory efficientthantrainlm Usetrainrp whichisslowerbutmorememory efficientthantrainbfg 1 3网络的训练 net tr Y1 E train net X Y net是函数newff建立的数据对象 X为n m的矩阵 n为输入变量个数 m为样本数 即把每个样本是一个列向量 Y为k m的矩阵 k为数出变量个数 tr返回训练的跟踪信息 tr epochs为训练步数 tr perf为各步目标函数的值 Y1和E返回网络最终的输出和误差 训练结束后可以用plotperf tr 来绘制目标值随着训练步数变化的曲线 1 4网络的泛化 预测 Y sim net X net是函数newff建立的数据对象 X为n m的矩阵 n为输入变量个数 m为样本数 即把每个样本是一个行向量 Y为k m的矩阵 k为数出变量个数 2人工神经网络 ANN 简介 2 1人工神经网络 ANN 的研究内容 1 理论研究 ANN模型及其学习算法 试图从数学上描述ANN的动力学过程 建立相应的ANN模型 在该模型的基础上 对于给定的学习样本 找出一种能以较快的速度和较高的精度调整神经元间互连权值 使系统达到稳定状态 满足学习要求的算法 2 实现技术的研究 探讨利用电子 光学 生物等技术实现神经计算机的途径 3 应用的研究 探讨如何应用ANN解决实际问题 如模式识别 故障检测 智能机器人等 2 2ANN研究的目的和意义 1 通过揭示物理平面与认知平面之间的映射 了解它们相互联系和相互作用的机理 从而揭示思维的本质 探索智能的本源 2 争取构造出尽可能与人脑具有相似功能的计算机 即ANN计算机 3 研究仿照脑神经系统的人工神经网络 将在模式识别 组合优化和决策判断等方面取得传统计算机所难以达到的效果 2 3人工神经网络研究的局限性 1 ANN研究受到脑科学研究成果的限制 2 ANN缺少一个完整 成熟的理论体系 3 ANN研究带有浓厚的策略和经验色彩 4 ANN与传统技术的接口不成熟 一般而言 ANN与经典计算方法相比并非优越 只有当常规方法解决不了或效果不佳时ANN方法才能显示出其优越性 尤其对问题的机理不甚了解或不能用数学模型表示的系统 如故障诊断 特征提取和预测等问题 ANN往往是最有利的工具 另一方面 ANN对处理大量原始数据而不能用规则或公式描述的问题 表现出极大的灵活性和自适应性 3前馈神经网络 BP网络 3 1前馈神经网络 BP网络 的特点 非线性映照能力 神经网络能以任意精度逼近任何非线性连续函数 在建模过程中的许多问题正是具有高度的非线性 并行分布处理方式 在神经网络中信息是分布储存和并行处理的 这使它具有很强的容错性和很快的处理速度 自学习和自适应能力 神经网络在训练时 能从输入 输出的数据中提取出规律性的知识 记忆于网络的权值中 并具有泛化能力 即将这组权值应用于一般情形的能力 神经网络的学习也可以在线进行 数据融合的能力 神经网络可以同时处理定量信息和定性信息 因此它可以利用传统的工程技术 数值运算 和人工智能技术 符号处理 多变量系统 神经网络的输入和输出变量的数目是任意的 对单变量系统与多变量系统提供了一种通用的描述方式 不必考虑各子系统间的解耦问题 3 2BP网络输入 输出变量的确定 BP网络的输入变量即为待分析系统的内生变量 影响因子或自变量 数 一般根据专业知识确定 若输入变量较多 一般可通过主成份分析方法压减输入变量 也可根据剔除某一变量引起的系统误差与原系统误差的比值的大小来压减输入变量 输出变量即为系统待分析的外生变量 系统性能指标或因变量 可以是一个 也可以是多个 一般将一个具有多个输出的网络模型转化为多个具有一个输出的网络模型效果会更好 训练也更方便 3 3BP网络数据的预处理 由于BP神经网络的隐层一般采用Sigmoid转换函数 为提高训练速度和灵敏性以及有效避开Sigmoid函数的饱和区 即输入值若大于1 则取为1 一般要求输入数据的值在0 1之间 每个数都除于最大值 如果输出层节点也采用Sigmoid转换函数 输出变量也必须作相应的预处理 为保证建立的模型具有一定的外推能力 最好使数据预处理后的输出变量的值在0 2 0 8之间 预处理的数据训练完成后 网络输出的结果要进行反变换才能得到实际值 3 4BP网络隐层数的确定 一般认为 增加隐层数可以降低网络误差 也有文献认为不一定能有效降低 提高精度 但也使网络复杂化 从而增加了网络的训练时间和出现 过拟合 的倾向 Hornik等早已证明 若输入层和输出层采用线性转换函数 隐层采用Sigmoid转换函数 则含一个隐层的MLP网络能够以任意精度逼近任何有理函数 显然 这是一个存在性结论 在设计BP网络时可参考这一点 应优先考虑3层BP网络 即有1个隐层 输入层输出层 一般地 靠增加隐层节点数来获得较低的误差 其训练效果要比增加隐层数更容易实现 对于没有隐层的神经网络模型 实际上就是一个线性或非线性 取决于输出层采用线性或非线性转换函数型式 回归模型 3 5BP网络隐层节点数的确定 在BP网络中 隐层节点数的选择非常重要 它不仅对建立的神经网络模型的性能影响很大 而且是训练时出现 过拟合 的直接原因 但是目前理论上还没有一种科学的和普遍的确定方法 确定隐层节点数的最基本原则是 在满足精度要求的前提下取尽可能紧凑的结构 即取尽可能少的隐层节点数 研究表明 隐层节点数不仅与输入 输出层的节点数有关 更与需解决的问题的复杂程度和转换函数的型式以及样本数据的特性等因素有关 在确定隐层节点数时必须满足下列条件 1 隐层节点数必须小于N 1 其中N为训练样本数 否则 网络模型的系统误差与训练样本的特性无关而趋于零 即建立的网络模型没有泛化能力 也没有任何实用价值 同理可推得 输入层的节点数 变量数 必须小于N 1 2 训练样本数必须多于网络模型的连接权数 一般为2 10倍 否则 样本必须分成几部分并采用 轮流训练 的方法才可能得到可靠的神经网络模型 3 6BP网络的训练算法 由于BP网络采用误差反传算法 其实质是一个无约束的非线性最优化计算过程 在网络结构较大时不仅计算时间长 而且很容易限入局部极小点而得不到最优结果 目前虽已有改进BP法 遗传算法 GA 和模拟退火算法等多种优化方法用于BP网络的训练 这些方法从原理上讲可通过调整某些参数求得全局极小点 但在应用中 这些参数的调整往往因问题不同而异 较难求得全局极小点 这些方法中应用最广的是增加了冲量 动量 项的改进BP算法 3 7BP网络的学习率和冲量系数的选择 学习率 影响系统学习过程的稳定性 大的学习率可能使网络权值每一次的修正量过大 甚至会导致权值在修正过程中超出某个误差的极小值呈不规则跳跃而不收敛 但过小的学习率导致学习时间过长 不过能保证收敛于某个极小值 所以 一般倾向选取较小的学习率以保证学习过程的收敛性 稳定性 通常在0 01 0 8之间 增加冲量项 的目的是为了避免网络训练陷于较浅的局部极小点 理论上其值大小应与权值修正量的大小有关 但实际应用中一般取常量 通常在0 1之间 而且一般比学习率要大 3 8BP网络的初始连接权值 BP算法决定了误差函数一般存在 很 多个局部极小点 不同的网络初始权值直接决定了BP算法收敛于哪个局部极小点或是全局极小点 因此 要求计算程序 matlab 必须通过多次 通常是几十次 改变网络初始连接权值求得相应的极小点 才能通过比较这些极小点的网络误差的大小 确定全局极小点 由于Sigmoid转换函数的特性 一般要求初始权值分布在 0 5 0 5之间比较有效 神经网络的训练过程本质上是求非线性函数的极小点问题 因此 即使网络误差相同 各个网络连接权值也可能有较大的差异 这有时也会使各个输入变量的重要性发生变化 检验样本和测试样本的网络计算结果会产生很大变化 即多模式现象 3 9BP网络的性能和泛化能力 因为训练样本的误差可以达到很小 因此 用从总样本中随机抽取的一部分测试样本的误差表示网络模型计算和预测所具有的精度 网络性能 是合理的和可靠的 值得注意的是 判断网络模型泛化能力的好坏 主要不是看测试样本误差大小的本

温馨提示

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

评论

0/150

提交评论