前向型神经网络是一种常见的网络结构。网络中各个神经元接收前一级的输入,并输出到下一级,神经元自身及神经元之间都不存在连接,即网络中没有反馈。前向神经网络模型多采用层次型结构,神经元以层的形式组织起来,且各层顺序相连。网络各层按功能的不同可分成输入层、中间层(或称隐含层、隐层)和输出层。前向神经网络中某一层神经元的输出是下一层神经元的输入,信息按照固定的方向逐层向前进行传递。输入信号经输入层神经元传递到第二层神经元,第二层神经元的输出信号作为第三层神经元的输入,这样不断向前传递下去。通常,每一层神经元的输入都是上一层神经元的输出,最后的输出层神经元给出网络的输出信号。
BP神经网络
误差反向传播(Back-Propagation)神经网络及算法是传统人工神经网络科研与应用中最为广泛的一种多层前向模型及学习算法。由于这种类型的神经网络构造简单,且能够有效地 解决非线性目标函数的逼进问题,因此被大量应用于模式识别,系统辨识,信号处理和自动控制等学科和领域中。
BP神经网络的发展
1986年,Rumelhart等学者出版了Parallel Distributed Processing一书,使得Werbos早年提出的多层前向神经网络模型的反向传播算法重获认可和新生[7]。总的来说,BP神经网络泛指那些采用误差反向传播算法(即BP算法)的多层前向神经网络模型/类型。该学习算法能够有效地调整各层神经元之间的连接权值,以使网络达到更好的逼近能力。此外、该类神经网络属于静态网络[即(对历史数据)无记忆网络]:网络的当前输出只取决于当前输入,而不受过去/历史/以往输入的影响。
多层前向神经网络的发展最早可以追溯到Rosenblatt在1958年提出的感知器模型。此后,Widrow和Hoff在1960年提出了自适应线性元件网络(简称Adaline)。这两种网络模型可以通过训练来区分某些模式,因此曾经在一段时期内被广泛应用在模式分类和自适应控制等多个方面。但是,1969 年Minsky和Papert通过异或(XOR)问题指出单层神经网络的局限性。此后,更多的学者开始更多地关注多层神经网络的研究,但在一段时期内,研究者对以何种学习规则来训练网络并没有找到具体有效的方法。直到1974年,Werbos在其博士论文中给出了反向传播算法的首次描述,后来Rumelhart等人的工作使该算法引起了广泛的关注,并逐渐被运用到诸多科学和工程领域。后来更多地研究着对BP算法做了许多方面的改进,使得BP神经网络及BP算法逐步走向成熟。
BP神经网络学习算法——最速下降法
确定BP网络的层数和每层的神经元个数以后,还需要确定各层之间的权值系数才能根据输入给出正确的输出值。BP网络的学习属于有监督学习,需要一组己知目标输出的学习样本集。训练时先使用随机值作为权值,输入学习样本得到网络的输出。然后根据输出值与目标输出计算误差,再由误差根据某种准则逐层修改权值,使误差减小。如此反复,直到误差不再下降,网络就训练完成了。
修改权值有不同的规则。标准的BP神经网络沿着误差性能函数梯度的反方向修改权值,原理与LMS算法比较类似,属于最速下降法。此外,还有一些改进算法,如动量最速下降法、拟牛顿法等。
在前向神经网络中经常会提到LMS算法、最速下降法等概念,在这里解释一下。
最速下降法又称梯度下降法,是一种可微函数的最优化算法。
LMS算法即最小均方误差算法(Least Mean Square Algorithm),由Widrow和Hoff 在研究自适应理论时提出,又称∆规则或Widrow-Hoff LMS算法。
LMS算法体现了纠错规则,与最速下降法本质上没有差别。最速下降法可以求某指标(目标函数)的极小值,若将目标函数取为均方误差,就得到了LMS算法。 基于BP神经网络算法的香料鉴别分析系统的研制(5):http://www.youerw.com/zidonghua/lunwen_18034.html