MATLAB神经网络工具箱

上传人:飞*** 文档编号:48572594 上传时间:2018-07-17 格式:PPT 页数:34 大小:734KB
返回 下载 相关 举报
MATLAB神经网络工具箱_第1页
第1页 / 共34页
MATLAB神经网络工具箱_第2页
第2页 / 共34页
MATLAB神经网络工具箱_第3页
第3页 / 共34页
MATLAB神经网络工具箱_第4页
第4页 / 共34页
MATLAB神经网络工具箱_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《MATLAB神经网络工具箱》由会员分享,可在线阅读,更多相关《MATLAB神经网络工具箱(34页珍藏版)》请在金锄头文库上搜索。

1、MATLAB神经网络工具箱 介绍神经元模型Neuron Model: 多输入,单输出,带偏置 输入:R维列向量 权值:R维行向量阈值:标量 求和单元 传递函数 输出常用传递函数(激发函数)aWp-b1-1u阈值函数MATLAB函数: hardlimMATLAB函数: hardlims双极形式线性函数uPurelin Transfer Function :anMATLAB函数: purelinSigmoid函数uSigmoid Function :u特性: 值域a(0,1)非线性,单调性 无限次可微 |n|较小时可近似线性 函数 |n|较大时可近似阈值 函数MATLAB函数: logsig(对数

2、), tansig(正切)对数Sigmoid函数正切Sigmoid函数单层神经网络模型R维输入, S个神经元的单层神经网络模型多层神经网络模型前馈神经网络u前馈神经网络(feed forward NN):各神经元 接受前级输入,并输出到下一级,无反馈, 可用一有向无环图表示。u前馈网络通常分为不同的层(layer),第i层的 输入只与第i-1层的输出联结。u可见层:输入层(input layer)和输出层(output layer)u隐藏层(hidden layer) :中间层感知器(perceptron):u 单层前馈网络u 传递函数为阈值函数u主要功能是模式分类感知器的生成函数newp用来

3、生成一个感知器神经网络net = newp( pr, s, tf, lf ) net: 函数返回参数,表示生成的感知器网络 pr: 一个R2矩阵, 由R维输入向量的每维最小值和最大值组成 s: 神经元的个数 tf: 感知器的传递函数, 默认为hardlim, 可选hardlims lf: 感知器的学习函数,默认为learnp, 可选learnpnnet = newp(-2,+2;-2,+2,2) %生成一个二维输入,两个神经元的感知器newp感知器的权值和阈值初始化p newp默认权值和阈值为零(零初始化函数initzero).net = newp(-2,+2;-2,+2,2); W=net.

4、IW1,1 %显示网络的权值b=net.b1 %显示网络的阈值W =0 00 0b =0 0 p 改变默认初始化函数为随机函数randsnet.inputweights1,1.initFcn = rands; net.biases1.InitFcn = rands;net =init(net); %重新初始化p 直接初始化定义权值和阈值net.IW1,1=1 2; net.b1=1感知器学习u感知器学习算法权值增量: 阈值增量: 权值更新: 阈值更新: u算法改进输入样本归一化权值和阈值训练与学习函数trainnet=train(net, P, T)设计好的感知器并不能马上投入使用. 通过样本

5、训练, 确定感知器的权值和阈值.输入向量目标向量被训练网络net.trainParam.epochs=10 ; %预定的最大训 练次数为10, 感知器经过最多训练10次后停止,adaptnet=adapt(net, P, T)自适应训练函数权值和阈值学习函数learnpdW=learnp(W,P,Z,N,A,T,E,D,gW,gA,LP,LS)dW:权值或阈值的增量矩阵 W:权值矩阵或阈值向量 P:输入向量 T:目标向量 E:误差向量其他可以忽略,设为 learnpn归一化学习函数网络仿真函数sima = sim(net, P)输入向量网络输出 分类结果显示绘图函数plotpvplotpv(P

6、,T)plotpcplotpc(W,b)画输入向量的图像画分类线根据给定的样本输入向量P和目标向量T, 以及需分 类的向量组Q, 创建一个感知器, 对其进行分类. 例: 创建一个感知器P=-0.5 -0.6 0.7;0.8 0 0.1; %已知样本输入向量T=1 1 0; % 已知样本目标向量net=newp(-1 1;-1 1,1); %创建感知器handle=plotpc(net.iw1,net.b1); %返回划线的句柄net.trainParam.epochs=10; % 设置训练最大次数net=train(net,P,T); %训练网络Q=0.6 0.9 -0.1;-0.1 -0.5

7、 0.5; %已知待分类向量Y=sim(net,Q); % 二元分类仿真结果 figure; % 新建图形窗口plotpv(Q,Y); % 画输入向量handle=plotpc(net.iw1,net.b1,handle) %画分类线BP网络l 多层前馈网络l 主要功能: 函数逼近, 模式识别, 信息分类,数据压缩l 传递函数:隐层采用S形函数,输出层S形函数或线性函数BP网络的生成newff函数newff用来生成一个BP网络net=newff(PR,S1 S2.SN,TF1 TF2. TFN,BTF,BLF,PF)PR: 一个R2矩阵, 由R维输入向量的每维最小值和最大值组成Si: 第i层的

8、神经元个数TFi: 第i层的传递函数, 默认为tansigBTF: 训练函数, 默认为trainlmBLF: 学习函数, 默认为learngdmPF: 性能函数, 默认为mse net=newff(0,10;-1,2,5,1,tansig,purelin,trainlm);%生成一个两层BP网络,隐层和输出层神经的个数为5和1, 传递函数分别为 tansig和purelin, 训练函数为trainlm, 其他默认BP网络的初始化newff 函数在建立网络对象的同时, 自动调用初始化函数, 根据缺省的参数对网络的连接权值和阈值.使用函数init可以对网络进行自定义的初始化. 通过选择 初始化函数

9、, 可对各层连接权值和阈值分别进行不同的初始 化.BP网络的学习规则权值和阈值的调节规则采用误差反向传播算法(back propagation). 反向 传播算法分二步进行,即正向传播和反向传播。 1正向传播输入的样本从输入层经过隐单元一层一层进行处理,通过所有的隐层 之后,则传向输出层;在逐层处理的过程中,每一层神经元的状态只对 下一层神经元的状态产生影响。在输出层把现行输出和期望输出进行比 较,如果现行输出不等于期望输出,则进入反向传播过程。2反向传播反向传播时,把误差信号按原来正向传播的通路反向传回,并对每个 隐层的各个神经元的权系数进行修改,以望误差信号趋向最小。BP算法实质是求取误差

10、函数的最小值问题 。这种算法采用 非线性规划中的最速下降方法,按误差函数的负梯度方向 修改权系数。BP网络的快速学习算法与选择学习算法适用问题类 型收敛性能占用存储空间其他特点trainlm函数拟合收敛快,误差小大性能随网络规 模 增大而变差trainrp模式分类收敛最快较小性能随网络训练 误差减小而变差trainscg函数拟合 模式分类收敛较 快 性能稳定中等尤其适用于网络 规模较大的情况trainbfg函数拟合收敛较 快较大计算量岁网络规 模的增大呈几何 增长traingdx模式分类收敛较 慢较小适用于提前停止 的方法MATLAB神经网络工具箱对常规BP算法进行改进,提供 了一系列快速算法

11、,以满足不同问题的需要BP网络的训练利用已知的”输入目标”样本向量数据对网络进行训练 ,采用train 函数来完成. 训练之前, 对训练参数进行设置训练参数 参数含义 默认值net.trainParam.epochs训练 步数100net.trainParam.show显示训练结 果的间隔步数25net.trainParam.goal训练 目标误 差0net.trainParam.time训练 允许时间INfnet.trainParam.lr学习率0.01net = train(net, P, T)BP网络的设计(1) 网络层数已经证明,单隐层的BP网络可以实现任意非线性映射. BP网络的隐层

12、数一般不超过两层. 输入层的节点数输入层接收外部的输入数据, 节点数取决于输入向量 的维数 输出层的节点数输出层的节点数取决于输出数据类型和该类型所需 的数据大小.对于模式分类问题,节点数为BP网络的设计(2) 隐层的节点数隐层的节点数与求解问题的要求,输入输出单元数多 少有关. 对于模式识别/分类的节点数可按下列公式设计 传递函数隐层传递函数采用S型函数, 输出层采用S型函数或 线性函数 训练方法及其参数选择针对不同应用, BP网络提供了多种训练学习方法.其中为隐层节点数,为输入节点数 ,为110之间的整数BP网络设计实例采用动量梯度下降算法训练BP网络. 训练样本%定义训练样本 p=-1

13、-1 3 1;-1 1 5 -3; t=-1 -1 1 1; %创建一个新的BP网络 net=newff(minmax(p),3 1,tansig,purelin,traingdm); %设置训练参数 net.trainParam.epochs=1000; net.trainParam.goal=0.001; net.trainParam.show=50; net.trainParam.lr=0.05; net.trainParam.mc=0.9;%动量因子,缺省为0.9 net=train(net,p,t); % 训练网络 A=sim(net,p) %网络仿真目标线训练误差变化曲线训练误差变

14、化曲线(每次不同)实验2: BP网络用于曲线拟合 要求设计一个简单的BP网络,实现对非线性函数 的逼近。通过改变该函数的参数以及BP网络隐层 神经元的数目,来观察训练时间以及训练误差的 变化情况。Step1: 将要逼近的非线性函数设为正弦函数k = 1; p = -1:.05:1;t = sin(k*pi*p);plot(p,t,-)title(要逼近的非线性函数);xlabel(时间);ylabel(非线性函数); Step 2: 网络建立 应用函数newff()建立BP网络结构,为二层BP 网络。隐层神经元数目n可以改变,暂设为 10,输出层有一个神经元。选择隐层和输 出层神经元传递函数分别为tansig函数和 purelin函数,网络训练算法采用trainlmn = 10; net = newff(minmax(p), n,1, tansig purelin, trainlm); % 对于该初始网络,可以应用sim()函数观察网络输出 y1 = sim(net,p); % 同时绘制网络输出曲线,并与原函数相比较 figure; plot(p,t,-,p,y1,-) title(未训练网络的输出结果); xlab

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 其它文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号