神经网络中的BP算法和Elman算法
2016-03-05 16:36
567 查看
clear all; %输入数据 P = [0.4413 0.4707 0.6953 0.8133 0.4379 0.4677 0.6981 0.8002 0.4517 0.4725 0.7006 0.8201; 0.4379 0.4677 0.6981 0.8002 0.4517 0.4725 0.7006 0.8201 0.4557 0.4790 0.7019 0.8211; 0.4517 0.4725 0.7006 0.8201 0.4557 0.4790 0.7019 0.8211 0.4601 0.4911 0.7101 0.8298]'; %输出数据 T = [0.4557 0.4790 0.7019 0.8211; 0.4601 0.4911 0.7101 0.8298; 0.4612 0.4845 0.7188 0.8312]'; %创建神经网络 net_1 = newff(minmax(P),[12,4],{'tansig','purelin'},'traingdm'); %设置训练参数 net_1.trainParam.show = 50; net_1.trainParam.lr = 0.05; net_1.trainParam.mc = 0.9; net_1.trainParam.epochs = 10000; net_1.trainParam.goal = 1e-3; %训练网络 [net_1,tr] = train(net_1,P,T); %使用训练好的网络,自定义输入 A = sim(net_1,P); %理想输出与训练输出的结果进行比较 E = T - A; %计算误差 MSE = mse(E) %第二组验证 P1 = [0.4557 0.4790 0.7019 0.8211 0.4601 0.4911 0.7101 0.8298 0.4612 0.4845 0.7188 0.8312]'; T1 = [0.4615 0.4891 0.7201 0.8330]'; A1 = sim(net_1,P1); E1 = T1 - A1; MSE1 = mse(E1)
%Elman神经网络预测空调负荷(仿BP) clear all; %输入数据 P = [0.4413 0.4707 0.6953 0.8133 0.4379 0.4677 0.6981 0.8002 0.4517 0.4725 0.7006 0.8201; 0.4379 0.4677 0.6981 0.8002 0.4517 0.4725 0.7006 0.8201 0.4557 0.4790 0.7019 0.8211; 0.4517 0.4725 0.7006 0.8201 0.4557 0.4790 0.7019 0.8211 0.4601 0.4911 0.7101 0.8298]'; %输出数据 T = [0.4557 0.4790 0.7019 0.8211; 0.4601 0.4911 0.7101 0.8298; 0.4612 0.4845 0.7188 0.8312]'; %创建神经网络 net_1 = newelm(minmax(P),[12,4],{'tansig','purelin'},'traingdm'); %设置训练参数 net_1.trainParam.show = 50; net_1.trainParam.lr = 0.05; net_1.trainParam.mc = 0.9; net_1.trainParam.epochs = 10000; net_1.trainParam.goal = 1e-3; %训练网络 [net_1,tr] = train(net_1,P,T); %第1组验证 %使用训练好的网络,自定义输入 A1 = sim(net_1,P); %理想输出与训练输出的结果进行比较 E1 = T - A1; %计算误差 MSE = mse(E1) %第2组验证(从输入样本中抽取一组输入P2,对应的输出样本中抽出T2) P2 = [0.4517 0.4725 0.7006 0.8201 0.4557 0.4790 0.7019 0.8211 0.4601 0.4911 0.7101 0.8298]'; T2 = [0.4612 0.4845 0.7188 0.8312]'; A2 = sim(net_1,P2); E2 = T2 - A2; MSE1 = mse(E2) %第3组验证 (本组输入P3和输出T3不是从训练样本中取得的,得到的误差有点大) P3 = [0.4557 0.4790 0.7019 0.8211 0.4601 0.4911 0.7101 0.8298 0.4612 0.4845 0.7188 0.8312]'; T3 = [0.4615 0.4891 0.7201 0.8330]'; A3 = sim(net_1,P3); E3 = T3 - A3; MSE1 = mse(E3)
相关文章推荐
- 网络-NSURLSession应用和原理
- NSRULConnection网络应用
- NSRULConnection网络应用原理
- http和socket之长连接和短连接
- Universal-Image-Loader,android-Volley,Picasso、Fresco和Glide五大Android开源组件加载网络图片的优缺点比较
- nginx与ios实现https双向认证
- 登山-C#-关于TcpListener的AcceptTcpClient()方法造成线程阻塞,进而程序无法彻底关闭的问题
- Web缓存基础:术语、HTTP报头和缓存策略
- tcp数据发送过快的处理
- 【翻译+原创】Deep Learning Face Representation from Predicting 10,000 Classes 论文笔记
- Linux TCP/IP 协议栈调优
- Linux TCP/IP 协议栈调优
- TCP/IP 相关知识点与面试题集(转)
- 简单的 winsocket TCP通信
- Linux(Centos)中tcpdump参数用法详解(转)
- OkHttp的使用
- TCP面向连接中的“连接”究竟是什么,可靠与不可靠(转)
- TCp/IP实验一
- 自写网络流24题总结
- AFNetworking使用