① 什么是神经网络的BP算法
BP算法,即误差反向传播算法,是由Rumelhart和McCelland在1986年提出的一种多层前馈网络训练方法。它通过调整网络权重和阈值,使得网络的误差平方和最小。BP网络能自动学习和存储大量输入-输出模式映射关系,无需事先揭示这种映射关系的数学公式。
BP算法是一种监督学习算法,其主要步骤包括:首先初始化网络权重和阈值,然后通过输入学习样本,计算各层单元输出,接着计算误差并调整权重和阈值。具体而言,通过反向传播计算各层的校正误差,再利用学习系数更新权重和阈值,直至网络输出误差满足要求。
传统的BP算法存在收敛速度慢和易陷入局部极小的问题。为了解决这些问题,引入了高斯消元法作为改进算法。高斯消元法通过解线性方程组来直接计算待求权重,避免了传统方法中的局部极小问题和收敛速度慢的问题。
人工神经网络系统具有大规模并行处理、分布式信息存储和良好的自组织自学习能力,尤其在信息处理、模式识别、智能控制及系统建模等领域应用广泛。误差反向传播算法因其逼近任意连续函数的能力和非线性映射能力,在许多应用领域中起到了重要作用。
近年来,针对BP神经网络的缺陷,提出了许多改进算法。这些算法旨在提高网络的收敛速度、保证收敛到全局最小点、优化网络中间层及单元数的选取,以及增强网络的学习和记忆稳定性。
高斯消元法作为一种改进算法,通过解线性方程组直接计算待求权重,解决了传统BP算法中的局部极小和收敛速度慢的问题,使得网络训练更为高效。
② BP神经网络算法的关键词
BP算法是一种有监督式的学习算法,其主要思想是:输入学习样本,使用反向传播算法对网络的权值和偏差进行反复的调整训练,使输出的向量与期望向量尽可能地接近,当网络输出层的误差平方和小于指定的误差时训练完成,保存网络的权值和偏差。具体步骤如下:
(1)初始化,随机给定各连接权[w],[v]及阀值θi,rt。
(2)由给定的输入输出模式对计算隐层、输出层各单元输出
bj=f(■wijai-θj) ct=f(■vjtbj-rt)
式中:bj为隐层第j个神经元实际输出;ct为输出层第t个神经元的实际输出;wij为输入层至隐层的连接权;vjt为隐层至输出层的连接权。
dtk=(ytk-ct)ct(1-ct) ejk=[■dtvjt] bj(1-bj)
(3)选取下一个输入模式对返回第2步反复训练直到网络设输出误差达到要求结束训练。
传统的BP算法,实质上是把一组样本输入/输出问题转化为一个非线性优化问题,并通过负梯度下降算法,利用迭代运算求解权值问题的一种学习方法,但其收敛速度慢且容易陷入局部极小,为此提出了一种新的算法,即高斯消元法。 2.1 改进算法概述
此前有人提出:任意选定一组自由权,通过对传递函数建立线性方程组,解得待求权。本文在此基础上将给定的目标输出直接作为线性方程等式代数和来建立线性方程组,不再通过对传递函数求逆来计算神经元的净输出,简化了运算步骤。没有采用误差反馈原理,因此用此法训练出来的神经网络结果与传统算法是等效的。其基本思想是:由所给的输入、输出模式对通过作用于神经网络来建立线性方程组,运用高斯消元法解线性方程组来求得未知权值,而未采用传统BP网络的非线性函数误差反馈寻优的思想。
2.2 改进算法的具体步骤
对给定的样本模式对,随机选定一组自由权,作为输出层和隐含层之间固定权值,通过传递函数计算隐层的实际输出,再将输出层与隐层间的权值作为待求量,直接将目标输出作为等式的右边建立方程组来求解。
现定义如下符号(见图1):x (p)输入层的输入矢量;y (p)输入层输入为x (p)时输出层的实际输出矢量;t (p)目标输出矢量;n,m,r分别为输入层、隐层和输出层神经元个数;W为隐层与输入层间的权矩阵;V为输出层与隐层间的权矩阵。具体步骤如下:
(1)随机给定隐层和输入层间神经元的初始权值wij。
(2)由给定的样本输入xi(p)计算出隐层的实际输出aj(p)。为方便起见将图1网络中的阀值写入连接权中去,令:隐层阀值θj=wnj,x(n)=-1,则:
aj(p)=f(■wijxi(p)) (j=1,2…m-1)。
(3)计算输出层与隐层间的权值vjr。以输出层的第r个神经元为对象,由给定的输出目标值tr(p)作为等式的多项式值建立方程,用线性方程组表示为:
a0(1)v1r+a1(1)v2r+…+am(1)vmr=tr(1)a0(2)v1r+a1(2)v2r+…+am(2)vmr=tr(2) ……a0(p)v1r+a1(p)v2r+…+am(p)vmr=tr(p) 简写为: Av=T
为了使该方程组有唯一解,方程矩阵A为非奇异矩阵,其秩等于其增广矩阵的秩,即:r(A)=r(A┊B),且方程的个数等于未知数的个数,故取m=p,此时方程组的唯一解为: Vr=[v0r,v2r,…vmr](r=0,1,2…m-1)
(4)重复第三步就可以求出输出层m个神经元的权值,以求的输出层的权矩阵加上随机固定的隐层与输入层的权值就等于神经网络最后训练的权矩阵。 现以神经网络最简单的XOR问题用VC编程运算进行比较(取神经网络结构为2-4-1型),传统算法和改进BP算法的误差(取动量因子α=0.001 5,步长η=1.653)