㈠ 我在使用MATLAB进行BP神经网络算法时,运行提示错误使用input,输入参数的项目不足,求大神指点
newff()使用格式有错误。
将这句命令net=newff(minmax(inputn,outputn,5)
改为下列形式
net=newff(minmax(inputn),[10 1],{'tansig','purelin'})
㈡ BP神经网络在预测时输入与输出的个数不匹配的问题
你用的是Demux模块,错误的原因是输入和输出信号的维数不匹配。
Demux模块的基本作用是把一个输入信号给展开成多个输出信号,有两种工作模式,即向量模式和总线选择(Bus selection)模式,取决于你是否选中了Bus selection mode参数(注意:MathWorks公司不鼓励使用Bus selection模式来展开总线信号)。猜测你很可能是按照默认情况下使用向量模式,所以下面的讨论以向量模式为前提。
Demux模块的参数Number of outputs可以是标量或向量,如果是标量,则指定了输出的个数;如果是向量,则向量的元素个数对应输出个数。关于该参数的详细规定可以用doc demux查看相关文档。
可能导致出错的主要有以下两种情况(其他条件下,Simulink会采取一种比较合理的方式来理解你的输入参数):
如果Number of outputs为标量,该标量的值大于输入向量的元素个数;
如果Number of outputs为向量,向量各元素均为正且求和与输入向量的元素个数不等。
㈢ Matlab BP神经网络预测错误,怎么办
Matlab BP神经网络预测错误的原因可能有下列因素:
1、数据本身问题
2、训练参数不够合理
所以,题主应从上述因素去改进。
㈣ 急求BP神经网络算法应用于异常数据识别,用java实现!!!
BP(Back Propagation)神经网络是86年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP神经网络模型拓扑结构包括输入层(input)、隐层(hidden layer)和输出层(output layer)。
附件是一个应用BP神经网络进行数据分类的java例子,可供参考。
㈤ matlab BP神经网络在测试的时候总是显示有问题,求解答原因
第一句错误
应该是你
的输入向量
维数
不一致导致,也可能是别的原因,你没有贴出来我只能猜测,第二句你说是保存数据,我一般用的语句是,save
,由于你第一句错误导致仿真数据没保存所以fopen这句由于找不到数据也出错。
㈥ bp神经网络遇到新的数据,就预测不准,怎么弄
预测数据的话BP不是特别好用,最好用Elman反馈神经网络或者RNN循环神经网络,这些有记忆功能的网络比较好用。bp主要和你选择的隐含层数,和误差范围,学习率有关。你可以调节相关参数来改变神经网络,获得更精确的结果。
㈦ BP神经网络输出层的输入信号问题
阈值肯定是要包含进来的,阈值的作用就是控制神经元的激活或抑制状态。神经网络是模仿大脑的神经元,当外界刺激达到一定的阀值时,神经元才会受刺激,影响下一个神经元。
简单说来是这样的:超过阈值,就会引起某一变化,不超过阈值,无论是多少,都不产生影响。
阈值又叫临界值,是指一个效应能够产生的最低值或最高值。
阈值又称阈强度,是指释放一个行为反应所需要的最小刺激强度。低于阈值的刺激不能导致行为释放。在反射活动中,阈值的大小是固定不变的,在复杂行为中,阈值则受各种环境条件和动物生理状况的影响。当一种行为更难于释放时,就是阈值提高了;当一种行为更容易释放时,就是阈值下降了。
㈧ 我是MATLAB初学者,学习BP神经网络编程,出现错误,求大神详细指导。
[net,a,e]=adapt(net,p,t); %adapt
出错
输入和输出的维度应该一致
p是20*10 t却只有7 显然匹配不上。。。
㈨ BP神经网络数据分类总出错。
你的数据矩阵的组织出问题了,你设置的网络输入神经元和你每次输入的数据这块有矛盾,可以尝试先再减少数据量去做,这里有可能用到转职,然后再加大数据量,这样去组织数据
㈩ 本人新手,在做BP神经网络的时候遇到了一个问题
不知你是不是用matlab的神经网络工具箱,因为一般神经网络都是成批处理的,每一次调整都会综合所有样本的误差进行调整,而不是一类一类图片的去调整,所以不会出现你说的现象。目前我看过的很多C++或者其它语言自己写的神经网络,都会有这样或那样的理解错误,建议先使用现成的matlab的神经网络工具箱进行训练。
另外是输入的问题,图象一般会先提取特征,再将特征作为输入。你在贴吧也提问了吧,这个我在贴吧里也回答了。
输出的问题,一般模式识别会用 0 1向量来代表,例如你有三类,目标输出应该是[ 0 1 0]这样,来代表它是第2类, 训练的时候用 0 1 0,当然,预测到的可能是[ 0.1 0.9 0.1]这样。
这是我所想到的问题,楼主看看是不是这样一回事。
下面是我的一些建议:
改为用神经网络工具箱。
借鉴《 MATLAB神经网络原理与实例精解 》里的 基于概率神经网络的手写体数字识别 ,对图象作预处理。
参考2012Bmatlab R2012b oolbox net ndemos下的classify_crab_demo例子。调用patternnet建立模式识别网络。
可以到 《神经网络之家》 学习神经网络。