![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
BP神经网络的几个简单问题
关于BP神经网络编程的一点小问题:本人初学要求用JAVA作所以有些问题请教1.例如matlab一个这样的网络net=newff([i1,x1;i2,x2;i3,x3],[...
关于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()
的函数体 和导数函数体分别是什么啊 展开
本人初学 要求用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()
的函数体 和导数函数体分别是什么啊 展开
2个回答
展开全部
1.一般你可以自己尝试下,我最近也在尝试,隐层用tansig是比较理想的,输出层要自己尝试的,如用purlin是输出任意值,logsig很多书也是推崇的,将输出值限定在【0,1】中,我一般都用tansig.
2.trainlm是一种训练方法,使用的话收敛很快很快,相比的话traingd收敛很慢很慢。优势traingd要训练1000epochs,而trainlm只要训练5epochs就够了
2.trainlm是一种训练方法,使用的话收敛很快很快,相比的话traingd收敛很慢很慢。优势traingd要训练1000epochs,而trainlm只要训练5epochs就够了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询