BP神经网络分步赋初值算法的研究
2013-03-29池凯莉董林玺
池凯莉,董林玺
(杭州电子科技大学电子信息工程学院,浙江杭州310018)
0 引言
工程中遇到的问题多数是非线性关系,很难用数学模型来计算,而神经网络具有高度非线性映射的性能特点,只要构建合适的网络,就可以以任意的精度逼近任何的非线性映射,所以神经网络有着十分广泛的应用前景,在网络监测以及交通、医疗、农业等方面获得了广泛的应用。该算法的思想是通过梯度下降法修正各层神经元之间的权值,使误差不断下降以达到期望误差的目的。从本质上说,这种算法是一种迭代过程,迭代算法一般都与初值的选择密切相关,如果初值选择不当,则算法的收敛速度会很慢甚至不收敛,在训练过程中也容易陷入局部极小值。研究者一直致力于算法的改进[1],目前已有很多BP网络改进算法产生,如:批处理、增加动量项、变学习效率等,然而,这些改进方法都是基于随机初始化权值进行训练仿真的,所以不能解决对初始权值的依赖问题。
本研究将采用分步赋值的方法设置初始权值。输入到最后一级隐层的权值矩阵对网络的影响不是很大,只要保证网络的抗干扰性和容错性,使网络处于一个很好的状态即可,本研究采用敏感区赋值,通过矩阵相乘来计算各级的权值。最后一层的输出权值直接作用于输出,对算法的影响最大,笔者进行单独赋值,利用期望值作为实际输出构成线性方程组,以方程组的解作为输出层的权矩阵的初始值,这样不仅可以避免陷入局部最小点,同时也可大大地缩短训练的时间。
1 BP神经网络
传统BP神经网络的思想是:学习过程由信号的正向传播与误差的反向传播两个过程组成[2]。正向传播是将样本经过逐层处理后传向输出层,误差反传是将输出误差以某种形式通过隐层向输入层逐层反传,并将误差分摊给各层的所有单元,从而获得各层单元的误差信号,该信号即作为修正各单元权值的依据。信号正传后误差信号反传,周而复始地进行,该过程就是网络的学习训练过程。该过程一直进行到网络输出的误差减少到可以接受的程度,或进行到预先设定的学习次数为止。
笔者以3层的神经网络为例来阐述神经网络的工作原理[3],其结构图如图1所示。
图13 层BP神经网络结构
网络参数如下:输入样本数为k,输入层节点数为n,隐层节点数为v,隐层加权和向量为net,输出层节点数是m,输入层到隐层的权值矩阵为Wij,输出层权值矩阵是Vjk,教师向量是tk,学习效率为η,动量项为ε,输入和隐层之间的激励函数是f1,输出层的激励函数是函数f2,通常激活函数取单极性S变换函数。
2.1 正向传播
定义网络输出和期望输出不等时,输出误差E可以表示为:
第1隐层加权和netj如下所示:
第1隐层输出hj如下所示:
第2隐层的加权和与输出层的输出计算方法同上。
2.2 反向传播
输出层的权值Δvjk变化如下:
隐层的权值Δwij变化表示为:
2 BP神经网络赋初值算法
传统BP神经网络算法采用的反向迭代逐步调整各层权值,最终得到最优权值矩阵,研究者利用该矩阵对样本进行训练校准,得到更准确的信号数据。但是这种标准的BP算法在应用中暴露了不少内在的缺陷。网络是在权初值基础上展开训练的,因此权值的初值是网络训练的最根本的影响因素,有些文献提出了新的赋初值算法[3-4],主要过程如下。
输入和隐层之间的激励函数是线性分段函数f1,输出层的激励函数采用的是sigmoid函数f2。其中:p=1,2,3…k。输入层和隐层、隐层和输出层的权值矩阵分别是:
输入层与输出层的隐层分别采用不同的赋初值方法来赋值,方法如下:首先对输入层到隐层的权值赋初值,前层对输出的影响很小,主要考虑的是网络的抗干扰性,使网络处于一个良好的状态,该赋值方法已经被验证是切实可行的。
为了使前层稳定,最后网络收敛到设定精度,本研究选择的激励函数是已经研究很成熟的单极性的S函数,如下所示:
该函数保证隐层的输出和样本保持一致的相关性。其赋值原理可总结如下:
f1的反函数如下所示: