资源描述
人工神经网络实验一表 1中给出了某结构在多种状态下的特征向量, 表 2给出了某时刻结构的特征向量, 请 使用人工神经网络根据表 2中的特征向量判断其所属状态。 输入个数为 10,输出个数为 1,故神经元个数为 1,结构如下图。本题是一个模式识别 问题,采用自组织竞争人工神经网络。 图 1-1 网络结构图画出 6个状态在坐标系中如图 1-2所示。12 -0.200.20.40.60.811.2 Input Vectorsp(1p (2图 1-2 状态向量图二、 实验源程序如下(或见附件中 M 文件 :%创建输入向量X=0 1;0 1 clusters=6; points=10; std_dev=0.05; P=nngenc(X,clusters,points,std_dev; plot(P(1,:,P(2,:,+r title(Input Vectors; xlabel(p(1; ylabel(p(2;%创建自组织竞争神经网络 net=newc(0 1;0 1,6,.1; net=init(net; w=net.IW1; hold off; plot(P(1,:,P(2,:,+r; hold on;plot(w(:,1,w(:,2,ob ; xlabel(p(1; ylabel(p(2; hold off; net.trainParam.epochs=7; hold on; net=init(net; more off; net=train(net,P;TRAINR, Epoch 0/7TRAINR, Epoch 7/7TRAINR, Maximum epoch reached.%训练该网络hold on ;net=init(net;more off ; w=net.IW1; delete(findobj(gcf,color ,0 0 1; hold off plot(P(1,:,P(2,:,+r; hold off; hold on;plot(w(:,1,w(:,2,ob ; xlabel(p(1; ylabel(p(2; hold off;%仿真该网络 p=0.794;0.271; a=sim(net,p; ac=vec2ind(a三、实验结果通过仿真计算得出时刻 1属于状态 1,时刻 2属于状态 3,时刻 3属于状态 4. 各时刻对应 的仿真状态图如下。34 -0.200.20.40.60.811.2 p(1p (2图 1-3 时刻一对应的状态分析图0.40.50.60.70.80.911.1 -0.100.10.20.30.40.50.60.70.80.9p(1p (2图 1-4 时刻二对应的状态分析图5 -0.200.20.40.60.811.2 p(1p (2图 1-5 时刻三对应的状态分析图四、总结本次实验过程使用了函数 (newc 创建自组织竞争神经网络,分别应用函数 (init 和 (train 对网络进行初始化和训练,有效完成了本次模式识别问题。人工神经网络实验二函数逼近已知系统输出 y 与输入 x 的部分对应关系如下表所示, 设计一神经网络, 完成 y=f(x函数 逼近,并将表格填写完整。 假定 ( 0.82sin ,02.6y f x p p =+,训练集为上述表格中 23组数据。 使用 1-5-1BP 网络,隐藏层传递函数使用 Log Sigmoid -函数,输出层使用线性函数。网络 结构图如图 2-1所示。 图 2-1 网络结构图 (图中第一层只画出 2个神经元,共有 5个二 、第一次手工迭代过程在开始 BP 算法前,需要选择网络权值和偏置值的初始值,通常选择较小的随机值。(10.2700.41W -=-(10.4800.13b -=- (200.090.17W =- (200.48b = 现在开始执行算法了,初始输入选 0p =:00a p = 第一层的输出为(0.48111010.1310.270.480.480.38221log 0log 0.410.130.1310.46751e a f W a b sig sig e -+=+=+= -+第二层的输出为(222120.38220.090.170.480.43490.4675a f W a b purelin =+=-+= 误差为 (21sin 0.5651e t a p a =-=+-=算法的下一阶段是计算反向传播敏感性值。在开始反向传播前,需要先求传递函数的导数(1fn 和 (2f n 。 对第一层:(111111nd f n a a dn e -=-+对第二层:(21d fn n dn= 下面可以执行反向传播了,起始点在第二层。(22222220.56511.1302s F n t a f n =-=-=(1111111221122100.090.024021.13020.170.0478301Ta a s Fn w s a a -=- 算法的最后阶段是更新权值,设学习速度 0.1=。(2221100.090.170.11.13020.38220.46750.04320.05284TW W s a =-=-=(222100.480.11.13020.367b b s =-=-=(11100.270.024020.27100.100.410.047830.41T W W s a -=-=-=-(1110.480.024020.4824100.10.130.047830.1252b b s -=-=-=-这就完成了 BP 算法的第一次迭代。下一步可以选择另一个输入 p ,执行算法的第二次 迭代过程。具体见附件中的 M 文件。二、实验源程序%样本输入和目标输出P=0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.0 2.1 2.2 ;T=0.000 0.010 0.040 0.089 0.156 0.240 0.339 0.451 0.574 0.705 0.841 0.980 1.118 1.253 1.380 1.496 1.599 1.686 1.753 1.798 1.819 1.813 1.779; %创建 BP 神经网络net=newff(0 3,5 1,logsig purelin ; %训练次数为 50次net.trainParam.epochs=50; net=train(net,P,T; %仿真该网络Y=sim(net,P; plot(P,T,P,Y,o 图 2-2为网络的逼近效果图,即网络训练结果图。 00.511.522.5 图 2-2 网络训练结果图四、实验结果和分析从网络逼近误差图可以看到该 1-5-1BP 网络能很好的逼近函数 ( y f x =,误差 710-, 从网络逼近效果图可以看到网络响应去曲线可以很精确的表示 ( y f x =。现计算 2.3,2.4,2.5,2.6x =时 (f x 的值。我们之前假定 ( 0.82sin ,02.6y f x p p =+,按该式计算得到:(2.31.629, 2.41.629, 2.51.82, 2.61.629f f f f =而通过数值仿真我们得到 (2.31.7239, 2.41.6604, 2.51.6033, 2.61.5623f f f f = 因为数值仿真的误差很小,可以认为(2.31.7239, 2.41.6604, 2.51.6033, 2.61.5623f f f f =是精确解。0510152025303540455010-810-610-410-210 50 EpochsT r a i n i n g -B l u e Performance is 4.65855e-008, Goal is 0图 2-3 逼近误差图五、实验结论本次实验首先通过假定函数 (y f x =的表达式进行数值计算,通过一次迭代了解 BP 神 经网络的训练过程。 虽然最后数值仿真泛化结果与假定的 (y f x =计算结果有一定的误差, 这个手工迭代的学习过程还是有必要的。 由于仿真 (f x 在 2.3,2.4,2.5,2.6x =时的误差接近 7-人工神经网络实验三网络预测设某信号 sin(1000y randn =,对该信号进行采样,采样频率为 100Hz, 采样持续时间 为 10s , 将采样信号输入一数字滤波器, 期望其输出 (21y n x n x n =-。 请设计一神经 网络完成该滤波器的功能。一、实验过程采用线性神经网络进行自适应预测。 1 问题描述待预测信号 y 的特征为:信号持续时间为 10s ,采样频率为 100Hz 。定义信号 y 为:sin(1,1000X randn =,time=0:0.01:10,信号 X 的形状如图 3-1所示。 12345678910-1-0.8-0.6-0.4-0.200.20.40.60.81系 统 输 入 信 号时 间 (s输 入 信 号图 3-1 输入信号图在每个采样时间点, 该时刻之前的一个采样信号与该时刻的采样信号作为此时网络的输 入,网络的输出就是下一时刻的预测值。 2创建线性神经网络采用具有 1个反馈输入和一个输出的单层线性神经元网络,该网络的输出值即为下一时 刻信号的预测值,线性网络的学习率为 0.1,使用函数 newlin 创建该网络,网络结构如图 3-2所示。图 3-2 网络结构图 3)线性神经网络的性能测试 使用函数 sim 仿真该网络,并比较预测信号与实际信号。网络输出与系统实际系统对比如图 3-3所示。 网网输输网网网网网输输 3 2 1 输输- 目目 0 -1 -2 -3 0 1 2 3 4 5 时时 6 7 8 9 10 图3-3 网络输出与实际输出图 网络输出的预测信号与实际信号的误差曲线如图3-4所示,它更加直观的说明了该网络 的预测能力。 11 误误误误 2 1.5 1 0.5 误误 0 -0.5 -1 -1.5 -2 0 0.5 1 1.5 2 2.5 时时 3 3.5 4 4.5 5 图3-4 误差信号图 二、实验源程序(详细见电子版M文件) X=sin(randn(1,1000;%产生1000个随机点 time=0.01:0.01:10; figure(1,plot(time,X%绘制信号 X 随时间变化的曲线 grid on title(系统输入信号; xlabel(时间(s;ylabel(输入信号; %网络输入是输入信号的2倍和前一次的值 Q=size(X,2; P=zeros(2,Q; P(1,1:Q=2*X(1,1:Q; P(2,2:Q=-X(1,1:(Q-1; %系统输出的测量 T=filter(2 -1,1,X; figure(2,plot(time,T xlabel(时间; ylabel(输出信号; title(系统输出信号; %网络设计 net=newlind(P,T; %网络测试 a=sim(net,P; %绘制出系统输出信号 a 和实际输出 T 12 figure(3,plot(time,a,time,T,+; xlabel(时间; ylabel(输出-目标; title(网络输出与系统实际输出; %网络输出与系统实际输出之间的误差,并绘制误差曲线 e=T-a; figure(4,plot(time,e axis(0 5 -2 2 xlabel(时间; ylabel(误差; title(误差信号; 三、实验结果分析 从误差信号图可以看到网络具有良好的预测性能,误差信号基本为0,该网络达到了实 验目的,很好地利用该时刻及前一时刻的采样值完成下一时刻系统输出值的预测。 13
展开阅读全文