当前位置:文档之家› 神经网络实现函数逼近

神经网络实现函数逼近


























仿真的结果
目标曲线 25 25 逼近曲线
20
20
15 15 10 10 5
500ຫໍສະໝຸດ 0246
-5
0
2
4
6
基于小脑神经网络的函数逼近
模型的建立
输入:单输入 输出:单输出
CMAC模型与映射
11
程序实现

clear clc max=5000;%%%%×î ´óÑ» · ´Î Ê ý c=5;%%%%%Ö Ø ¸ ´¸ ² ¸ ǵÄÇøÓ òµÄÄÚ´æ ¸ öÊ ý data=72;%%%%ÐèÒ ª Ê äÈ ëµÄÊ ý ¾Ý¸ öÊ ý mem=77;%%%%ÐèÒ ª µÄÄÚ´æ ¸ öÊ ý error=0.0001;%%%Î ó² î ¾« È · ¶È alpha=0.3;%%%%µ÷Õ û² ½³ ¤ A=uint8(zeros(data,c));%%%Ó ÃÓ Ú´æ ´¢ ÿ¸ öÊ ý ¾ÝË ù¼¤ » î µÄÄÚ´æ ¿Õ ¼äµØ Ö · w=rand(1,22);%%%%³ õÊ ¼» ¯ 鬅 µ %%%%%%%%Çó³ öѵÁ· Ê ý ¾ÝµÄÔ ¤ ² âÖ µ%%%%%%%% for i=1:data x(i)=i/360*pi*10; d(i)=x(i).*x(i); end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% for i=1:data sw(i)=i; end for i=1:c for j=1:data temp=0; for k=1:i-1 temp=ceil(k/c+1)+temp; end A(j,i)=temp+(j-i)/c+1;
网络模型
隐层
输出 输入
模型的实现

close all clear echo on clc P = [0:0.02:5]; randn('seed',10000); T = P.*P; subplot(1,2,1),plot(P,T,'k--'); title('Ä¿±êÇúÏ ß ') hold on; grid on; plot(P,P.*P,':'); net=newff(minmax(P),[10,1],{'tansig','purelin'}); net.trainFcn='trainlm'; net.trainParam.epochs = 300; net.trainParam.goal = 1e-6; net=init(net); [net,tr]=train(net,P,T); A = sim(net,P); E = T - A; MSE=mse(E) % » æ Ö Æ Æ ¥Åä½á¹ ûÇúÏ ß subplot(1,2,2);plot(P,A,P,T,'r*',P,P.*P,':'); title('±Æ ½üÇúÏ ß ') hold on; grid on;

























仿真结果
目标曲线 25 40 35 20 30 25 15 20 15 10 10 5 0 0 -5 逼近曲线
5
0
2
4
6
0
20
40
60
80
神经网络实现函数逼近
目标与要求

基于BP神经网络的函数逼近
模型的建立
输入:单输入 输出:单输出 隐层数:1层 隐层神经元个数:10
BP神经网络简介

BP(Error Back Propagation Network)是目前应用最为广泛和成功的神经网 络之一。它是在1986年,由Rumelhant和Mcllelland提出的。是一种多层网络 的“逆推”学习算法。其基本思想是,学习过程由信号的正向传播与误差的 反向传播两个过程组成。正向传播时,输入样本从输入层传入,经隐层逐层 处理后,传向输出层。若输出层的实际输出与期望输出(教师信号)不符, 则转向误差的反向传播阶段。误差的反向传播是将输出误差以某种形式通过 隐层向输入层逐层反传,并将误差分摊给各层的所有单元,从而获得各层单 元的误差信号,此误差信号即作为修正各单元权值的依据。这种信号正向传 播与误差反向传播的各层权值调整过程,是周而复始地进行的。权值不断调 整过程,也就是网络的学习训练过程。此过程一直进行到网络输出的误差减 少到可以接受的程度,或进行到预先设定的学习次数为止。
相关主题