BP神经网络的几个简单问题

关于BP神经网络编程的一点小问题:
本人初学 要求用JAVA作 所以有些问题请教
1.例如matlab 一个这样的网络
net=newff([i1,x1;i2,x2;i3,x3],[3,3,1],{'tansig' 'tansig' 'tansig'} ,'trainlm');
参数我都知道 这应该是一个三层网络 分别为 3 3 1个神经元
那么传递函数的问题 输入层的输入和输出之间也是用tansig函数传递么?
我的意思是 一般三层网络 不都是输入层的输入=输出 然后隐层的输入=输入层输出的加权和(加阈值)
再之后用传递函数得出隐层输出=f(隐层的输入) (f=tansig)
那么上述网络是否是输入层的输出=f(输入层的输入)呢? (f=tansig)
2.由于课题要求用java编程,那么我想知道训练函数trainlm怎么用呢?看了一些书,都是matlab的,直接用了,所以不清楚啊
3.关于阈值和权值的修正部分,请问是不是必须要用到传递函数的导数函数啊?有什么简便算法呢?
4.如果要求对一个普通的bp网络,将其改造成一个能够边校准模型、边使用模型的程序。也就是说:每个3至5组数据就使用一组数据来和以前的数据一起在训练一次这个模型,然后用中间的数据来仿真,那么这是什么意思,需要在哪里修改呢?
顺便问一下 常用的
logsig() tansig() purelin() trainlm()
的函数体 和导数函数体分别是什么啊

1.一般你可以自己尝试下,我最近也在尝试,隐层用tansig是比较理想的,输出层要自己尝试的,如用purlin是输出任意值,logsig很多书也是推崇的,将输出值限定在【0,1】中,我一般都用tansig.
2.trainlm是一种训练方法,使用的话收敛很快很快,相比的话traingd收敛很慢很慢。优势traingd要训练1000epochs,而trainlm只要训练5epochs就够了
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-05-25
神经

BP神经网络最后得出的误差很大
1、看看是不是训练效果好,预测效果不好。如果是这样那就是过拟合。网上搜搜有很多解决过拟合的方法。2、如果训练和预测都不好,那就是模型有问题。可能原因是 (1)数据量太小。(2)输入和输出数据之间相关性小。(3)调整参数:除了调整误差和学习率这些参数之外,还可以调整传递函数,例如trainlm适...

bp神经网络在多输入多输出的情况下,预测的精度为什么这么差?
bp神经网络是有一定缺陷的,比如容易陷入局部极小值,还有训练的结果依赖初始随机权值,这就好比你下一个山坡,如果最开始的方向走错了,那么你可能永远也到不了正确的山脚。可以说bp神经网络很难得到正确答案,也没有唯一解,有些时候只能是更多次地尝试、修改参数,这个更多依赖自己的经验,通俗点说就...

关于神经网络BP算法的输入问题
可以的!之所以叫BP网络,是因为使用了反向传递算法,这是一种结果导向的自学习方法,用在五子棋上是可以的。因为五子棋的游戏方法正是很明显的结果导向的过程。简单说这么个过程:1.设置输入和输出类型,比如都是坐标[x1,y1]、[x2,y2]...2.训练:你告诉网络 A情况下应该输出A1 B情况下应该输出...

一个关于BP神经网络的问题,matlab中神经网络工具箱的初始权值和阀值是...
训练BP神经网络所采取的随机初始参数确实是随机的,在训练过程中这些参数和权值都会朝着同一个大方向进行修正。例如你用BP神经网络来拟合曲线,找到输入值与输出值之间的线性规律,那么在训练的过程中这个拟合的曲线会不断的调整其参数和权值直到满足几个预设条件之一时训练停止。虽然这个训练出来的结果有时候...

bp神经网络为什么会陷入局部极小值
1,训练时间较长。对于某些特殊的问题,运行时间可能需要几个小时甚至更长,这主要是因为学习率太小所致,可以采用自适应的学习率加以改进。2,完全不能训练。训练时由于权值调整过大使激活函数达到饱和,从而使网络权值的调节几乎停滞。为避免这种情况,一是选取较小的初始权值,二是采用较小的学习率。3...

BP神经网络应用不足
尽管BP神经网络在许多领域得到了广泛应用,但其存在一些局限性和挑战。首先,BP网络的收敛速度受限于固定的学习速率,对于复杂问题,这可能导致长时间的训练。为改善这一点,可以考虑使用可变或自适应的学习速率策略。其次,BP算法虽然能使得权值收敛,但可能陷入局部最小值,而非全局最小值。为解决此问题,...

bp神经网络提高泛化能力?有几种方法?
提高BP神经网络泛化能力的几种方法:1. 输入样本的数量:适量的输入样本有助于提升网络的泛化能力。然而,样本数量过多可能导致过度拟合,反而降低泛化能力。因此,样本集应包括足够的转折点数据,但不宜过多。2. 隐含层神经元数量:在保证性能的前提下,应尽量减少隐含层的神经元数量。过多的神经元会...

BP神经网络神经元个数求助
第一个隐层是17个神经元,第二层隐是7神经元。net = newff(P,T,[S1 S2...S(N-l)],{TF1 TF2...TFNl}, BTF,BLF,PF,IPF,OPF,DDF)Size of ith layer, for N-1 layers, default = [ ].(Output layer size SN is determined from T.)输出层神经元数量由样本维数决定。

BP神经网络的核心问题是什么?其优缺点有哪些?
即误差逆传播神经网络是最常用,最流行的神经网络.BP网络的输入和输出关系可以看成是一种映射关系,即每一组输入对应一组输出.BP算法是最著名的多层前向网络训练算法,尽管存在收敛速度慢,局部极值等缺点,但可通过各种改进措施来提高它的收敛速度,克服局部极值现象,而且具有简单,易行,计算量小,并行性强等...

matlabbp神经网络出现这样错误,是错在哪里了?
这个问题在别的提问里刚回答过,不是版本问题,我现在用的是2018a版本,这个函数可以正常用。问题的根源是你拼写错了。你把traingdx拼成了taingdx,少了个r。'traingdx'这一项代表的是学习训练函数,'traingdx'具体是指学习率可变的动量BP算法。下图是用traingdx参数训练的一个模型结构,证明运行成功了,...

相似回答