为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

[论文] 逼近sin函数

2017-11-20 12页 doc 28KB 19阅读

用户头像

is_731942

暂无简介

举报
[论文] 逼近sin函数[论文] 逼近sin函数 人工神经网络作业 王辉鹏 (华南理工大学自动化科学与工程学院,2004级硕士研究生,学号200420109189) 1(作业: 设计一个前向网络逼近一个函数,该函数为 ,, y,sin(x,x),x,x,[,,]121222 要求使用两种方法,第一种用随机方法逼近,第二种用统计方法逼近。 设计一个BP网络模型,源代码如下: clear step_length=0.9 %input('请输入步长,建议为0,2: '); N=20 %input('请输入采样点数,建议为20: '); 0 ...
[论文] 逼近sin函数
[] 逼近sin函数 人工神经网络作业 王辉鹏 (华南理工大学自动化科学与工程学院,2004级硕士研究生,学号200420109189) 1(作业: 一个前向网络逼近一个函数,该函数为 ,, y,sin(x,x),x,x,[,,]121222 使用两种方法,第一种用随机方法逼近,第二种用统计方法逼近。 设计一个BP网络模型,源代码如下: clear step_length=0.9 %input('请输入步长,建议为0,2: '); N=20 %input('请输入采样点数,建议为20: '); 0 % input('请输入隐层节点的数目,建议为2,10: '); M=1 ,0.8: '); b=0.7 %input('输入惯性因子,建议为0 % tic,t=cputime; Training=30000; X=zeros(2,N); d=zeros(1,N); y=zeros(1,N); for i=0:N-1; X(1,i+1)=-1.57+3.14*i/N; %X(1,i+1)=2*pi*i/N; X(2,i+1)=-1.57+3.14*i/N; %X(2,i+1)=2*pi*i/N; d(i+1)=0.5+0.4*sin(X(1,i+1)+X(2,i+1)); %d(i+1)=sin(X(1,i+1)+X(2,i+1)); end % plot3(X(1,:),X(2,:),d); % grid on; W=randn(2,M); % 输入层到隐含层的权值(0-1) B=randn(1,M); % 隐含层对应的阈值 V=randn(1,M); % 隐含层到输出层的权值(包含输出层的阈值) V1=randn(1); % 输出层的阈值 P=zeros(M,1); % 隐含层的输入 Q=zeros(M,1); % 隐含层的输出 vv=zeros(M,1); ww1=zeros(M,1); ww2=zeros(M,1); bb=zeros(M,1); for NUM=1:Training; E=0; Emax=0; for k=1:N; % 单个样本 Z=0; P=W'*X(:,k)+B';%对应隐含层输入(M行1列) I=ones(M,1); Q=I./(I+exp(-P)); %对应隐含层输出(M行1列) Z=V*Q+V1; % 输出层的输入 y(k)=1/(1+exp(-Z)); %输出层的输出 e=0.5*(d(k)-y(k))*(d(k)-y(k)); if e>0.0002 ww1=step_length*(d(k)-y(k))*y(k)*(1-y(k))*X(1,k)*((Q.*(I-Q)).*V'); %输入到隐含层的权值的调整,对应节点1(X1)(M*1) ww2=step_length*(d(k)-y(k))*y(k)*(1-y(k))*X(2,k)*((Q.*(I-Q)).*V'); %输入到隐含层的权值的调整,对应节点2(X2)(M*1) bb=step_length*(d(k)-y(k))*y(k)*(1-y(k))*((Q.*(I-Q)).*V'); %对应隐含层阈值的调整,(M*1) W(1,:)=W(1,:)+ww1'; W(2,:)=W(2,:)+ww2'; B=B+bb'; vv=step_length*(d(k)-y(k))*y(k)*(1-y(k))*Q; vv1=step_length*(d(k)-y(k))*y(k)*(1-y(k)); % V=(V'+vv)'; V1=V1+vv1; % %j 隐含层到输出层的权值(包括阈值)的调整 end if Emax0.02 ) end if ( e_av<0.002 ) break end end %Training e_av M NUM plot3(X(1,:),X(2,:),y) grid on; toc,cputime-t; 运行结果如下: 0.75 0.74 0.73 0.72212100-1-1-2-2 图2 用统计方法逼近函数的运行结果 2. 用随机方法逼近y,sin(x,x)函数,源代码如下: 12 clear c1=0.002; c2=0.0002; c3=0.002; b=input('输入一个数,输入1可以设定部分参数,输入其他数自动运行: '); if b==1; s1=input('输入学习的最大步长: '); s2=input('输入学习的最小步长,0到1: '); s=s1; N=input('输入采样点数,建议为20: '); Mmax=input('请输入隐层节点的最大数目,必须大于2: '); a=input('输入学习率,建议输0.8: '); else s1=2; s2=0.8; N=20; Mmax=10; a=0.8; end NUMmax=10000; X=zeros(1,N); Y=zeros(1,N); y=zeros(1,N); for i=0:N-1; X(i+1)=2*pi*i/N; Y(i+1)=0.5+0.4*sin(X(i+1)); end for m=4:Mmax; W=random('exp',0.5,2,m); V=random('exp',0.5,1,m+1); P=zeros(1,m); Q=zeros(1,m+1); Q(m+1)=1; for NUM=1:NUMmax; E=0; Emax=0; for k=1:N; Z=0; for j=1:m; P(j)=W(1,j)*X(k)+W(2,j); Q(j)=1/(1+exp(-P(j))); end for j=1:m+1; Z=Z+V(j)*Q(j); end y(k)=1/(1+exp(-Z)); e=0.5*(Y(k)-y(k))*(Y(k)-y(k)); if ec2 for j=1:m; ww1=s*Q(j)*(1-Q(j))*X(k)*(Y(k)-y(k))*y(k)*(1-y(k))*V(j); ww2=s*Q(j)*(1-Q(j))*(Y(k)-y(k))*y(k)*(1-y(k))*V(j); W(1,j)=W(1,j)+a*ww1; W(2,j)=W(2,j)+a*ww2; end %j for j=1:m+1; vv=s*(Y(k)-y(k))*y(k)*(1-y(k))*Q(j); V(j)=V(j)+a*vv; end %j end if Emax0) u1=0.5+0.4*sin(x); z=0; for j=1:m; P(j)=W(1,j)*x+W(2,j); Q(j)=1/(1+exp(-P(j))); end for j=1:m+1; z=z+V(j)*Q(j); end u2=1/(1+exp(-z)); e2=0.5*(u1-u2)*(u1-u2); u1 u2 e2 end 运行结果如下: 学习模型的学习曲线,***为实际值,绿线为学习值1 0.8 0.6 0.4 0.2 00123456 学习得到的模型对实际值的输出曲线,红线为仿真值1 0.8 0.6 0.4 0.2 00123456 图3 用随机方法逼近函数的运行结果
/
本文档为【[论文] 逼近sin函数】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索