基于BP神经网络的分段函数连续优化处理
2019-03-18冯长敏张炳江
冯长敏,张炳江
(北京信息科技大学 理学院,北京 100192)
0 引言
数值优化与计算中,有很多学者研究了光滑优化问题。如,张培爱[1]提出了求解非线性规划的一个连续化方法,其KKT条件通过NCP函数转化为一个非光滑的方程组,然后用熵光滑化函数光滑化,得到一个带参数的方程组,为此提出了一个求解该参数方程组的非内点连续化方法,但是计算效率不高。
人工神经网络(ANN)是在人脑结构的启发下所构建的计算模型。不同于一般的算法,被训练后的神经网络可以完成一些特殊的功能,为系统提供一系列具有代表性的描述问题的样本,即成组的输入、输出样本。神经网络可以推断出输入和输出数据间的映射关系。当训练完成之后,与训练阶段的样本相类似的数据可由神经网络来辨识[2]。
最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。最小二乘法还可用于曲线拟合[3]。
本文以一分段函数为实例,先分析其在间断点处的特点,然后在间断点的领域内随机取出一组正态分布的数据作为输入样本值,计算后的函数值作为输出样本值,然后利用神经网络进行仿真,最后再利用最小二乘法进行函数拟合得出光滑函数,并对其进行误差分析[4]。
1 分段函数的分类
分段函数一般划分为连结型分段函数、分离型分段函数和它们的组合形式3种类型。其中分离型分段函数和组合形式是不具有连续性的。这里研究的是分离型分段函数和它们的组合形式。连结型分段函数如图1所示,分离型分段函数如图2所示,组合形式如图3所示。
图1 连结型分段函数
图2 分离型分段函数
图3 组合形式
2 BP神经网络学习过程
BP(Back Propagation)神经网络,是目前应用较为广泛的前向网络。它由2个传播过程所组成,一是信息的正向传播,二是误差的反向传播[5]。BP 神经网络具有3层或更多层,各种神经元在上下层之间实行的是全连接,而各层之间的神经元则无任何连接。图4是一个3层 BP 网络的结构示意图。
图4 三层BP网络结构
BP神经网络学习基本原理为:对n个输入样本p1,p2,…,pn以及与其对应的输出样本t1,t2,…,tn进行学习训练,学习训练的目的是通过用网络的实际输出a1,a2,…,an与目标向量t1,t2,…,tn之间的误差来修改其权值,使ai(i=1,2,…,n)与期望的ti尽可能地接近,即让网络输出层的误差平方和达到最小。这个过程中,通过连续不断地在相对于误差函数斜率下降的方向上计算网络权值和偏差的变化而逐渐快速地逼近目标,每一次权值和偏差的变化都与网络误差的影响成正比,并以反向传播的方式传递到每一层。
BP神经网络具体训练步骤为:
第一步设置网络相邻层之间节点的初始连接权值、隐含层和输出层之间节点的初始阈值。初始权值和阈值一般选取(-1,1)之间的随机小量;
第二步选取并输入训练样本;
第三步确定输入信息在正向传播过程中的激活函数。在本文分段函数连续优化处理中使用S型激活函数:
f(x)=1/(1+e-x)
(1)
在经过S型激活函数的作用后,在输出层节点k(k=1,2,…,H)处得到输出值:
(2)
式中
(3)
第四步计算训练输出yk与目标输出Tk之间的误差:
δk=(yk-Tk)yk(1-yk)
(4)
第五步令误差δk沿原来的通道返回,进入反向传播,计算引起的隐含层误差:
(5)
第六步沿降低误差的方向调整权值μjk和阈值ψk:
(6)
ψk=ψk+dδk
(7)
第七步沿降低误差的方向调整权值wij和阈值θj:
wij=wij+cγjxi
(8)
θj=ψj+dγj
(9)
第八步针对训练样本集中的每个样本,反复学习上述过程,直至整个样本集的均方误差
(10)