❶ BP神经网络中的训练函数如何选取
神经网络不同的网络有这不同的训练函数,BP神经网络有两种训练函数,trainbp(),利用BP算法训练前向神经网络。trainbpx(),利用快速BP算法训练前向神经网络,即采用了动量或自适应学习,可减少训练时间,tansig函数是神经元的传递函数,与训练函数无关,在trainbp()函数中含有要训练神经元的函数。
❷ BP神经网络输出函数可以是hardlim吗
用在转移函数上是不可以的。对于层网络而言BP学习规则是靠误差的反向传播然后调整各个神经元的权向量,其误差反向传播使用的是梯度下降法所以BP学习规则要求神经元的转移函数使用的是可连续的要求其求导后也是可连续的。hardlim是分段线性转移函数所以不能用(这也要看设计思路,总之要使用到误差梯度下降法去反向传播误差最后完成收敛这是BP学习提出的关键性问题)。总之转移函数在设计网络学习时是有要求的,通常情况下BP不用hardlim也是因为上面说的梯度下降法。:)。
❸ 关于BP网络,函数拟合的基础问题
限制值域的一个比较笨的方法:
可以把输出节点的传递函数设置成logsig,把输出之限制在0,1之间,比如你的输出值是
>> x=1:6
x =
1 2 3 4 5 6
要求输出在[0 10]范围内,那么你可以把x先在这个范围内归一化
>> x=x/10
x =
0.1000 0.2000 0.3000 0.4000 0.5000 0.6000
现在你可以用logsig函数作为输出节点传递函数了,但是输出的值要经过反归一化才能得到你想要的结果
>> x=x*10
x =
1 2 3 4 5 6
对于定义域:
net = newff(minmax(PN1),[NodeNum TypeNum],{TF1 TF2});%的minmax已经给你完成了,
至于特定的x一定对应特定的y,你是不是要求严格相等阿?我的观点是,把这些有特定要求的点,在训练完之后再训练,不行再训练,但有可能导致一个病态的结果
❹ matlab bp网络 函数模拟
1.n=3;
net=newff(minmax(h1),[n,1],{'tansig','purelin'},'trainlm');
h1要是是64的话,隐层的神经元数n=3太小了吧,换个8~12看看。
2.你说的效果不好是训练后误差太高吧,不知道你是用灰度图0~255做输入还 是用二值化以后的逻辑值0,1做输入?
net=newff(minmax(h1),[n,1],{'tansig','purelin'},'trainlm');要是用灰度图的话把tansig改成logsig看看。要是用二值化以后的逻辑值输入,就把tansig和purelin都改成logsig
3 训练步数net.trainParam.epochs = 100;设个1000吧,反正也多跑那么几毫秒
❺ 什么是BP网络
我们最常用的神经网络就是BP网络,也叫多层前馈网络。BP是back propagation的所写,是反向传播的意思。我以前比较糊涂,因为一直不理解为啥一会叫前馈网络,一会叫BP(反向传播)网络,不是矛盾吗?其实是这样的,前馈是从网络结构上来说的,是前一层神经元单向馈入后一层神经元,而后面的神经元没有反馈到之前的神经元;而BP网络是从网络的训练方法上来说的,是指该网络的训练算法是反向传播算法,即神经元的链接权重的训练是从最后一层(输出层)开始,然后反向依次更新前一层的链接权重。因此二者并不矛盾,只是我没有理解其精髓而已。
随便提一下BP网络的强大威力:
1)任何的布尔函数都可以由两层单元的网络准确表示,但是所需的隐藏层神经元的数量随网络输入数量呈指数级增长;
2)任意连续函数都可由一个两层的网络以任意精度逼近。这里的两层网络是指隐藏层使用sigmoid单元、输出层使用非阈值的线性单元;
3)任意函数都可由一个三层的网络以任意精度逼近。其两层隐藏层使用sigmoid单元、输出层使用非阈值的线性单元。
❻ bp神经网络选择激活sigmoid函数,还有tansig函数的优缺点求告知
(1)对于深度神经网络,中间的隐层的输出必须有一个激活函数。否则多个隐层的作用和没有隐层相同。这个激活函数不一定是sigmoid,常见的有sigmoid、tanh、relu等。
(2)对于二分类问题,输出层是sigmoid函数。这是因为sigmoid函数可以把实数域光滑的映射到[0,1]空间。函数值恰好可以解释为属于正类的概率(概率的取值范围是0~1)。另外,sigmoid函数单调递增,连续可导,导数形式非常简单,是一个比较合适的函数
(3)对于多分类问题,输出层就必须是softmax函数了。softmax函数是sigmoid函数的推广
❼ BP神经网络中的激励函数除了S型函数,还有什么函数
一般来说,神经网络的激励函数有以下几种:阶跃函数 ,准线性函数,双曲正切函数,Sigmoid函数等等,其中sigmoid函数就是你所说的S型函数。以我看来,在你训练神经网络时,激励函数是不轻易换的,通常设置为S型函数。如果你的神经网络训练效果不好,应从你所选择的算法上和你的数据上找原因。算法上BP神经网络主要有自适应学习速率动量梯度下降反向传播算法(traingdx),Levenberg-Marquardt反向传播算法(trainlm)等等,我列出的这两种是最常用的,其中BP默认的是后一种。数据上,看看是不是有误差数据,如果有及其剔除,否则也会影响预测或识别的效果。
❽ BP神经网络运行到什么程度算OK
你可以设定一个goal,这个goal是训练时用的,用来验算网络的拟合程度、映射能力,没有严格要求,你可以随意设定,再慢慢调整,有的人设0.1,有的人设0.000001,你自己慢慢试。主要看最后你用test算例验证时的效果,可以算相对误差,再用mse函数或sumsqr函数得到统计指标,指示网络的性能。
❾ 求助: BP神经网络的训练算法中训练函数(traingdx 、trainlm、traingd)的中文全称以及他们各自特点
traingdx 有动量和自适应lr的梯度下降法
trainlm Levenberg - Marquardt方法
traind 梯度下降法
❿ BP网络是什么
我们最常用的神经网络就是BP网络,也叫多层前馈网络。BP是back propagation的所写,是反向传播的意思。我以前比较糊涂,因为一直不理解为啥一会叫前馈网络,一会叫BP(反向传播)网络,不是矛盾吗?其实是这样的,前馈是从网络结构上来说的,是前一层神经元单向馈入后一层神经元,而后面的神经元没有反馈到之前的神经元;而BP网络是从网络的训练方法上来说的,是指该网络的训练算法是反向传播算法,即神经元的链接权重的训练是从最后一层(输出层)开始,然后反向依次更新前一层的链接权重。因此二者并不矛盾,只是我没有理解其精髓而已。
随便提一下BP网络的强大威力:
1)任何的布尔函数都可以由两层单元的网络准确表示,但是所需的隐藏层神经元的数量随网络输入数量呈指数级增长;
2)任意连续函数都可由一个两层的网络以任意精度逼近。这里的两层网络是指隐藏层使用sigmoid单元、输出层使用非阈值的线性单元;
3)任意函数都可由一个三层的网络以任意精度逼近。其两层隐藏层使用sigmoid单元、输出层使用非阈值的线性单元。
参考资料:【注】参考自《机器学习》