BP神经网络的一个解析算例


打开文本图片集

摘 要:BP神经网络是误差反向传播神经网络的简称,是一种常用的人工智能算法。它具有非常高的求解精度,同时也具有很强的非线性。人们在学习和理解BP神经网络时,往往会忽略BP神经网络的动力学机制和数学运算细节。该文给出了BP神经网络的一个解析算例,剖析了算法的重要细节,这有助于从事人工智能算法研究或希望应用神经网络算法解决实际问题的初学者,更准确和更全面地理解神经网络理论。

关键词:BP 神经网络 解析 理论

中图分类号:TP391 文献标识码:A 文章编号:1674-098X(2016)09(a)-0090-03

因为具有非常强的非线性,人们在学习BP神经网络时,往往会忽略它的动力学机制和数学运算细节,而只关注于调用相关函数,盲目地用于解决一些实际问题。这个问题成为了阻碍神经网络理论发展和应用的关键所在。该文将从基本理论、算法步骤、梯度下降算法的实现、BP神经网络的解析算例4个方面进行论述。这有助于从事人工智能算法研究或希望应用神经网络算法解决实际问题的初学者,更准确和更全面地理解神经网络理论。

1 基本理论

神经网络是一种非常重要的人工智能算法[1]。BP神经网络是最常用的神经网络算法,是误差反向传播(Error Back Propagation)神经网络的简称,是一种按误差逆传播算法训练的多层前馈网络[2,3]。

BP算法的基本思想是训练过程由信号的正向传播和反向传播两个过程组成的。当信号正向传播时,输入样本从输入层传入,经隐层逐步处理后,传向输出层。如果在输出层中实际输出值与期望输出值不符,则转入误差的方向传播过程,并依此往复。

误差的反向传播是将误差输出给隐层,再向输入层反传。在整个反传过程中,误差分摊到各层的所有单元,从而得到各层单元的误差信号,并以此作为修正各单元权值的依据。权值不断修正的过程,也就是网络接受学习和训练的过程,当神经网络的输出误差减小到某个可接受的程度,或进行到预先规定好的学习次数时,整个计算过程终止。

2 BP神经网络的算法步骤

(1)神经网络参数的初始化:给各连接权值分别赋一个区间(-1,1)内的随机数,设定误差函数的数学表达式E,给定计算精度和最大学习次数M;

(2)随机选取第k个输入样本及对应的期望输出:

(3)计算隐层各神经元的输入和输出;

(4)计算输出层个神经元的输出(神经网络的总输出);

(5)利用神经网络期望输出和实际输出,计算误差函数对输出层的各神经元输出误差的偏导数

(6)利用神经网络输出值关于隐层到输出层的连接权值的偏导数;

(7)同理,求得网络输出误差关于输入层与隐层权值的偏导数;

(8)利用和来修正两种连接权Tki和;

(9)计算全局误差E,并判断网络误差是否满足精度要求。当误差达到预设精度或学习次数大于设定的最大迭代次数,则结束程序;否则,返回第(3)步,选择下一个学习样本及对应的期望输出,进入下一轮学习。

3 梯度下降算法的实现

结合梯度下降算法[4]的实现过程,我们以BP神经网络为例,详细介绍神经网络的原理和实现过程。

对于一个n维值函数而言,若采用梯度下降算法计算其极小值,需要选择一个初始点,如果该点对应的非极小值,则必须对进行修正,并得到。

重复上述过程,在计算得到(x2,y2),直到第n步。当或时,结束循环,并输出(xn,yn)。

极小值点的计算精度由η的取值决定。

4 BP神经网络算法的解析算例

对于BP神经网络而言,其实现过程与极小值问题的梯度下降算法的本质是一致的,区别之处只在于对初始点坐标的调整過程。在梯度下降算法中,初始点的调整是正向的,即由初始点坐标决定调整方向(该点处的负梯度方向);在BP神经网络中,初始点(初始权值)的调整是反向的,即由误差函数关于各权变量的导数,对权值进行调整。

再举一个关于BP神经网络的简单例子,给定神经网络的拓扑结构图如图1所示,其中,输入层具有两个神经元A和B,隐层具有两个神经元C和D;输入样本为A=0.3,B=0.6,初始权值为:AC=0.1,BC=0.8,AD=0.5,BD=0.4,CE=0.4,DE=0.6。

可见,经调整的权值可以用输出的全局误差减小,往复这个迭代过程,我们将得到最佳的权值。

参考文献

[1]李成.神经网络系统理论[M].西安电子科技大学出版社,1990.

[2]戚德虎.BP神经网络的设计[J].计算机工程与设计,1998,19(2):48-50.

[3]Hecht-Nielsen R.Theory of the backpropagation neural network[J].Harcourt Brace &Co.,1992,1(1):593-605.

[4]阎平凡,张长水.人工神经网络与模拟进化计算[M].清华大学出版社有限公司,2005.

推荐访问:神经网络 解析 BP