神经网络chBP.docVIP

  • 8
  • 0
  • 约5.65千字
  • 约 14页
  • 2017-03-09 发布于江苏
  • 举报
神经网络chBP

第三章BP网络 由于在神经网络中引入了隐层神经元,神经网络就具有更好的分类和记忆等能力,因此相应的学习算法成了研究的焦点。1985年Rumelhart等提出的EBP(Error Back Propagation)算法(简称BP),系统地解决了多层神经元网络中隐单元层连接权的学习问题,并在数学上给出了完整的推导。由于BP网络克服了简单感知机不能解决的X0R和其他一些问题,所以BP模型已成为神经网络的重要模型之一,并得以广泛使用。 采用BP算法的多层神经网络模型一般称为BP网络。多层神经网络模型的拓扑结构如下图所示。它由输入层、中间层和输出层组成。中间层 (隐层)可以是一层或多层。 BP网络的学习过程由两部分组成:正向传播和反向传播。当正向传播时,输入信息从输入层经隐层处理后传向输出层,每一层神经元的状态只影响下一层的神经元状态。如果在输出层得不到希望的输出,则转入反向传播,将误差信号沿原来的神经元连接通路返回。返回过程中,逐一修改各层神经元连接的权值。这种过程不断迭代,最后使得信号误差达到允许的范围之内。 BP网络中采用了有一定阈值特性的连续可微的Sigmoid函数作为神经元的激发函数。这里采用的S型函数为: 3.1 含隐层的前馈网络的δ学习规则 设有P个训练样本,即P个输入一输出对(Xk,Tk),(k=1,2,…,P)。其中,Xk为第k个样本输入向量;Xk=(xk1,xk2,…,xkM),M为输入向量的维数:Tk为第k个样本输出向量(期望输出):Tk=(tk1,tk2,…,tkN),N为输出向量的维数。网络的实际输出向量(其它各层亦相同)为:Ok=(ok1,ok2,…,okN)T (N的大小与所在层有关);wji为前一层第i个神经单元输入到后一层第j个神经单元的权重。 当神经元为输入层单元时,ok=Xk, 对于第k个样本,第j个神经元的状态定义为 则第j个神经元的输出为: okj=fj(Netkj) 定理3.1 对于具有隐层的多层前向神经网络,当神经元激发函数为半线性函数,且训练指标函数取:,时,下述网络学习规则将使E在每个训练循环中按梯度下降: 其中(*)式用于网络输出层,(**)式用于中间隐含层。 误差信号: 证明:由梯度法,对于无约束优化问题 min f(x),。 其中f(x)具有一阶连续偏导数,对x,按f(x)的负梯度方向进行搜索、 xk+1=xk十λkdk。 其中dk是从xk出发的搜索方向,可取为点xk处的最速下降方向,即: dk=—▽f(xk) λk是从xk出发沿方向dk进行一维搜索的步长。 相应地,当取指标函数: 则权值的变化量正比于该指标函数的负梯度,即 将分为两部分之积: 而 okj=f(Netkj) 所以 为了计算,须分为二种情况: 神经单元是输出单元: 所以 2.当某神经单元是隐含单元时, 所以 证毕。 从上面推导中可以看到,在计算具有隐层的前馈多层神经网络的训练误差δkj时,是先从输出层开始,逐层向后进行。这就是“误差反向传播”算法名称的由来。 需要注意的是,在BP网络的学习算法中,反向传播算法要求神经网络单元的输入输出函数是可微的。 关于BP网络的映射能力,许多人进行过研究,可总结成下面的完全性定理: 定理3.2 假定BP网络中隐单元可以根据需要自由设定,那么一个三层网络可以实现以任意精度近似任何连续函数。 BP算法实现了指标函数曲面上的梯度下降。由于网络中的非线性隐含单元的存在,指标函数不只有一个极小点(全局最小点),而是存在多个极小点(局部极小点)。因此,梯度下降法不能保证求出全局最小。求全局最小仍是一个需要研究的问题。 由于BP网络要求采用非线性的连续可导的激励函数,经多年试验研究,现通常采用S型(sigmoid)函数作为激发函数: 则单元输出为: 在这种激励函数下,有: 故对输出层单元: 对隐层单元: 权值调节为: 在实际的学习过程中,学习速率η对学习过程的影响很大。η是按梯度搜索的步长。η越大,权值的变化越剧烈。实际应用中,通常是以不导致振荡的前提下取尽量大的η值。为了使学习速度足够快而不易产生振荡,往往在δ规则中再加上一个“势态项”,即: 式中α是一个常数,它决定过去权重的变化对目前权值变化的影响程度。 下面给出算法步骤: (1)置各权值或阈值的初始值wji(0),θj(0)为小的随机数值。 (2)提供训练样本:输入矢量Xk,期望输出dk,k=1,2.…,P 对每个样本进行下面(3)到(5)的迭代: (3)计算网

文档评论(0)

1亿VIP精品文档

相关文档