人工神经网络_matlab工具箱

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(1)理论研究:ANN模型及其学习算法,试图从 数学上描述ANN的动力学过程,建立相应的ANN模 型,在该模型的基础上,对于给定的学习样本,找 出一种能以较快的速度和较高的精度调整神经元间 互连权值,使系统达到稳定状态,满足学习要求的 算法。 (2)实现技术的研究:探讨利用电子、光学、生 物等技术实现神经计算机的途径。 (3)应用的研究:探讨如何应用ANN解决实际问 题,如模式识别、故障检测、智能机器人等。
3.6 BP网络的训练算法
由于BP网络采用误差反传算法,其实质是一个无 约束的非线性最优化计算过程,在网络结构较大时 不仅计算时间长,而且很容易限入局部极小点而得 不到最优结果。
目前虽已有改进BP法、遗传算法(GA)
和模拟退火算法等多种优化方法用于BP网络
பைடு நூலகம் 前馈神经网络(BP网络)
3.1 前馈神经网络(BP网络)的特点
非线性映照能力:神经网络能以任意精度逼 近任何非线性连续函数。在建模过程中的许 多问题正是具有高度的非线性。 并行分布处理方式:在神经网络中信息是分 布储存和并行处理的,这使它具有很强的容 错性和很快的处理速度。
自学习和自适应能力:神经网络在训练时,能 从输入、输出的数据中提取出规律性的知识, 记忆于网络的权值中,并具有泛化能力,即将 这组权值应用于一般情形的能力。神经网络的 学习也可以在线进行。 数据融合的能力:神经网络可以同时处理定量 信息和定性信息,因此它可以利用传统的工程 技术(数值运算)和人工智能技术(符号处 理)。 多变量系统:神经网络的输入和输出变量的数 目是任意的,对单变量系统与多变量系统提供 了一种通用的描述方式,不必考虑各子系统间 的解耦问题。

网络结构
∑ w11 w12 x ∑ b2 f b3 ∑ b4 ∑ b5 f f b1 f f w21 w22 w23 w24 w25
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) ∑
Network Toobox-> Network Object Reference;
help(net.trainFcn)
help newff Caution: trainlm is the default training function because it is very fast, but it requires a lot of memory to run. If you get an "out-ofmemory" error when training try doing one of these:
研究表明,隐层节点数不仅与输入/输出层 的节点数有关,更与需解决的问题的复杂程 度和转换函数的型式以及样本数据的特性等 因素有关。
在确定隐层节点数时必须满足下列条件: (1)隐层节点数必须小于N-1(其中N为训练 样本数),否则,网络模型的系统误差与训 练样本的特性无关而趋于零,即建立的网络 模型没有泛化能力,也没有任何实用价值。 同理可推得:输入层的节点数(变量数)必 须小于N-1。 (2) 训练样本数必须多于网络模型的连接权 数,一般为2~10倍,否则,样本必须分成几 部分并采用“轮流训练”的方法才可能得到 可靠的神经网络模型。
1.4 网络的泛化(预测) Y=sim(net,X);
net是函数newff建立的数据对象。 X为n*m的矩阵, n为输入变量个数, m为样 本数(即把每个样本是一个行向量)。 Y为k*m的矩阵, k为数出变量个数。
2 人工神经网络(ANN)简介
2.1 人工神经网络(ANN)的研究内容
3.2 BP网络输入/输出变量的确定
BP网络的输入变量即为待分析系统的内生 变量(影响因子或自变量)数,一般根据专 业知识确定。若输入变量较多,一般可通过 主成份分析方法压减输入变量,也可根据剔 除某一变量引起的系统误差与原系统误差的 比值的大小来压减输入变量。 输出变量即为系统待分析的外生变量(系统 性能指标或因变量),可以是一个,也可以 是多个。一般将一个具有多个输出的网络模 型转化为多个具有一个输出的网络模型效果 会更好,训练也更方便。
试构造合适的神经网络模型拟合如下数据点,并预测x=10的值: x y x y
0 0 5 0.5 0.43 5.5 1 0.69 6 1.5 0.74 6.5 0.06 2 0.61 7 0.16 2.5 0.36 7.5 0.21 3 0.08 8 0.2 3.5 4 4.5 -0.4 9.5 -0.01
难以达到的效果。
2.3 人工神经网络研究的局限性

(1)ANN研究受到脑科学研究成果的限制。 (2)ANN缺少一个完整、成熟的理论体系。 (3)ANN研究带有浓厚的策略和经验色彩。 (4)ANN与传统技术的接口不成熟。 一般而言, ANN与经典计算方法相比并非优越, 只有当常规方法解决不了或效果不佳时ANN方法才 能显示出其优越性。尤其对问题的机理不甚了解或 不能用数学模型表示的系统,如故障诊断、特征提取 和预测等问题,ANN往往是最有利的工具。另一方面, ANN对处理大量原始数据而不能用规则或公式描述 的问题, 表现出极大的灵活性和自适应性。
– Slow trainlm training, but reduce memory requirements by setting net.trainParam.mem_reduc to 2 or more. (See help trainlm.) – Use trainbfg, which is slower but more memoryefficient than trainlm. – Use trainrp, which is slower but more memoryefficient than trainbfg.
net.trainParam.epochs:最大训练步数。不过 当误差准则满足时,即使没达到此步数也停 止训练。缺省为100。 net.trainParam.goad:网络误差准则,当误差 小于此准则时停止训练,缺省为0。 net.trainFcn:训练算法。缺省为 ’trainlm’, 即Levenberg-Marquardt算法。还可使用 ‘traingdx’,即带动量的梯度下降算 法;’traincgf’,即共轭梯度法。 其它可看matlab帮助:help->contents-> Neural
3.4 BP网络隐层数的确定
一般认为,增加隐层数可以降低网络误差(也有文 献认为不一定能有效降低),提高精度,但也使网 络复杂化,从而增加了网络的训练时间和出现“过 拟合”的倾向。 Hornik等早已证明:若输入层和输出层采用线性转 换函数,隐层采用Sigmoid转换函数,则含一个隐层 的网MLP络能够以任意精度逼近任何有理函数。显 然,这是一个存在性结论。在设计BP网络时可参考 这一点,应优先考虑3层BP网络(即有1个隐层+输入 层输出层)。一般地,靠增加隐层节点数来获得较低 的误差,其训练效果要比增加隐层数更容易实现。 对于没有隐层的神经网络模型,实际上就是一个线 性或非线性(取决于输出层采用线性或非线性转换 函数型式)回归模型。
-0.17 -0.34 8.5 0.15 9 0.07
-0.35 -0.23 -0.08
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,-0.01]; 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,'.');hold on; plot(x1,y1,'r');
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)来绘制目标 值随着训练步数变化的曲线。
模式识别讲义
第5章 人工神经网络
— matlab神经网络工具箱
黄可坤
嘉应学院
主要内容
0 引例:神经网络函数拟合(预测) 1 matlab神经网络工具箱 2 人工神经网络(ANN)简介 3 前馈神经网络(BP网络) 4 实例:多元神经网络预测 5 实验:神经网络分类
0 引例:神经网络函数拟合(预测)
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隐层 个节点的偏移…
3.5 BP网络隐层节点数的确定
在BP 网络中,隐层节点数的选择非常重要, 它不仅对建立的神经网络模型的性能影响很 大,而且是训练时出现“过拟合”的直接原 因,但是目前理论上还没有一种科学的和普 遍的确定方法。 确定隐层节点数的最基本原则是:在满足
精度要求的前提下取尽可能紧凑的结 构,即取尽可能少的隐层节点数。

2.2 ANN研究的目的和意义

(1)通过揭示物理平面与认知平面之间的映射,了解 它们相互联系和相互作用的机理,从而揭示思维的本 质,探索智能的本源。

(2)争取构造出尽可能与人脑具有相似功能的计算机,
即ANN计算机。

(3)研究仿照脑神经系统的人工神经网络,将在模式
识别、组合优化和决策判断等方面取得传统计算机所
xm,xM分别为列向量(行数为变量个数),分别 存储每个变量的最小值和最大值。 [h1,…,hk]表示网络各层的节点数, 一共有k层. {f1,…,fk}表示各层使用的传输函数,默认 为’tansig’,即Sigmoid函数。还可使用函 数’purelin’,即f(x)=x。 其它可看matlab帮助: help newff
3.3 BP网络数据的预处理
由于BP神经网络的隐层一般采用Sigmoid 转换函数,为提高训练速度和灵敏性以及 有效避开Sigmoid函数的饱和区(即输入值 若大于1,则取为1),一般要求输入数据的 值在0~1之间(每个数都除于最大值)。 如果输出层节点也采用Sigmoid转换函数, 输出变量也必须作相应的预处理,为保证 建立的模型具有一定的外推能力,最好使 数据预处理后的输出变量的值在0.2~0.8之 间。 预处理的数据训练完成后,网络输出的结 果要进行反变换才能得到实际值。
b
w13 ∑ w14 w15
f
y
Sigmoid函数
1 e 2 x f ( x) 1 e 2 x
y = f(w21*f(w11*x+b1) + …+ w25*f(w15*x+b5)+ b )
1 matlab神经网络工具箱
1.1 网络数据对象的建立
net=newff([xm,xM],[h1,…,hk],{f1,…,fk});
相关文档
最新文档