基于BP神经网络的数字式涡流传感器特性曲线拟合的实现

时间:2012-10-27来源:网络

3.3 训练函数的选择
考虑到LM(Levenberg Marquardt)算法是一种利用标准的数值优化技术的快速算法,该方法是一种将最陡下降法和牛顿法相结合的算法,可以克服神经网络收敛速度慢、易陷入局部极小值的缺点,并且在网络参数相对较少的情况下具有收敛速度极快、稳定性能强等优点,因此本文采用trainlm(LM)算法函数对网络进行训练,大大减少了网络训练的迭代次数。
3.4 传输函数
BP网络传递函数,又称为激活函数必须是连续可微的,通常采用S型的对数函数logsig、双曲正切函数tansig或线性函数purelin。前两种为非线性函数,分别将X∈(-∞,+∞)的输入压缩为Y∈[-1,1]和Y∈[0,1]的输出,因此,对本文的非线性拟合问题,输入层和隐层采用非线性传递函数tansig,输出层采用线性函数purelin,以保持输出的范围。
3.5 隐层的节点数
隐含层神经元数目是根据网络收敛性能好坏来确定的。
目前对于隐含层数目的确定没有严格的规定。一个公认的指导原则是样本点的偏差在允许范围条件下用最平滑的函数去逼近未知的非线性映射。隐含层神经元个数过少可能训练不出网络,即网络的鲁棒性差,抗噪声能力不强,不能辨识以前没有遇到的模式;但是隐含层神经元个数过多,又会使学习时间过长,误差不一定最小,出现过度吻合问题。因此通常采用“试凑法”,通过比较网络输出误差与期望误差之间的拟合程度,选择仿真效果最好时所选择的隐含层节点数。一般对于三层网络隐含层节点数可以根据(7)式所示的经验公式大致确定最佳隐含层单元的数目。
i.JPG
式中M为输入层节点个数,N为输出层节点个数,H为隐含层输入个数。由此隐含层节点数应该在3~12这个范围之内,训练次数为2 000,训练误差为0.000 1。在学习率初定为0.1且不变的情况下对网络进行训练。经过试验,不同隐含层节点数的训练情况如表1所示,得到最好的隐含层节点个数为11。

a.JPG


如图5所示,隐层节点数为11时的网络训练过程误差变化情况,可以看出,网络经初始化,利用函数trainlm对网络进行23次训练后,网络就达到了目标误差的要求。训练过程中,目标误差随着训练次数增大逐渐减小,直至达到所规定的期望误差0.000 1停止训练。

1 2 3 4

关键词: BP神经网络 涡流传感器 曲线拟合 MATLAB语言

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版