声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1278|回复: 2

[编程技巧] 我的一个神经网络程序,比较简单,包含了神经网络的一些基本命令,供大家参考

[复制链接]
发表于 2008-7-13 15:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
在这个神经网络里,输入向量和输出向量相同,通过多层BP神经网络,可以找出这些变量之间的内在关系。在这个例子里,向量各变量都是时间t的函数,通过这个神经网络可以把这个隐藏变量找出来并表示出来。
这个程序用到了神经网络的一些基本功能,供大家参考。

  1. clear all;
  2. t=1:0.001:1.3;
  3. for i=302:600
  4.     t(i)=1.6-0.001*i;
  5. end
  6. y=[t.*t+0.05;2*t;t.^3-1;5*t+0.2];  %用时间变量t构造向量y
  7. y01=y./mean(mean(y));           %数据归一化
  8. y01=y01./4;
  9. noise=rand(4,600).*mean(mean(y01)).*0.01;    %噪声
  10. input=y01+noise;
  11. output=input;
  12. net=newff([0 1;0 1;0 1;0 1],[10 1 10 4],{'tansig' 'tansig' 'tansig' 'tansig'},'trainlm');  %构造神经网络
  13. net.trainparam.goal=1e-6;
  14. net.trainparam.epochs=5000;
  15. [net,tr]=train(net,input,output);            %训练神经网络
  16. %以下输出环境变量
  17. for i=1:600
  18. b01(:,i)=net.b{1};
  19. end
  20. t01=tansig(net.iw{1,1}*input+b01);
  21. for i=1:600
  22. b02(:,i)=net.b{2};
  23. end
  24. t02=tansig(net.lw{2,1}*t01+b02);  %t02即是通过神经网络找出的隐藏变量
  25. plot(-t02);
  26. %后处理
  27. yy=sim(net,input);
  28. com=yy-input;
  29. te=sum(sum(com.^2))/2400;    %误差
复制代码

[ 本帖最后由 jt1937 于 2008-7-13 15:10 编辑 ]

评分

1

查看全部评分

回复
分享到:

使用道具 举报

 楼主| 发表于 2009-9-3 09:30 | 显示全部楼层
怎么没人关注啊!
发表于 2009-9-9 10:44 | 显示全部楼层
呵呵,,我学习你的了,,,
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-18 07:05 , Processed in 0.059201 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表