改进bp算法
A. BP神经算法是什么能给点既通俗易懂又比较详细的回答吗
BP(Back Propagation)网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP神经网络模型拓扑结构包括输入层(input)、隐层(hide layer)和输出层(output layer)。
BP神经网络算法是在BP神经网络现有算法的基础上提出的,是通过任意选定一组权值,将给定的目标输出直接作为线性方程的代数和来建立线性方程组,解得待求权,不存在传统方法的局部极小及收敛速度慢的问题,且更易理解。
1 传统的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) 式中:dtk为输出层的校正误差;ejk为隐层的校正误差。 (3)计算新的连接权及阀值,计算公式如下: vjt(n+1)=vjt(n)+?琢dtkbj wij(n+1)=wij(n)+?茁ejkaik rt(n+1)=rt(n)+?琢dtk θj(n+1)=θj(n)+?茁ejk 式中:?琢,?茁为学习系数(0<?琢<1,0<?茁<1)。 (4)选取下一个输入模式对返回第2步反复训练直到网络设输出误差达到要求结束训练。 传统的BP算法,实质上是把一组样本输入/输出问题转化为一个非线性优化问题,并通过负梯度下降算法,利用迭代运算求解权值问题的一种学习方法,但其收敛速度慢且容易陷入局部极小,为此提出了一种新的算法,即高斯消元法。
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个神经元的权值,以求的输出层的权矩阵加上随机固定的隐层与输入层的权值就等于神经网络最后训练的权矩阵。
3 计算机运算实例
现以神经网络最简单的XOR问题用VC编程运算进行比较(取神经网络结构为2-4-1型),传统算法和改进BP算法的误差(取动量因子α=0.001 5,步长η=1.653)
B. 为什么我用遗传算法改进的BP还不如不改进呢
两种可能:一是遗传算法程序编的有问题(前提是BP网络没问题);二就是遗传算法的评价标准或者停止准则选择不当。
C. 读懂反向传播算法(bp算法)
反向传播算法可以说是神经网络最基础也是最重要的知识点。基本上所以的优化算法都是在反向传播算出梯度之后进行改进的。同时,也因为反向传播算法是一个递归的形式,一层一层的向后传播误差即可,很容易实现(这部分听不懂没关系,下面介绍)。不要被反向传播吓到,掌握其核心思想就很容易自己手推出来。
我们知道神经网络都是有一个loss函数的。这个函数根据不同的任务有不同的定义方式,但是这个loss函数的目的就是计算出当前神经网络建模出来输出的数据和理想数据之间的距离。计算出loss之后,根据反向传播算法就可以更新网络中的各种参数以此使loss不断下降,即可使输出的数据更加理想。
所以,现在的任务是,已知一个网络的loss之后,如何根据loss来更新参数呢?具体点即如何更新网络节点中的权重w和偏差b的值呢?
这里我们采用的是全连接神经网络进行说明。
要想把这个过程说清楚,首先需要将神经网络中各个参数用文字表达清楚。定义的就是w和b在网络中的准确位置。
对于 表示的是神经网络中第 层第k个节点到神经网络中第 层第j个节点之间的权重。注意w的下标是首位表示的是节点后层节点的位置,末尾表示是前层节点的位置。理解这样的表达方式在后面的计算中会很好理解。
同理,对于b的表示:
b的表示相比于w要简单一些,符号 表示第l层网络在第j个节点的偏置。无论w还是b的表示,上标都是表示层数。并且 和 表示都是第l层网络第j个节点的参数。所以该节点的输出可以表示为:
神经网络输出之后会经过一个激活函数,这用激活函数用 表示,则经过激活函数输出为:
至此,根据上面符号 、 、 、 。我们可以对于神经网络里面每一个数据准确的表示了。
给定一个损失函数之后,用 表示,说白了反向传播就是求∂C/∂w和∂C/∂b,然后将这个值乘以和对应的w,b进行相减就可以实现一次的参数更新了。为什么这样的操作就可以优化网络,减小loss值呢?
来源于导数的概念和速度相关。∂C/∂w和∂C/∂b相当于loss值C相对于w和v变化的速度。如果∂C/∂w是正的,则增大w,C也会增大,如果希望C减小的话,应该减小w;并且∂C/∂w的绝对值越大,表示w对C的值影响越大,w稍微有一点变化,C就会有大幅变化。如果要优化C变小,w应该对应的减少多少呢?也没有一个确定的答案。这里通过变化的速度和学习率相乘作为一个减小的值。通过多轮迭代。最终是希望c达到最小点。而当函数落入最小值的时候,无论是局部最小还是全局最小,其周围一定是平滑的。所以此时∂C/∂w和∂C/∂b将会变得很小甚至为0,即参数不在更新了。当函数在局部最小点处参数不在更新出现梯度消失的问题时,目前也有各种trick进行解决。不是这里的重点。
为了好说明,这里定义一个很简单的损失函数C:
接下来就是有意思的阶段了。这里还是利用上一节中∂C/∂w和∂C/∂b的解释。如果我们想要求出∂C/∂w和∂C/∂b的值,即具体的 、 对C影响速率的值,我们找一个中间变量∂C/∂ 。因为我们知道:
我们定义:
当我们知道了 值之后,我们根据 式子可以很容易求出 。
利用导数的链式法则:
很容易推出来不是?同理可以求出:
可以看出通过媒介 很容易求出∂C/∂w和∂C/∂b。那么我们现在来理解一下 到底是什么意思,以及如何求出来每一个l层j节点的 值。
根据定义:
可以看出来 就是 对于C的影响大小(联系之前说的导数和速率的关系)。而 是第 层第 个神经元未进过激活函数之前的输出。所以我们可以理解 为网络中第 层第 个神经元对loss的影响。所以很直观的看法就是我们先求出单个神经元对loss值得影响,然后再计算该神经元内部参数对于loss的影响。
ok,如果我们已经理解了为什么要引入 变量以及如何利用该变量计算具体参数的梯度后,接下来我们就可以看看如何获得 值。反向传播的名字我想也就是通过计算 的方式而来的。是一层一层递归而来的。
既然说是递归的方式,我们来思考一下 和 之间有什么关系,如果找到这个关系之后,我们就可以默认我们如果知道最后一层网络节点的 值,我们就可以获得倒数第二层网络节点的 值,倒数第三层,倒数第四层,……以此推类即可获得整个网络的每个节点的 值。至此我们的反向传播也基本完成了。
所以最重要的有两点:
先看问题1,直接根据求导的链式法则就可以找出两个的关系,具体公式如下,可以多看看手写一下,思路上也很简单。
觉得这样的链式公式还是很直观的,如果不好理解,可以自己画一个神经网络图,连上节点与节点之间的线,标上参数,然后推一下应该就能理解了。
这里的 都表示的未经过激活函数的神经元的输出。 表示激活函数。因为:
所以:
带入上式就可以得出:
至此就找出了 和 之间的关系了。
(还能简化,根据最开始我们定义的 )。
理解起来就是网络中前面一层某一个神经元对于loss的影响与该层的后一层所有的神经元对loss的影响、该神经元的输出大小、该神经元与后一层神经元连接的权重有关系的,并且是一个累加的效应。这样的理解也是非常直观合乎常理的。
现在万事具备,只差问题2了。即假设最后一层网络是L,最后一层 如何计算得出。最后一层的 值就像一个导火索,一旦有了开始,就可以利用我们之前推出来的: 公式进行反向传播了(反向传播还是很形象的不是?)。现在解决这个问题。这个问题就是和损失函数具体怎么定义有关系了。不过我们先不考虑C的具体形式,根据通用的链式法则我们可以得到:
这里需要注意的是最后一层激活函数使用的是哪种。最后一层激活函数在计算某一个神经元的输出时可能会结合其他节点的输出来计算。比如softmax激活函数,其输出的是一个概率值【0,1】。输出大小就是结合输出所有的值。
现在我们来考虑两个具体的损失函数,并且采用之前定义的均方误差损失函数 :
求导为:
因为sigmoid输出的值仅仅和输入的x值有关 。所以 当 时值为0.所以:
根据上面,BP推导有三部曲,先求出 ,再根据 分别求出 、 。总结公式如下:
启动上面反传的导火索是最后一层的 值,计算公式为:
根据最后一层不同类型的激活函数不同对待。
D. 基于改进的BP人工神经网络算法的软土地基沉降预测
改进的BP神经网络预测需要等间隔数据,利用Spline插值点进行建模。为了和前述方法的预测效果对比,仍选取550~665d(共24个样本数据)的沉降量作为训练样本,预留 670~745d(共16个样本数据)的沉降量作为对训练好的BP人工神经网络的检验样本。以每相邻的连续4个沉降量(时间间隔Δt=5 d)作为一个输入样本(S1,S2,S3,S4),紧邻的第5个沉降量作为目标样本(S5),这样,利用 2 4个原始数据点,构建了 21组训练样本输入向量。每组训练样本的输入层单元数为n=4,输出层单元数为q=1,又隐层单元数p的确定公式为
温州浅滩软土工程特性及固结沉降规律研究
式中:a为1~10之间的常数。
由式(5.57)确定隐层神经元数为p=3~12。其具体值将通过BP人工神经网络训练误差来判断,取网络误差最小时对应的隐层神经元数。
本书基于MATLAB 7.1 编制了改进的BP神经网络程序,对标准的BP人工神经网络算法采取了增加动量项法和自适应调节学习速率法两点改进,此外,对输入输出数据进行了尺度变换(归一化处理),变换后可防止因净输入的绝对值过大而使神经元输出饱和,继而使权值调整进入误差曲面的平坦区。输入输出数据变换为[0,1]区间内的值的归一化预处理变换式为
温州浅滩软土工程特性及固结沉降规律研究
式中:xi为输入或输出数据;xmin、xmax为最值;
B P神经网络模型的训练曲线如图5.1 7所示。
本书所建立的改进的B P神经网络模型之拟合/预测值与实测值列于表5.13,拟合/预测曲线与实测曲线对比如图5.1 8所示,其残差图如图5.19所示。
由表5.13 和图5.1 8、5.19可知,改进的 B P 神经网络模型预测结果的平均残差为0.1 cm,平均相对误差为0.0 6%,拟合及预测效果很好。但是与前面几种预测方法不同的是,改进的BP人工神经网络模型的预测值略小于实测值,随着预测时间远离训练样本,这将使结果偏于不安全,所以,建议该法用于短、中期预测。同时,为了使后期预测精度更高,应不断更新训练样本向量集。
图5.17 N5+850断面 BP 神经网络训练曲线
图5.18 N5+850断面改进的 BP人工神经网络模型预测曲线与实测曲线对比
图5.19 N5+850断面改进的 BP人工神经网络模型预测残差图
表5.13 改进的BP神经网络预测值与实测值对比
E. BP算法及其改进
传统的BP算法及其改进算法的一个很大缺点是:由于其误差目标函数对于待学习的连接权值来说非凸的,存在局部最小点,对网络进行训练时,这些算法的权值一旦落入权值空间的局部最小点就很难跳出,因而无法达到全局最小点(即最优点)而使得网络训练失败。针对这些缺陷,根据凸函数及其共轭的性质,利用Fenchel不等式,使用约束优化理论中的罚函数方法构造出了带有惩罚项的新误差目标函数。
用新的目标函数对前馈神经网络进行优化训练时,隐层输出也作为被优化变量。这个目标函数的主要特点有:
1.固定隐层输出,该目标函数对连接权值来说是凸的;固定连接权值,对隐层输出来说是凸的。这样在对连接权值和隐层输出进行交替优化时,它们所面对的目标函数都是凸函数,不存在局部最小的问题,算法对于初始权值的敏感性降低;
2.由于惩罚因子是逐渐增大的,使得权值的搜索空间变得比较大,从而对于大规模的网络也能够训练,在一定程度上降低了训练过程陷入局部最小的可能性。
这些特性能够在很大程度上有效地克服以往前馈网络的训练算法易于陷入局部最小而使网络训练失败的重大缺陷,也为利用凸优化理论研究前馈神经网络的学习算法开创了一个新思路。在网络训练时,可以对连接权值和隐层输出进行交替优化。把这种新算法应用到前馈神经网络训练学习中,在学习速度、泛化能力、网络训练成功率等多方面均优于传统训练算法,如经典的BP算法。数值试验也表明了这一新算法的有效性。
本文通过典型的BP算法与新算法的比较,得到了二者之间相互关系的初步结论。从理论上证明了当惩罚因子趋于正无穷大时新算法就是BP算法,并且用数值试验说明了惩罚因子在网络训练算法中的作用和意义。对于三层前馈神经网络来说,惩罚因子较小时,隐层神经元局部梯度的可变范围大,有利于连接权值的更新;惩罚因子较大时,隐层神经元局部梯度的可变范围小,不利于连接权值的更新,但能提高网络训练精度。这说明了在网络训练过程中惩罚因子为何从小到大变化的原因,也说明了新算法的可行性而BP算法则时有无法更新连接权值的重大缺陷。
矿体预测在矿床地质中占有重要地位,由于输入样本量大,用以往前馈网络算法进行矿体预测效果不佳。本文把前馈网络新算法应用到矿体预测中,取得了良好的预期效果。
本文最后指出了新算法的优点,并指出了有待改进的地方。
关键词:前馈神经网络,凸优化理论,训练算法,矿体预测,应用
Feed forward Neural Networks Training Algorithm Based on Convex Optimization and Its Application in Deposit Forcasting
JIA Wen-chen (Computer Application)
Directed by YE Shi-wei
Abstract
The paper studies primarily the application of convex optimization theory and algorithm for feed forward neural networks’ training and convergence performance.
It reviews the history of feed forward neural networks, points out that the training of feed forward neural networks is essentially a non-linear problem and introces BP algorithm, its advantages as well as disadvantages and previous improvements for it. One of the big disadvantages of BP algorithm and its improvement algorithms is: because its error target function is non-convex in the weight values between neurons in different layers and exists local minimum point, thus, if the weight values enter local minimum point in weight values space when network is trained, it is difficult to skip local minimum point and reach the global minimum point (i.e. the most optimal point).If this happening, the training of networks will be unsuccessful. To overcome these essential disadvantages, the paper constructs a new error target function including restriction item according to convex function, Fenchel inequality in the conjugate of convex function and punishment function method in restriction optimization theory.
When feed forward neural networks based on the new target function is being trained, hidden layers’ outputs are seen as optimization variables. The main characteristics of the new target function are as follows:
1.With fixed hidden layers’ outputs, the new target function is convex in connecting weight variables; with fixed connecting weight values, the new target function is convex in hidden layers’ outputs. Thus, when connecting weight values and hidden layers’ outputs are optimized alternately, the new target function is convex in them, doesn’t exist local minimum point, and the algorithm’s sensitiveness is reced for original weight values .
2.Because the punishment factor is increased graally, weight values ’ searching space gets much bigger, so big networks can be trained and the possibility of entering local minimum point can be reced to a certain extent in network training process.
Using these characteristics can overcome efficiently in the former feed forward neural networks’ training algorithms the big disadvantage that networks training enters local minimum point easily. This creats a new idea for feed forward neural networks’ learning algorithms by using convex optimization theory .In networks training, connecting weight variables and hidden layer outputs can be optimized alternately. The new algorithm is much better than traditional algorithms for feed forward neural networks. The numerical experiments show that the new algorithm is successful.
By comparing the new algorithm with the traditional ones, a primary conclusion of their relationship is reached. It is proved theoretically that when the punishment factor nears infinity, the new algorithm is BP algorithm yet. The meaning and function of the punishment factor are also explained by numerical experiments. For three-layer feed forward neural networks, when the punishment factor is smaller, hidden layer outputs’ variable range is bigger and this is in favor to updating of the connecting weights values, when the punishment factor is bigger, hidden layer outputs’ variable range is smaller and this is not in favor to updating of the connecting weights values but it can improve precision of networks. This explains the reason that the punishment factor should be increased graally in networks training process. It also explains feasibility of the new algorithm and BP algorithm’s disadvantage that connecting weigh values can not be updated sometimes.
Deposit forecasting is very important in deposit geology. The previous algorithms’ effect is not good in deposit forecasting because of much more input samples. The paper applies the new algorithm to deposit forecasting and expectant result is reached.
The paper points out the new algorithm’s strongpoint as well as to-be-improved places in the end.
Keywords: feed forward neural networks, convex optimization theory, training algorithm, deposit forecasting, application
传统的BP算法及其改进算法的一个很大缺点是:由于其误差目标函数对于待学习的连接权值来说非凸的,存在局部最小点,对网络进行训练时,这些算法的权值一旦落入权值空间的局部最小点就很难跳出,因而无法达到全局最小点(即最优点)而使得网络训练失败。针对这些缺陷,根据凸函数及其共轭的性质,利用Fenchel不等式,使用约束优化理论中的罚函数方法构造出了带有惩罚项的新误差目标函数。
用新的目标函数对前馈神经网络进行优化训练时,隐层输出也作为被优化变量。这个目标函数的主要特点有:
1.固定隐层输出,该目标函数对连接权值来说是凸的;固定连接权值,对隐层输出来说是凸的。这样在对连接权值和隐层输出进行交替优化时,它们所面对的目标函数都是凸函数,不存在局部最小的问题,算法对于初始权值的敏感性降低;
2.由于惩罚因子是逐渐增大的,使得权值的搜索空间变得比较大,从而对于大规模的网络也能够训练,在一定程度上降低了训练过程陷入局部最小的可能性。
这些特性能够在很大程度上有效地克服以往前馈网络的训练算法易于陷入局部最小而使网络训练失败的重大缺陷,也为利用凸优化理论研究前馈神经网络的学习算法开创了一个新思路。在网络训练时,可以对连接权值和隐层输出进行交替优化。把这种新算法应用到前馈神经网络训练学习中,在学习速度、泛化能力、网络训练成功率等多方面均优于传统训练算法,如经典的BP算法。数值试验也表明了这一新算法的有效性。
本文通过典型的BP算法与新算法的比较,得到了二者之间相互关系的初步结论。从理论上证明了当惩罚因子趋于正无穷大时新算法就是BP算法,并且用数值试验说明了惩罚因子在网络训练算法中的作用和意义。对于三层前馈神经网络来说,惩罚因子较小时,隐层神经元局部梯度的可变范围大,有利于连接权值的更新;惩罚因子较大时,隐层神经元局部梯度的可变范围小,不利于连接权值的更新,但能提高网络训练精度。这说明了在网络训练过程中惩罚因子为何从小到大变化的原因,也说明了新算法的可行性而BP算法则时有无法更新连接权值的重大缺陷。
矿体预测在矿床地质中占有重要地位,由于输入样本量大,用以往前馈网络算法进行矿体预测效果不佳。本文把前馈网络新算法应用到矿体预测中,取得了良好的预期效果。
本文最后指出了新算法的优点,并指出了有待改进的地方。
关键词:前馈神经网络,凸优化理论,训练算法,矿体预测,应用
Feed forward Neural Networks Training Algorithm Based on Convex Optimization and Its Application in Deposit Forcasting
JIA Wen-chen (Computer Application)
Directed by YE Shi-wei
Abstract
The paper studies primarily the application of convex optimization theory and algorithm for feed forward neural networks’ training and convergence performance.
It reviews the history of feed forward neural networks, points out that the training of feed forward neural networks is essentially a non-linear problem and introces BP algorithm, its advantages as well as disadvantages and previous improvements for it. One of the big disadvantages of BP algorithm and its improvement algorithms is: because its error target function is non-convex in the weight values between neurons in different layers and exists local minimum point, thus, if the weight values enter local minimum point in weight values space when network is trained, it is difficult to skip local minimum point and reach the global minimum point (i.e. the most optimal point).If this happening, the training of networks will be unsuccessful. To overcome these essential disadvantages, the paper constructs a new error target function including restriction item according to convex function, Fenchel inequality in the conjugate of convex function and punishment function method in restriction optimization theory.
When feed forward neural networks based on the new target function is being trained, hidden layers’ outputs are seen as optimization variables. The main characteristics of the new target function are as follows:
1.With fixed hidden layers’ outputs, the new target function is convex in connecting weight variables; with fixed connecting weight values, the new target function is convex in hidden layers’ outputs. Thus, when connecting weight values and hidden layers’ outputs are optimized alternately, the new target function is convex in them, doesn’t exist local minimum point, and the algorithm’s sensitiveness is reced for original weight values .
2.Because the punishment factor is increased graally, weight values ’ searching space gets much bigger, so big networks can be trained and the possibility of entering local minimum point can be reced to a certain extent in network training process.
Using these characteristics can overcome efficiently in the former feed forward neural networks’ training algorithms the big disadvantage that networks training enters local minimum point easily. This creats a new idea for feed forward neural networks’ learning algorithms by using convex optimization theory .In networks training, connecting weight variables and hidden layer outputs can be optimized alternately. The new algorithm is much better than traditional algorithms for feed forward neural networks. The numerical experiments show that the new algorithm is successful.
By comparing the new algorithm with the traditional ones, a primary conclusion of their relationship is reached. It is proved theoretically that when the punishment factor nears infinity, the new algorithm is BP algorithm yet. The meaning and function of the punishment factor are also explained by numerical experiments. For three-layer feed forward neural networks, when the punishment factor is smaller, hidden layer outputs’ variable range is bigger and this is in favor to updating of the connecting weights values, when the punishment factor is bigger, hidden layer outputs’ variable range is smaller and this is not in favor to updating of the connecting weights values but it can improve precision of networks. This explains the reason that the punishment factor should be increased graally in networks training process. It also explains feasibility of the new algorithm and BP algorithm’s disadvantage that connecting weigh values can not be updated sometimes.
Deposit forecasting is very important in deposit geology. The previous algorithms’ effect is not good in deposit forecasting because of much more input samples. The paper applies the new algorithm to deposit forecasting and expectant result is reached.
The paper points out the new algorithm’s strongpoint as well as to-be-improved places in the end.
Keywords: feed forward neural networks, convex optimization theory, training algorithm, deposit forecasting, application
BP算法及其改进
2.1 BP算法步骤
1°随机抽取初始权值ω0;
2°输入学习样本对(Xp,Yp),学习速率η,误差水平ε;
3°依次计算各层结点输出opi,opj,opk;
4°修正权值ωk+1=ωk+ηpk,其中pk=,ωk为第k次迭代权变量;
5°若误差E<ε停止,否则转3°。
2.2 最优步长ηk的确定
在上面的算法中,学习速率η实质上是一个沿负梯度方向的步长因子,在每一次迭代中如何确定一个最优步长ηk,使其误差值下降最快,则是典型的一维搜索问题,即E(ωk+ηkpk)=(ωk+ηpk)。令Φ(η)=E(ωk+ηpk),则Φ′(η)=dE(ωk+ηpk)/dη=E(ωk+ηpk)Tpk。若ηk为(η)的极小值点,则Φ′(ηk)=0,即E(ωk+ηpk)Tpk=-pTk+1pk=0。确定ηk的算法步骤如下
1°给定η0=0,h=0.01,ε0=0.00001;
2°计算Φ′(η0),若Φ′(η0)=0,则令ηk=η0,停止计算;
3°令h=2h, η1=η0+h;
4°计算Φ′(η1),若Φ′(η1)=0,则令ηk=η1,停止计算;
若Φ′(η1)>0,则令a=η0,b=η1;若Φ′(η1)<0,则令η0=η1,转3°;
5°计算Φ′(a),若Φ′(a)=0,则ηk=a,停止计算;
6°计算Φ′(b),若Φ′(b)=0,则ηk=b,停止计算;
7°计算Φ′(a+b/2),若Φ′(a+b/2)=0,则ηk=a+b/2,停止计算;
若Φ′(a+b/2)<0,则令a=a+b/2;若Φ′(a+b/2)>0,则令b=a+b/2
8°若|a-b|<ε0,则令,ηk=a+b/2,停止计算,否则转7°。
2.3 改进BP算法的特点分析
在上述改进的BP算法中,对学习速率η的选取不再由用户自己确定,而是在每次迭代过程中让计算机自动寻找最优步长ηk。而确定ηk的算法中,首先给定η0=0,由定义Φ(η)=E(ωk+ηpk)知,Φ′(η)=dE(ωk+ηpk)/dη=E(ωk+ηpk)Tpk,即Φ′(η0)=-pTkpk≤0。若Φ′(η0)=0,则表明此时下降方向pk为零向量,也即已达到局部极值点,否则必有Φ′(η0)<0,而对于一维函数Φ(η)的性质可知,Φ′(η0)<0则在η0=0的局部范围内函数为减函数。故在每一次迭代过程中给η0赋初值0是合理的。
改进后的BP算法与原BP算法相比有两处变化,即步骤2°中不需给定学习速率η的值;另外在每一次修正权值之前,即步骤4°前已计算出最优步长ηk。