BP神经网络是一种多层前馈神经网络,由输入、输出、隐藏层组成。该网络的主要特点是信号前向传递,误差反向传播。在前向传递中,输入信号从输入层经隐藏层逐层处理,直至输出层。每一层的神经元状态只影响下一层神经元状态。如果输出层得不到期望输出则转入反向传播,根据预测误差调整网络权值和阈值,从而使BP神经网络预测输出不断逼近期望输出。结构图如下:
隐藏层传输函数选择Sigmoid函数(也可以选择值域在(-1,1)的双曲正切函数,函数‘tansig’),其数学表达式如下:
f(x)11ex,其中为常数
输出层传输函数选择线性函数:f(x)x
1.隐藏层节点的选择
隐藏层神经元个数对BP神经网络预测精度有显著的影响,如果隐藏层节点数目太少,则网络从样本中获取信息的能力不足,网络容易陷入局部极小值,有时可能训练不出来;如果隐藏层节点数目太多,则学习样本的非规律性信息会出现“过度吻合”的现象,从而
导致学习时间延长,误差也不一定最佳,为此我们参照以下经验公式:
H2I1
HIOa, a[1,10]
Hlog2I
其中H为隐含层节点数,I 为输入层节点数,O为输出层节点数,a 为常数。
输入层和输出层节点的确定:
2.输入层节点和输出层节点的选择
输入层是外界信号与BP神经网络衔接的纽带。其节点数取决于数据源的维数和输入特征向量的维数。选择特征向量时,要考虑是否能完全描述事物的本质特征,如果特征向量不能有效地表达这些特征,网络经训练后的输出可能与实际有较大的差异。因此在网络训练前,应全面收集被仿真系统的样本特性数据,并在数据处理时进行必要的相关性分析,剔除那些边沿和不可靠的数据,最终确定出数据源特征向量的维度。对于输出层节点的数目,往往需要根据实际应用情况灵活地制定。当BP神经网络用于模式识别时,模式的自身特性就决定了输出的结果数。当网络作为一个分类器时,输出层节点数等于所需信息类别数。(可有可无)
训练好的BP神经网络还只能输出归一化后的浓度数据,为了得到真实的数据
值,我们还必须对输出数据进行反归一化。反归一化过程可以利用归一化过程中
的信息,通过函数“mapminmax”来实现。具体如下:
BPoutput=mapminmax('reverse',an,outputps);
其中,BPoutput为反归一化后的数据,an为神经网络预测输出,outputpa为
原始输出数据集信息。
2BP神经网络结果分析
以Cu元素为例,训练结束的神经网络性能图(MSE和Epochs的函数图象)下:
结果分析:
如图4,训练在第222次迭代过程达到均方误差最小,MSE=***。此时,
训练结束。
学习速度同样对BP神经网络具有重要影响作用,学习速度太小,网络学习缓
慢,需要增加训练次数;学习速度太大,网络学习迅速,但是容易导致网络不收
敛,影响训练的精度。我们最终决定学习速度为0.01,训练次数为300。
1.1.1 数据的预处理
BP 神经网络构建在多层前馈网络的基础
BP神经网络的缺陷:
随着BP神经网络在多领域的广泛应用,BP 算法自身存在的诸多缺陷逐渐被人们发现,这些缺陷在应用实例中表现为如下几方面:误差收敛速度慢,学习时间过长;学习过程易陷入局部极小值;网络泛化能力差;构建网络结构缺乏统一原则等。缺陷产生的直接原因是BP神经网络自身算法的不完善。产生的直接后果是制约 BP 算法的学习精度,影响网络的学习速度,限制网络的广泛应用。BP 算法被提出以后,国内外学者对它的改进工作就从未停止。人们希望通过对 BP 算法的改进,使其满足更多状态下的应用要求。改进BP神经网络属于此领域的研究热点,有着重要的理论意义和应用价值。本文针对 BP 算法的不足,立足于前人的改进经验,提出进一步改进 BP 算法的新思路,期望对理论研究和实际应用有所帮助。
因篇幅问题不能全部显示,请点此查看更多更全内容