购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.3 神经网络

神经网络是一种机器学习算法,而反向传播网络(简称BP网络)作为一种应用最广泛的神经网络,具备一套完整的理论体系和成熟的学习机制。它模仿人脑神经元对外部激励信号的反应过程,建立多层感知器模型,利用信号正向传播和误差反向调节机制,通过多次迭代学习,搭建出处理非线性信息的网络模型。BP网络及其算法是人工神经网络的精华所在,它被广泛应用于函数逼近、模式识别、故障分类等。而在实际应用的人工神经网络,80%~90%都是直接采用BP网络或是其变种形式 [10]

1.3.1 BP神经网络结构

通常,BP神经网络由输入层、隐含层和输出层构成,相邻两层的节点彼此互相连接,但位于同一层的节点间没有任何连接。隐含层节点个数目前尚无确定的标准,可通过反复试凑的方法,以相对较好的实验结果确定节点数。根据Kolmogor定理,我们知道:一个三层的BP神经网络,如果隐含层采用Signal型的激活函数,那么在闭区间上,能以任意精度逼近相应的非线性连续函数。

为了简化说明,本节选择具有单隐含层的BP神经网络进行说明,即只有一层隐含层。如图1-2所示为一个具有单隐含层的BP神经网络模型 [11]

img

图1-2 具有单隐含层的BP神经网络模型

在BP算法中,各层神经元节点的激活函数必须是处处可导的,因此处处可导的S形曲线被经常使用,如对数函数和正切函数。在实际操作中,纯线性函数常用作输出层的激活函数,如图1-3所示为对数函数logsig()和纯线性函数purelin()。

img

图1-3 激活函数logsig()和purelin()

1.3.2 BP算法的步骤

1 .标准 BP 算法的主要思想

标准BP算法 [12] 把整个训练过程分成两个阶段,即信号的正向传播阶段和误差的反向调节阶段。在正向传播过程中,输入信号在权值和阈值的作用下经隐含层传向输出层,并在输出端产生累加计算结果。这一过程中,存在于网络中的连接权值和阈值保持不变,并且上一层神经元的输出只能作用于与其相邻的下一层神经元节点。当正向传播的结果与样本对的期望输出间的误差不能满足预先设定的误差精度时,转到误差的反向调节阶段。在误差的反向调整过程中,误差信号由输出端开始,按照学习算法向前传播,并将误差动态地分配给连接输出层与隐含层、隐含层与输入层的神经元间的权值。经过这种反复的调节,神经元间的权值和阈值得到不断的修正,并趋于稳定。在正向传播的计算结果与样本对的期望输出间的误差满足预先设定的误差精度或达到最大学习次数时,停止训练学习。

2 .标准 BP 算法的主要步骤

为了简化说明,本节以典型的三层BP网络为例,详细描述BP算法的计算流程,如图1-4所示。标准BP算法是一种基于梯度下降的学习算法,当网络输出与期望输出的误差达不到要求时,通过误差的反向调整过程,把误差分摊到存在于网络中的权重中,使正向传播的计算结果与样本对的期望输出间的均方误差趋于最小得以实现。

img

图1-4 BP神经网络流程图

本节为了描述方便,先对所使用到的变量做一详细的说明。

输入向量: x =(x 1 ,x 2 ,…,x n )。期望输出向量: d =(d 1 ,d 2 ,…,d q )。

隐含层输入向量: img 。激活函数:f (·)。

隐含层输出向量: img 。隐含层各神经元的阈值:b h

输出层输入向量: img 。输出层各神经元的阈值:b o

输出层输出向量: img 。样本数据个数:k=1,2,…,m。

输入层与隐含层间的连接权值:w ih 。隐含层与输出层的连接权值:w ho

标准BP算法具体实现步骤 [13~14] 如下:

(1)网络初始化,为连接权值w ih 、w ho 和阈值b h 、b o ,随机生成一组范围在(0,1)的数,并设定误差函数 img ,以及误差精度ε和最大迭代次数M。

(2)随机选取一组数据,形成一个样本对。例如,选择第k个样本对(x(k),d (k)),其中输入样本集为x(k)=(x 1 (k),x 2 (k),…,x n (k)),对应着输出样本集为d(k)=(d 1 (k),d 2 (k),…,d q (k))。

(3)在输入层和隐含层间连接权值的作用下,计算隐含层各神经元节点的输入 img ,以及经激活函数作用后,隐含层各神经元节点的输出 img

img
img

(4)将期望输出d (k)和实际输出 img 带入误差计算公式中,得到该样本对的误差,并计算误差函数对输出层各神经元节点的偏导数δ o (k):

img

(5)进入误差反向调整阶段,将步骤(4)得到的输出层偏导数δ o (k)带入式(1.9)中,计算误差函数相对于隐含层各神经元节点的偏导数δ h (k):

img

(6)将步骤(4)和步骤(5)得到的输出层各神经元节点的偏导数和隐含层各神经元节点的偏导数,对输出层与隐含层的神经元节点间的连接权值w ho (k)、阈值b o (k)做如式(1.10)和式(1.11)的调整:

img

其中,η为学习率,取值为(0,1)。

(7)使用步骤(5)得到的偏导数和输入x i (k)数据,对输入层与隐含层的神经元节点间的连接权值w ik (k)、阈值b h (k)做如式(1.12)和式(1.13)的调整:

img

(8)计算全局误差E:

img

(9)判断网络误差是否满足要求,即当E<ε或训练次数大于最大训练次数M时,算法终止,并输出此刻网络中各神经元节点间的连接权值、阈值;否则再从样本集中随机选择下一个训练样本对,返回到步骤(3),执行下一轮训练。

1.3.3 BP神经网络的性能分析

BP神经网络作为人工智能领域的前沿技术,具有超强的理论依据和严谨的推导过程。虽然BP算法有着广泛的应用,但由于其采用的是一种基于梯度下降的权重调整方法,这使其存在明显的缺陷 [15~17]

(1)输出误差收敛速度慢。经过一段时间的训练,标准BP算法的学习速度将变得非常缓慢。在误差下降过程中,难免产生振荡现象,将严重影响网络的收敛速度。

(2)在对网络权值、阈值的训练过程中,很容易陷入局部最小值。在训练过程中,当达到最小值时,其误差变化量将会很小,出现误差下降的停滞状态。

(3)BP网络拓扑结构的确定没有充分的理论依据。在实际应用中,怎样确定网络中隐含层的层数及每一层选用多少个神经元节点,国内外学者做了许多有益的尝试,提出了经验公式法、反复试验法、增长法、删减法等多种估算隐含层神经元节点数的方法,但目前还没有形成完善的理论体系 [18~21] DpBO/7/reV7PzJL5vek7+UOh1e4w4ikncsfCEoKc0Osedr+vyZVbi/e2g6TzZm9S

点击中间区域
呼出菜单
上一章
目录
下一章
×