关于BP神经网络MATLAB程序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于BP神经网络MATLAB程序相关的知识,希望对你有一定的参考价值。
我是菜鸟,想求教一下,有几个问题,麻烦高手帮忙了
1、写MATLAB程序的时候,矩阵的一行代表一个样本还是一列代表一个样本?
2、能不能给出一个傻瓜型的程序,想用的时候改一下数据和参数改一下就行了?
3、net_1.trainParam.lr = 0.05;
net_1.trainParam.mc = 0.9; 是什么意思,这些参数是根据什么确定的?
2,matlab中神经网络工具箱就已经很方便了,调用函数和修改参数就可以用了。
3,net_1.trainParam.lr代表学习速率,net_1.trainParam.mc则是动量系数。至于参数的确定,要看具体情况。 参考技术A 1.matlab不同版本好像对样本设置不太一样,你可以试试。我用过的是一行是一个样本。
2.有matlab第三方程序可以下载,只需要修改相关参数就可以实现神经网络的训练。也有相关的书籍已经出版了,好像是思科出的,可以参考。
3.神经网络训练本身是依靠人的经验的,这些参数的确定也是这样。当然要考虑训练样本的实际情况和你所要求的训练精度。具体参数的意义忘记了,可以参考思科的书看看。 参考技术B matlab编写bp神经网络很方便的,这个工作不用像编程序的c什么的那样还要编写算法。这个算法早已经在软件的库里提供了。你只要用一条语句就出来了。把参数,深度和节点固定的往里一代数就可以了。还有一点,注意最后结果的收敛性,神经网络发展一直是曲折前进的,为什么这样,现在不太给力,因为面临着一个收敛的问题,实现起来效果不好。这些程序网上有很多,你借一本基本的神经网络的书里面也有。望采纳。
关于构建一个三层BP神经网络对药品的销售进行预测(程序由matlab编写)
下表为某药品的销售情况,现构建一个如下的三层BP神经网络对药品的销售进行预测:输入层有三个结点,隐含层结点数为5,隐含层的激活函数为tansig;输出层结点数为1个,输出层的激活函数为logsig,并利用此网络对药品的销售量进行预测,预测方法采用滚动预测方式,即用前三个月的销售量来预测第四个月的销售量,如用1、2、3月的销售量为输入预测第4个月的销售量,用2、3、4月的销售量为输入预测第5个月的销售量.如此反复直至满足预测精度要求为止。
月份 1 2 3 4 5 6
销量 2056 2395 2600 2298 1634 1600
月份 7 8 9 10 11 12
销量 1873 1478 1900 1500 2046 1556
close all;
clc;
%p = [2056 2395 2600 2298 1634 1600 1837 1478 1900 2395 2600 2298 1634 1600 1873 1478 1900 1500 2600 2298 1634 1600 1873 1478 1900 1500 2046];
t = [1873 1478 1900 1500 2046 1556];
p = [ 2056 2395 2600 2298 1634 1600];
%--归一化输入输出-- 映射到[0,1]--%
pmax = max(p);
pmin = min(p);
P = (p-pmin)./(pmax-pmin);
tmax = max(t);
tmin = min(t);
T = (t-tmin)./(tmax-tmin);
net =newff(P,T,5,'tansig','purelin','traingdx');
%--设置训练参数--%
net.trainParam.show =50;
net.trainParam.lr = 0.05;
net.trainParam.epochs = 1000;
net.trainParam.goal = 1e-3;
net.divideFcn= '';
[net,tr] = train(net,P,T);
A =sim(net,P);
a =A.*(tmax - tmin)+tmin;
x = 7:12;
figure
plot(x,t,'+');
hold on;
plot(x,a,'or');
hold off;
xlabel('month');
ylabel('**')
legend('实际','预测') 参考技术A 你的样本太少了,可以站内信和我交流下 我精通神经网络 参考技术B 神经网络预测要有学习样本和测试样本,你就是一组数据,是不是太少了! 写是可以,估计误差会很大!
以上是关于关于BP神经网络MATLAB程序的主要内容,如果未能解决你的问题,请参考以下文章