用matlab编BP神经网络预测程序

求用matlabBP神经网络预测神经网络预测程序
求一用matlab编的程序
P=[。。。];输入T=[。。。];输出
创建一个新的前向神经网络
net_1=newff(minmax(P),[10,1],{'tansig','purelin'},'traingdm')
当前输入层权值和阈值
inputWeights=net_1.IW{1,1}
inputbias=net_1.b{1}
当前网络层权值和阈值
layerWeights=net_1.LW{2,1}
layerbias=net_1.b{2}
设置训练参数
ainParam.show = 50;
ainParam.lr = 0.05;
= 0.9;
ainParam.epochs = 10000;
al = 1e-3;
调用 TRAINGDM 算法训练 BP 网络
[net_1,tr]=train(net_1,P,T);
BP 网络进行仿真
A = sim(net_1,P);
计算仿真误差
E = T - A;
MSE=mse(E)
x=[。。。]';%测试
sim(net_1,x)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
不可能啊 2009
 28
   


对初学神经网络者的小提示



第二步:掌握如下算法:
2.最小均方误差,这个原理是下面提到的神经网络学习算法的理论核心,入门者要先看《高等数学》(高等教育出版社,同济大学版)第8章的第十节:最小二乘法
3.在第2步的基础上看Hebb学习算法、SOMK-近邻算法,上述算法都是在最小均方误差基础上的改进算法,参考书籍是《神经网络原理》(机械工业出版社,Simon Haykin著,中英文都有)、《人工神经网络与模拟进化计算》(清华大学出版社,阎平凡,张长水著)、《模式分类》(机械工业出版社,  Richard O. Duda等著,中英文都有)、《神经网络设计》(机械工业出版社,Martin T. Hargan等著,中英文都有)。
4.ART(自适应谐振理论),该算法的最通俗易懂的读物就是《神经网络设计》(机械工业出版社,Martin T. Hargan等著,中英文都有)的第1516章。若看理论分析较费劲可直接编程实现一下16.2.7节的ART1算法小节中的算法.
4.BP算法,初学者若对误差反传的分析过程理解吃力可先跳过理论分析和证明的内容,直接利用最后的学习规则编个小程序并测试,建议看《机器学习》(机械工业出版社,Tom M. Mit
chell著,中英文都有)的第4章和《神经网络设计》(机械工业出版社,Martin T. Hargan等著,中英文都有)的第11章。


BP神经网络Matlab实例(1
分类:Matlab实例

采用Matlab工具箱函数建立神经网络,对一些基本的神经网络参数进行了说明,深入了解参考Matlab帮助文档。

% 1 采用动量梯度下降算法训练 BP 网络。
% 训练样本定义如下:
% 输入矢量为 
% p =[-1 -2 3 1
%    -1 1 5 -3]
% 目标矢量为  t = [-1 -1 1 1]
close all
clear
clc
% ---------------------------------------------------------------
% NEWFF——生成一个新的前向神经网络,函数格式:
% net = newff(PR,[SNl],{TFNl},BTF,BLF,PF) takes,
% PR -- R x 2 matrix of min and max values for R input elements
% (对于R维输入,PR是一个R x 2 的矩阵,每一行是相应输入的边界值)
% Si -- i层的维数
% TFi -- i层的传递函数, default = 'tansig'
% BTF -- 反向传播网络的训练函数, default = 'traingdx'
% BLF -- 反向传播网络的权值/阈值学习函数, default = 'learngdm'
% PF -- 性能函数, default = 'mse'
% ---------------------------------------------------------------
% TRAIN—— BP 神经网络进行训练,函数格式:
% train(NET,P,T,Pi,Ai,VV,TV),输入参数:
% net -- 所建立的网络
% P -- 网络的输入
% T -- 网络的目标值, default = zeros
% Pi -- 初始输入延迟, default = zeros
% Ai -- 初始网络层延迟, default = zeros
% VV -- 验证向量的结构, default = []
% TV -- 测试向量的结构, default = []
% 返回值:
% net -- 训练之后的网络
% TR -- 训练记录(训练次数及每次训练的误差)
% Y -- 网络输出
% E -- 网络误差
% Pf -- 最终输入延迟
% Af -- 最终网络层延迟
% ---------------------------------------------------------------
% SIM—— BP 神经网络进行仿真,函数格式:
% [Y,Pf,Af,E,perf] = sim(net,P,PiAi,T)
% 参数与前同。
% ---------------------------------------------------------------
%
% 定义训练样本
% P 为输入矢量
echo on
P=[-1, -2,  3,  1;
  -1,  1,  5, -3];
% T 为目标矢量
T=[-1, -1, 1, 1];
% 创建一个新的前向神经网络
net=newff(minmax(P),[3,1],{'tansig','purelin'},'traingdm')
% ---------------------------------------------------------------
% 训练函数:traingdm,功能:以动量BP算法修正神经网络的权值和阈值。
% 它的相关特性包括:
% epochs:训练的次数,默认:100
% goal:误差性能目标值,默认:0
% lr:学习率,默认:0.01
% max_fail:确认样本进行仿真时,最大的失败次数,默认:5
% mc:动量因子,默认:0.9
% min_grad:最小梯度值,默认:1e-10
% show:显示的间隔次数,默认:25
% time:训练的最长时间,默认:inf
% ---------------------------------------------------------------
% 当前输入层权值和阈值
inputWeights=net.IW{1,1}
inputbias=net.b{1}
% 当前网络层权值和阈值
layerWeights=net.LW{2,1}
layerbias=net.b{2}
% 设置网络的训练参数
ainParam.show = 50;
ainParam.lr = 0.05;
= 0.9;
ainParam.epochs = 1000;
al = 1e-3; 
% 调用 TRAINGDM 算法训练 BP 网络
[net,tr]=train(net,P,T);
% BP 网络进行仿真
A = sim(net,P)
% 计算仿真误差
E = T - A
MSE=mse(E)
echo off
figure;
plot((1:4),T,'-*',(1:4),A,'-o')

本文发布于:2024-09-23 03:27:45,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/360876.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:神经网络   算法   训练   误差   网络   机械
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议