初学者对BP神经网络的疑惑

本人是新手,刚刚接触神经网络,看到书上有一个利用BP算法进行药物销售预测的程序,就自己试了一下,但是发现很多问题。程序如下:%药物出售情况%月份1234567891011... 本人是新手,刚刚接触神经网络,看到书上有一个利用BP算法进行药物销售预测的程序,就自己试了一下,但是发现很多问题。程序如下:
%药物出售情况
%月份 1 2 3 4 5 6 7 8 9 10 11 12
%销量 2056 2395 2600 2298 1634 1600 1873 1478 1900 1500 2046 1556
%输入层3节点,隐含层5节点,输出层1节点
clear;
clc;
P=[0.7908 0.9212 1.0000; %以每三个月的销售量归一化处理后作为输入
0.9212 1.0000 0.8838;
1.0000 0.8838 0.6285;
0.8838 0.6285 0.6154;
0.6285 0.6154 0.7204;
0.6154 0.7204 0.5685;
0.7204 0.5685 0.7308;
0.5685 0.7308 0.5769;
0.7308 0.5769 0.7869;
];
T=[0.8838 0.6285 0.6154 0.7204 0.5685 0.7308 0.5769 0.7869 0.5985]; %以第四个月的销售粮归一化处理后作为目标向量
net=newff([0 1;0 1;0 1],[10,1],{'tansig','logsig'},'traingd'); %创建一个BP神经网络,每一个输入向量的取值范围为[0,1],隐含层有5个神经元,输出层有1个神经元,隐含层的激活函数为tansig,输出层的激活函数为logsig,训练函数为梯度下降函数
net.trainParam.epochs=15000;
net.trainParam.goal=0.01;
net.trainParam.lr=0.015; %设置学习速率为0.015
net=train(net,P',T); %训练
sim(net,P') %仿真,自己加的
仿真结果为0.6823 0.7110 0.6882 0.5831 0.6717 0.7344 0.6443 0.7559 0.6459 。
我就是用输入的样本来仿真的,为什么结果与期望输出相差这么大呢?是不是我的程序有问题,还是说BP网络精度就是这样,有没有什么提高精度的方法呢?
当样本数多于一个的时候,算法到底是怎么算的啊?是不是用一个样本调整好权值之后再换下一个样本,这样的话之前调整好的权值不就又变了吗?
展开
 我来答
anxiaodele
2010-10-06 · 超过59用户采纳过TA的回答
知道小有建树答主
回答量:132
采纳率:0%
帮助的人:124万
展开全部
神经网络有一定的误差,不过对于这个简单的逼近来说应该不会有那么大误差吧,应该是你程序问题,有特定的归一化函数,把原始数据用归一化函数处理试试(具体什么函数我忘了)
luoz924
2010-10-08 · TA获得超过143个赞
知道答主
回答量:29
采纳率:0%
帮助的人:0
展开全部
程序没问题。肯定是归一化数据有问题啦,建议用matlab归一化函数试试。
[pn,maxp,minp,tn,maxt,mint]=premnmx(P',T)
也可自己编程序写很简单的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
秒懂百科精选
高粉答主

2021-04-30 · 每个回答都超有意思的
知道答主
回答量:60.8万
采纳率:14%
帮助的人:3.1亿
展开全部

科普中国·科学百科:BP神经网络

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式