改进的BP神经网络

2025-01-12

改进的BP神经网络(精选12篇)

改进的BP神经网络 篇1

神经网络的改进

神经网络定义:我们基于对大脑神经认知然后对其进行人为的构造出某种具体功能的网络成为神经网络。

神经网络的特点:并行事务处理能力强;自学能力强。对于非线性问题, 非平衡问题以及非高斯问题有很好的适应能力。我们最为熟知的模式识别就是神经网络的主要领域之一。由于神经网络的超强描述能力和精准性, 得到各个领域的广泛应用。

神经网络包括生物神经, 人工神经网络两种。其中生物神经是由生物大脑神经元, 细胞等组成, 生物的意识就由此产生, 生物用来进行思考并指挥行动。人工神经元是通过计算机进行模拟人脑的构造, 利用电子设备等进行生物神经元的模拟, 通过算法来对人脑的记忆、回忆和反思等思想活动的模拟, 并在语音识别等领域进行应用。因此可以定义:通过对简单的紧密联系的处理单元进行组合而成的的复杂网络系统。我们可以通过软件来实习, 也可以看做认知的模式, 因此人工神经网络和并行分布处理有着异曲同工的效果, 这就说明人工神经网络在并行处理能力方面的优势。

BP神经网络:Back-Propagation Neural Network, 是一种没有回向反馈信息只向前传指的网络。神经单元按照层进行排列, 所有的神经单元的输出信息都只给它的下一层而不进行反馈, 每个神经单元的状态都由上一层的神经单元的输入值, 接口函数等信息所决定。

传统BP神经网络算法

BP网络算法的流程:

采集样本输入到BP网络中

网络的正方向进行结果的输出

对比输出结果和理论期望值的差值

按照路径进行查找输出结果的差值的因素, 逐步挑战各个因素减少误差。

重复以上步骤, 直到误差达到可以接收的精度为止。

缺点:标准的BP神经网络算法误差影响因素在于学习率的取值, 当序列值越来约小时, 误差也越来越小, 但是学习率是个常数时, 就无法进行缩小误差值, 为了减少误差值只能增加学习率, 减小学习率, 但是同时会影响网络的收敛, 增大网络的震荡幅度, 增加了网络不稳定性。为了解决这种情况, 传统的BP网络算法增加了一个活动因子进行控制。这样增加了系统的时间复杂度和空间复杂度。

改进的BP神经网络算法

BP神经网络算法上增加神经元结点数量会增加硬件, 这样会增加算法的复杂程度, 如果减少神经网络数量就会减少输出值数量, 降低了精度, 增大的误差。我从隐藏层进行解决这个问题, 在隐藏层进行设置神经元数量, 可以进行数量的隐藏, 从而减轻硬件负担。

设第L层为隐藏层, 从第一层到L层每层有i个神经单元, 每个神经单元的系数为wi, 根据模糊理论得出每个神经单元系数为Ui, 因此隐藏层机构为:{Ui/wi}, 当ui>=x时wi=1, 当ui<x时, wi=0;x是阈值。我们改变了之前传统的增加活动因子来解决收敛差值的问题。

改进的BP神经网络试验测试

利用Matlab进行算法运行测试, 对传统的BP和改进的BP神经网络算法进行对比测试。我们预期的精度为0.0001, 设置梯度因子为1.6。

输入量:

I={0.1234, 0.3214, 0.3424, 0.5432, -0.3242, 0.3241, -0.3214}

预期输出量:

O={0.1123, 0.2341, 0.3214, 0.5321, -0.4321, 0.3212, -0.2123}

传统的活动因子为0.8, 改进的BP神经网络算法阈值x=0.1321。

在matlab上的试验结果如下图2和图3所示。

从对比结果看改进的BP神经网络算法的误差小、收缩率高的优点。

改进的BP神经网络在Web文本上的应用

1.构造特征集

对N篇分类文档进行特征集构造:首先统计单个特征项出现的次数, 把所有出现的特征项进行归结, 设定一个阈值, 从特征项中除去低于设定阈值大小的项目, 然后通过同义词、相近词意进行归类得到特征集。

2.构造特征向量

根据生成的特征向量集, 统计特征向量集中出现的特征向量值的次数, 文档访问的次数结合来确定分析的特征向量。

3.多个子网进行并联构造BP网络模型

在传统的BP神经网络上进行创新, 每个子网生成一个类别的文档, 在减轻网络负载的同时提高了精确度。

4.划分文档

a.根据特征项构造特征向量;

b.子网参数赋值:子网数量为n, 误差范围为f, 反复次数为x, 反复最大数量为max;

c.给隐藏层、阈值赋值;

d.计算结果, 保留误差值;

e.如果误差值大于f, 或者反复次数大于最大max则程序结束;

f.对每层的阈值进行修改, 执行步骤d;

g.输出最终结果, 程序结束。

通过上述步骤完成了改进的BP神经网络对WEB文档的分类应用。

实验结果:

样本:选择旅游主题的WEB网站进行分析, 首先把一个旅游网站的页面分为如下几类:a.旅游指南;b.景点介绍;c.食宿推荐;d.旅行方式;e.交通分类;f.驴友经验等。

利用谷歌对网站进行检索, 选取一部分网页中的数据进行分析。样本大小为1000, 对网页进行分类组织后形成特征项80个, 对1000个网页编码处理。

子网的数量和类别数量相同, 每个子网对应一个隐蔽层, 从子网的输入信息量中提取特征项数量, 根据改进的BP算法进行试验, 每个子网为一个输出点, 从而得出结果。

从得出的结果中进行分类, 把网页的访问率超过阈值的网页分离出来, 进行和预先估值相比较, 发现改进的BP神经网络算法的收敛快, 避免了拟合的现象。因此改进的BP神经网络算法在应用此类问题上有效地解决了传统BP神经网络收敛慢, 精度低的缺点。

摘要:在进行Web数据挖掘中, 针对具体问题的挖掘算法改进尤为重要, 我们很难找到一种万能的算法针对复杂的Web数据进行数据处理和分析, 在这个过程中我们往往采用的是针对不同的日志文件进行针对性的算法改进, 而众多的改进算法来自我们生活中的缩影, 神经网络的数据处理就是其中一种, 并且基于BP改进的神经网络算法更加适合Web日志的处理和分析。

改进的BP神经网络 篇2

基于改进的BP神经网络对西安黄土抗剪强度指标的研究

运用带适应学习率和动量因子的梯度递减法--TRAINGDX训练函数的`BP网络对黄土的抗剪强度指标进行了预测.首先分析了影响黄土抗剪强度的6个影响因素,而后建立了6∶14∶2的神经网络(Artificial Neural Network)黄土抗剪强度指标的预测模型,最后借助Matlab为平台,利用自编的程序,进行了预测计算.通过对预测结果的分析可知该模型模拟和预测的精度均较高,可以应用到黄土抗剪强度指标的预测中.

作 者:党维维 高闯洲 党发宁 田威 DANG Wei-wei GAO Chuang-zhou DANG Fa-ning TIAN Wei 作者单位:西安理工大学,岩土工程研究所,陕西,西安,710048刊 名:水利与建筑工程学报 ISTIC英文刊名:JOURNAL OF WATER RESOURCES AND ARCHITECTURAL ENGINEERING年,卷(期):7(2)分类号:O242.1关键词:人工神经网络 TRAINGDX训练函数 改进BP算法 Matlab 西安黄土 抗剪强度

改进的BP神经网络 篇3

摘 要:BP算法较强的自学习能力使之可对短期电力负荷进行预测,将一种改进的BP神经网络学习算法应用于短期电力负荷预测中,该算法由于加入动量项修正权值阈值提高了BP神经网络本身的精度,使得预测结果具有更高的精度,算例验证了该算法处理短期电力系统负荷预测的高效性。

关键词:神经网络;短期负荷预测;BP算法;动量项

1 概述

电力系统负荷预测实质是对电力市场需求的预测,短期电力负荷预测是电力部门的重要工作之一。目前主要的负荷预测方法有传统预测、灰色预测、混沌理论预测、智能技术预测、优选组合预测等,其中智能预测中最典型的就是人工神经网络。

人工神经网络是一个极其复杂的非线性动力学系统。它的自学习功能对预测有着重要的意义,能通过学习已存在的历史负荷数据,来反映出输入变量和输出变量之间的非线性关系。由于很多因素都会对电力负荷造成影响,所以可以把神经网络算法引用到负荷预测中来,提高电力负荷的预测精度。本文针对短期电力负荷预测的问题,采用了一种增加动量项改进BP算法的负荷预测方法,并对某城市的有功负荷进行短期负荷预测仿真。

2 传统BP算法及其改进

2.1 传统BP模型及其学习过程

传统BP算法的实质是求均方误差函数的最小值问题,常选择Sigmoid型函数作为激励函数。如图2-1所示即为典型的三层BP神经网络的结构图,从左至右依次为输入层、隐含层、输出层。一般情况下,输入层单元数与输出层相等,隐含层比输入层多,一般多取2n-1,其中n为输入层单元数。

[图2-1 三层BP神经网络结构图]

令输入模式向量为Xk=(x,x,…,x)T,(k=1,2,…,m),m是学习模式对的个数,n为输入层单元数;对应输入模式的期望输出模式向量为Yk=(y,y,…,y)T,q为输出层单元数;中间隐含层的净输入向量为Sk=(S,S,…,S)T,输出向量为Bk=(b,b,…,b)T,p为隐含层单元数;输出层净输入向量为Lk=(l,l,…,l)T,实际输出向量为Ck=(c,c,…,c)T;输入层至隐含层的连接权值为W={wij}(i=1,2,…,n,j=1,2,…,p),隐含层到输出层的连接权值为V={vjt},(j=1,2,…,p,t=1,2,…,q);隐含层各个单元的阈值为θ={θj}(j=1,2,…,p),输出层各个单元的阈值为γ={γt}(t=1,2,…,q)。

中间隐含层各个神经元的净输入和输出:

S=wijs-θj j=1,2,…,p b=f(s) j=1,2,…,p

输出层各个神经元的净输入和实际输出:

l=vjtb-γt t=1,2,…,q c=f(l) j=1,2,…,q

依据给定的期望输出值,得到输出层各个神经元的校正误差:

d=(y-c)f′(l) t=1,2,…,q;隐含层各个神经元的校正误差:

e=[vjtd]f′(S) j=1,2,…,p修正隐含层和输出层神经元之间的阈值γ,其中α为学习速率,0<α<1:

Δvjt=αdd i=1,2,…,p,t=1,2,…,q Δvjt=αdb i=1,2,…,p,t=1,2,…,q

Δγt=αd t=1,2,…,q

修正输入层与隐含层的连接权值和隐含层神经元的阈值θ,其中β为学习速率,0<β<1:

Δwij=βex i=1,2,…,n,j=1,2,…,p Δθj=βe j=1,2,…,p

直到全部m个学习模式对训练完毕,然后判断该神经网络的全局误差E是否满足训练精度要求。

2.2 BP算法的改进

传统BP算法在调整连接权值时,只考虑了此次调整的误差梯度下降方向,因而经常会使训练过程发生振荡,收敛速度缓慢。本文通过增加动量项调整连接权值来改进传统BP算法,进而克服这些缺点。

为了提高神经网络的训练速度,可以在对连接权值进行调整时,以一定的比例加上前一次学习时的调整量,即动量项,带有动量项的连接权值调整公式为:

Δwij(n)=-β+ηΔwij(n-1)

其中ηΔwij(n-1)為动量项,n为学习次数,η为动量系数,0<η<1。加入动量项的实质,就是使其学习速率在训练过程中不再是一个恒定的值。动量项对于n时刻的权值调整起着阻尼作用。在引入动量项后,向同一方向来进行连接权值的调整,即使两次连接权值调整的方向不一样,也可以减小训练过程中的振荡趋势,提高训练速度,加快网络的收敛。

3 基于BP算法的短期电力系统负荷预测及其仿真分析

3.1 负荷预测的基本思想

利用BP神经网络预测未来时日的数据,主要思想是以过去的历史数据作为网络的训练数据,当网络训练完毕,就可通过输入新的时序数据来预测未来数据。因各种因素都会对短期负荷造成一定影响,于是便可建立如图3-1所示的电力系统负荷预测的模型。

3.2 BP神经网络的设计

将一星期内的每一天看成是相同的负荷类型,每隔两小时对电力负荷进行一次测量,得12组整点测量的负荷数据,记为输入变量,输出变量为预测日当天的12个整点的电力负荷值,中间层取神经元位数为25。网络中间层和输出层神经元的激励函数均采用S型函数。

3.3 实例分析

参考文献[2]中的数据,以某城市2009年6月13日到6月23日的12个整点电力负荷值,作为该网络的样本数据,预测6月24日的电力负荷值。分别采用传统和改进的BP算法对这些数据用matlab进行编程仿真,预测结果如表1所示,预测结果仿真图及误差曲线图分别如图3-2、3-3所示。

由以上仿真结果可知,传统BP算法电力负荷预测的最大误差为0.4857%,平均绝对值相对误差为0.0760%;改进BP算法电力负荷预测的最大误差为0.0548%,平均绝对值相对误差为0.0213%。综合图3-2和3-3的比较可得,加入动量项改进后的BP算法在预测精度上明显优于传统BP神经网络算法,故该神经网络满足应用要求。

4 结语

电力系统短期负荷预测对供输电以及电力系统安全分析具有重要的意义。本文在传统BP神经网络的基础上,提出了加入动量项改进BP算法,克服了传统BP算法的一些缺点和不足之处。仿真结果表明,该方法具有较高的预测精度,可以为电力系统提供有效的决策依据。

参考文献:

[1]马锐.人工神经网络原理[M].北京:机械工业出版社.2010:45-57.

[2]米阳,朱旺青,李正辉.改进的BP算法在短期负荷预测中的应用[J].上海电力学院学报,2011,27(1):14-18.

[3]潘雪涛.基于改进BP神经网络算法的短期负荷预测[J].上海电力学院学报,2012,28(4):388-391.

[4]高隽.人工神经网络原理及仿真实例[M].北京:机械工业出版社.2007:43-53.

[5]王小川,史峰,郁磊等.MATLAB神经网络43个案例分析[M].北京:北京航空航天大学出版社,2011:4-9.

作者简介:

BP神经网络的改进算法及应用 篇4

关键词:人工神经网络,BP神经网络,改进算法,发展趋势

1. 前言

神经网络最早的研究是20世纪40年代心理学家Mcculloch和数学家Pitts合作提出的,他们

提出的M P.模型拉开了神经网络研究的序幕。1 9 8 6年,D.Rumelhart和等提出的PDP(parallel distributed processing)理论则致力于认知微观结构的探索,同时发展了多层网络的BP算法。

本文首先介绍了传统的BP学习算法缺陷,而后提出了几种改进的算法,并进一步讨论了它在日常生活中的诸多应用。最后,对BP神经网络的发展趋势进行了展望。

2. BP算法的缺陷和改进

2.1 BP神经网络

BP(Back propagation)模型是一种用于前向多层神经网络的误差反向传播学习算法,包括输入层、隐含层和输出层,经作用函数后,再把隐节点的输出信号传递到输出节点最后给出输出结果。该算法的学习过程由信息的前向传播和误差的反向传播组成。在前向传播的过程中,输入信息从输入层经隐含层逐层处理,并传向输出层。如果在输出层得不到期望的输出结果,则转入反向传播,将误差信号沿原来的连接通道返回,通过修改各层神经元权值,使得误差均方最小。

2.2 BP算法的局限性

虽然BP网络是目前应用最广泛的神经网络模型,这并说明BP网络是尽善尽美的,其各种算

法依然存在着一定的局限性,主要表现在:

(1)学习率与稳定性的矛盾

误差下降缓慢,调整时间长,迭代次数多,影响收敛速度,若加快收敛速度易产生振荡。

(2)学习率的选择缺乏有效的方法

对于非线性网络,选择学习率也是一个比较困难的事情。对于线性网络,学习率选择得太大,容易导致学习不稳定;反之,学习率选择得太小,则可能导致无法忍受的过长的学习时间。

(3)训练过程可能陷于局部最小

从理论上说,多层BP网络可以实现任意的线性和非线性函数的映射,克服了感知器和线性神经网络的局限性。但在实际应用中,BP网络往往在训练过程中,也可能找不到某个具体问题的解,比如在训练过程中陷入局部最小的情况。

(4)没有确定隐层神经元数的有效方法

如何确定多层神经网络隐层的神经元数也是一个很重要的问题,太少的隐层神经元数会导致网络“欠适配”,太多的隐层神经元数又会导致“过适配”。

2.3 算法的改进

(1)自适应调节学习率

学习率也称为步长,在标准的BP算法定为常数,然而在实际应用中,很难确定一个从始至终都合适的最佳学习率。从误差曲面可以看出,在平坦区域内学习率太小会使训练次数增加,因而希望增大学习率;而在误差变化剧烈的区域,学习率太大会因调整量过大而跨过较窄的“坑凹”处,使训练出现震荡,反而使迭代次数增加。为了加速收敛过程,一个较好的思想是自适应改变学习率,使其该大时增大,该小时减小。

(2)共轭梯度法

共轭梯度法,是使用共轭梯度向量来确定共轭方向的方法。共轭梯度算法的搜索方向P0是从最陡下降方向g0的负方向开始搜索:P0=-g0,然后利用行搜索沿着当前搜索方向决定权重和阈值:W(k+1)=W(k)+α(k)P(k),其中P为搜索方向,参数α(k)用来减少搜索方向的梯度。

接着,根据下一行搜索方向与以前的搜索方向是共轭的,决定新的搜索方向。把新的最陡下降方向g与以前的搜索方向结合起来:

(3)拟牛顿法

拟牛顿法是一种快速优化方法,最基本的思想是在迭代过程中利用局部二次函数的极小值作为性能指标函数的最小值。这种算法的突出优点是收敛速度快,但要用到性能指标函数的二阶导数、森矩阵及其相关运算,增加了网络计算的复杂性。为此,人们提出了无须计算二阶导数但又保持牛顿法优势的新方法,其中最典型的是DFP拟牛顿法和BFGS拟牛顿法。

(4)组合的改进算法

遗传算法是近几年发展起来的一种新的全局优化算法,它借用生物遗传学的观点,通过自然选择、遗传、变异等作用机制,实现了各个个体的适应性的提高。用遗传算法解决问题时,首先要对待解决问题的模型结构和参数进行编码,一般用字符串表示。模拟退火算法来源于固体退火原理,先随机产生一个解,对当前解重复“产生新解→计算目标函数差→接受或舍弃”的迭代,如果新解的函数差小,则用新解代替旧解,否则也不是绝对舍弃,而是以一定的概率来接受它,正是这一点,使得模拟退火算法比遗传算法得到最优解更具有全局性。

3. BP神经网络的应用

BP神经网络以其独特的优势,在许多领域得到广泛的应用:

3.1 模式识别

神经网络经过训练可有效地提取信号、语音、图像、雷达等感知模式的特征,并能解决现有启发式模式识别系统不能很好解决的不变量探测、自适应、抽象或概括等问题。BP神经网络可应用于模式识别的各个环节:特征提取、聚类分析、边缘检测、信号增强、数据压缩以及各种变换、分类判决等。

3.2 人工智能

神经网络的问世为人工智能开辟了一条崭新的途径,成为人工智能研究领域中的后起之秀,它具有自学习能力是传统专家系统望尘莫及的。BP神经网络技术能对不完整的信息进行补全,根据已学会的知识和处理问题的经验对复杂问题做出合理的判断决策,给出满意的解答,或对未来过程做出有效的预测和估计,从而使之在人工智能领域获得广泛的应用。这方面得主要应用有:自然语言处理、市场分析、预测估值、系统诊断、事故检查、密码破译、逻辑推理、知识表达、智能机器人等。

3.3 控制工程

神经网络在诸如机器人运动控制、工业生产中的过程控制等复杂控制问题方面有独到之处。较之于传统数字计算机的离散控制方式,更适宜于组成快速实时自适应控制系统。这方面的主要应用有:多变量自适应控制、并行分布控制、智能控制等。

3.4 神经计算和进化计算

近年来,神经计算和进化计算领域很活跃,有新的发展动向,在从系统层次向细胞层次转化里,正在建立数学理论基础。对信息的获取、处理和传输问题;对网络路由优化问题;对数据安全和保密问题等等将有新的要求,因此,神经计算和进化计算与高速信息网络理论联系将更加密切,并在计算机网络领域中发挥巨大的作用。

3.5 信号处理

BP神经网络的自学习和自适应能力使其成为对各类信号进行多用途加工处理的一种天然工具,主要用于解决信号处理中的自适应和非线性问题。包括自适应均衡、自适应滤波、自适应编码等自适应问题和各种非线性问题,如非线性区域的模式分类、系统辨别和高维非线性系统的检测、估计等问题,还可对病态问题进行求解。

4. 应用中应注意的几个问题

4.1 特征以及结构的选择

当设计一个神经网络时,通常需要进行一个特征选择过程。然而,经典的搜索方法在应用到神经网络里时会更加麻烦或者说更加困难,原因有两个:对于一个给定结构的神经网络,任何一个输入的特征向量的构造需要一个很长的训练过程;对于给定的输入特征向量的一个构造,神经网络的性能取决于我们所选用的具体的网络结构。

4.2 预处理过程

由于一些最普遍的活化函数会受到饱和现象的影响,应当将所有的输入特征通过比例变换到一个合适的范围内,否则具有较高值的输入将会驱动整个训练过程,从而掩盖拉那些具有较低值的输入对于训练的贡献。同时,任何选择合适的权重系数初始值也依赖于输入的区间信息;如果利用远离那些范围的权重系数,将会显著地增加收敛过程的时间。

4.3 学习参数

学习速率控制了每一次迭代过程中权重系数的调整有多大。一个较大的学习速率能够导致一个较快的收敛过程,但是也可能导致在最优解附近剧烈的震荡,或者发散。通常情况下选择的值都小于0.5。

4.4 隐层神经元数目

对于BP网络,隐层的神经元数目设计是一个非常重要的问题,太多的隐单元数会导致过长的学习时间,较差的容错性,影响已有样本的识别。在实践中,首先根据经验公式确定一个参考值然后依据多次实验结果进行调整,选择合适的隐层神经元数目。

5. 展望

未来,神经网络将向更广泛的的领域迈进:与专家系统相结合实现符号处理和数字处理相结合;不同类型的人工神经模型以不同形式组合在一起,构成一个新的综合性人工神经系统;神经网络与模糊逻辑结合,使其能够更成功地处理各种不确定的、复杂的、不精确的和近似的控制问题;神经网络与小波分析结合,实现间接辨识与建模;混沌神经网络,将大大改善神经网络的记忆能力。

参考文献

[1]王学武,谭得健.神经网络的应用与发展趋势[J].计算机工程与应用,2003,(3):98-100.

[2]周开利,康耀红.神经网络模型及其MATLAB仿真程序设计[M].清华大学出版社,2005.

改进的BP神经网络 篇5

基于BP神经网络的飞行体姿态预测模型

针对建立精确的加速度传感器输出与飞行体姿态获取比较困难的问题,在研究了加速度传感器输出信号对飞行体姿态影响的.基础上,建立了相应的BP神经网络模型.结合加速度传感器输出的具体数据,应用Matlab语言编写相关的计算程序,验证了模型的可行性.

作 者:孟松 张志杰 范锦彪 曹咏弘 MENG Song ZHANG Zhijie FAN Jinbiao CAO Yonghong 作者单位:中北大学仪器科学与动态测试教育部重点实验室,太原,030051刊 名:弹箭与制导学报 PKU英文刊名:JOURNAL OF PROJECTILES, ROCKETS, MISSILES AND GUIDANCE年,卷(期):200828(1)分类号:V249.322关键词:BP模型 预测 Matlab 人工神经网络 飞行体 姿态

改进的BP神经网络 篇6

关键词:BP网络 旋转触探仪 神经网络预测 训练函数

中图分类号:TP751文献标识码:A 文章编号:1674-098X(2014)12(c)-0004-02

随着计算机技术的快速发展,人工神经网络在数学﹑物理﹑工程﹑岩土等行业得到广泛应用。Matlab软件提供了神经网络的工具箱,提供了多种神经网络库函数,为数值计算提供了计算平台。岩土工程问题的复杂多变性,在运用神经网络分析和预测时,其结果往往受各种因素的影响,关键还是网络结构的构建和训练函数的选取。因此,应该对网络的训练函数的选取进行深入研究。

该文在大量的旋转触探试验的基础上,结合土的物理性质指标含水量、干密度,土的强度参数粘聚力和内摩擦角,以及埋深情况,建立土的旋转触探模型,建立BP神经网络,采用不同的训练函数对网络进行训练。

1 BP神经网络

BP网络是一种单向传播的多层前向网络,具有三层或三层以上的神经网络,包括输入层、中间层(隐层)和输出层。在人工神经网络的实际应用中,BP网络广泛应用于函数逼近、模式识别/分类、数据压缩等,人工神经网络模型采用BP网络或它的变化形式,它是前馈网络的核心部分,体现了人工神经网络最精华的部分。BP算法的基本思想[1]是,学习过程由信号的正向传播与误差的反向传播两个过程组成。正向传播时,输入样本从输入层传入,经各隐层逐层处理后,传向输出层。若输出层的实际输出与期望的输出不符,则转入误差的反向传播阶段。误差反传是将输出误差以某种形式通过隐层向输入层逐层反传,并将误差分摊给各层的所有单元,从而获得各层单元的误差信号,此误差信号即作为修正各单元权值的依据。这种信号正向传播与误差反向传播的各层权值调整过程,是周而复始地进行的。权值不断调整的过程,也是网络的学习训练过程。此过程一直进行到网络输出的误差减少到可以接受的程度,或进行到预先设定的学习次数为止。

2 BP神经网络的训练函数

BP神经网络中的训练算法函数是根据BP网络格式的输入、期望输出,由函数newff 建立网络对象,对生成的BP 网络进行计算,修正权值和阈值,最终达到BP网络的设计性能,从而完成网络的训练和预测。BP 神经网络几种主要的训练函数及其特点分述如下[2]。

(1)traingda、trainrp函数和trainlm函数。

traingda函数是最基本的自适应学习步长函数,其最大优点可以根据误差容限的性能要求调节函数,弥补标准BP算法中的步长选择不当问题。trainrp函数可以消除偏导数的大小权值带来的影响,只考虑导数符号引来的权更新方向,忽略导数大小带来的影响。trainlm函数。该函数学习速度较快,但占用内存很大,从理论上来说适用于中等规模的网络。

(2)共轭梯度算法:traincgf函数、traincgp函数、traincgb 函数、trainscg函数。

共轭梯度算法是介于最速下降法与牛顿法之间的一个方法,其利用一阶导数信息,但克服了最速下降法收敛慢的缺点,又避免了牛顿法需要存储和计算Hesse矩阵并求逆的缺点。上述四种共轭梯度算法前三种收敛速度比梯度下降快很多,其需要线性搜索,对于不同的问题会产生不同的收敛速度。而第四种不需要线性搜索,其需要较多的迭代次数,但是每次迭代所需计算量很小。

(3)Newton算法:trainbfg函数、trainoss函数。

trainbfg 算法的迭代次数较少,由于每步迭代都要Hessian矩阵,其每次迭代计算量和存储量都很大,适合小型网络。Trainoss为一步割线算法。它是介于共轭梯度法和拟牛顿算法的方法,其需要的存储和计算量都比trainbfg要小,比共轭梯度法略大。

上述各算法由于采用的训练函数不同,其计算速度、收敛速度及其迭代次数不尽相同,并且对内存要求依研究对象的复杂程度、训练集大小、网络的大小及误差容限的要求等存在差异。在运用BP网络解决相关工程性问题时,需要选择合理的训练函数。

3 网络训练函数的选取

该文着重研究BP神经网络的训练函数的选择,所用数据样本均来自于实践中用新型微机控制旋转触探仪采集到的数据,经过归一化处理建立了网络的样本数据库,根据训练函数的特点选择其隐含层数为2。文选择非线性函数为Sigmoid,输出层的传递函数为Purelin,可以用来模拟任何的函数(必须连续有界)。

采用不同的训练函数对网络的性能也有影响,比如收敛速度等等,下面采用不同的训练函数(trainbr、traingd、traingdm、traingdx、traincgf、trainlm、trainb)对网络进行训练,并观察其结果,如表1所示。

对比可知,trainlm训练函数的收敛效果较好,trainbr、trainlm训练函数得到的绝对误差相对较小,其它训练函数的收敛性能较差。trainbr训练样本的绝对误差比trainlm训练函数的绝对误差小,且分布比较均匀,但是trainbr训练函数的收敛精度却相对较差,这可能是出现局部最优化的问题,通过测试样本的进一步分析如表2所示,trainbr训练以后的网络对于预测样本的预测精度较低,偏差较大,进一步验证了该训练函数在训练过程中训练收敛精度相对较差,并出现局部最优化[3]。

综合考虑,可以看到trainlm训练函数具有训练速度快且预测精度高的特点,所以本文中选用trainlm作为训练函数。

4 结论

该文以Matlab神经网络的作为工具,基于触探模型作为研究对象,对不同的训练函数进行了仿真比较,结果表明采用不同的训练函数其存在明显的差异。综合考虑干密度误差,含水量误差,干密度误差(样本顺序),含水量误差(样本顺序)以及迭代次数和性能误差等因素,选用trainlm作为训练函数,trainlm函数由于其训练速度较快且计算精度较高而显现出一定的优势。

参考文献

[1]葛哲学,孙志强.神经网络理论与MATLAB R2007实现[M].电子工业出版社,2007.

[2]施彦,韩立群,廉小亲.神经网络设计方法与实例分析[M].北京邮电大学出版社,2009.

神经网络BP算法的改进方法探究 篇7

基于BP算法的神经元网络从运行过程中的信息流向来看, 它是前馈型网络。这种网络仅通过许多具有简单处理能力的神经元的复合作用使网络具有复杂的非线性映射能力而没有反馈, 因此, 它不属于一个非线性动力学系统, 而只是一个非线性映射。尽管如此, 由于它理论上的完整性和在很多间题上的成功应用, 所以它仍然有重要的意义, 但它也存在不少问题:

1) 存在不少局部最小点, 在某些权初值的条件下, 算法的结果会陷入局部最小。由于存在一些平坦地区, 在此区内误差的改变很小, 造成网络完全不能得到训练。除此之外, 还有初始随机加权的大小, 对局部最小的影响很大。如果这些加权太大, 一开始就可能使网络处于S型函数的饱和区, 则系统有可能陷入局部最小 (或非常平坦区) 。一般来说, 希望初始权较小, 以便使每个神经元的状态值接近于零, 这样可保证在一开始时不会落到那些平坦区上。

2) 学习算法的收敛速度很慢。1986年, Rumelhart等人证明了BP训练算法的收敛性, 但假设了无限小的加权调节阶距η。实际上这是不可能的, 因为这表示需要无限的训练时间, 所以, 实际上必须选一个有限的阶距大小, 一般η取值为0.01~1。η的取值目前是根据实验或经验来确定, 还没有一个理论指导。若η选得太小, 收敛可能很慢;若η选得太大, 又可能出现麻痹现象 (即是操作在S型函数的饱和区, 其导线非常小, 随之加权修正量也非常小, 若当激活函数的导数趋于零, 误差趋于零, 结果使得加权修正量趋于零, 这就相当于调节过程几乎停顿下来) , 也可能会出现振荡现象而无法收敛。因此, 学习过程的速率η的选取是学习算法收敛速度的关键之一。

3) 网络的隐含节点个数的选取尚无统一而完整的理论指导 (即没有很好的解析式来表示) 。1990年, Eberhart和bobbins在他们的书“Neural Network Pctools”中阐述:“隐含单元数的选择是一种艺术”。总的来说, 隐含单元数与问题的要求、输入输出单元的多少都有直接的关系。

2 提高训练速度的方法

为了克服学习算法的收敛速度很慢这一缺点, 本文提出以下三种提高训练速度的方法。

2.1 加入动量项的全局学习速率自适应

使BP算法最优化的一种方法是打算对学习速率自动地寻找合适的值。全局自适应技术利用整个网络状态的知识 (例如以前的权步方向) 去修改全局参数, 即对每个可调参数根据学习情况用同样的学习速率改变。

基于BP算法的神经元网络, 在学习过程中, 只需要改变权重, 而权重是和权重误差导数成正比的, 但真正的梯度下降方法要求所取的间隔无限小。比例系数η是学习过程的速率, 它是一个常数。η越大, 权重改变越大, 若能选择合适的速率, 使它的值尽可能的大但又不至于引起振荡, 这样就可以为系统提供一个最快的学习。增大学习速率而又不导致振荡的方法, 就是修改反传中的学习速率, 使它包含有一个动量项, 具体说, 就是每个加权调节量上加上一项正比例于前次加权变化量的值 (即本次权重的修正表达式中引入前次加权的权重修改) 。这就要求每次调节完成后, 要把该调节量记住, 以使在下面的加权调节中使用。带有动量项的加权调节公式为:

undefined

式中:a为动量系数, 一般取0.9左右。

动量项的引入可以加快网络的速度, 这是因为引入动量项的效果实质是使学习过程中η的值不再是恒定的值, 而是不断地改变。引入这个动量项之后, 使得调节向着底部的平均方向变化, 不致产生大的摆动, 即动量起到缓冲平滑的作用。若系统进入误差函数面的平坦区, 那么误差将变化很小, 于是:

Δw (t+1) ≈Δw (t) (2)

而平均的将变为

undefined

式中, 系数undefined将会变得更为有效, 使调节尽快脱离饱和区。显然, 动量项的引入, 加快了学习步伐。此方法加快收敛速度的效果非常明显。 但是这种方法的缺点也是明显的, 参数η和α的选取只能通过试验来确定。

2.2 学习速率渐小法

如果在训练期间能减小学习速率的话, 也可加快训练的收敛速度。网络开始学习时, 学习速率比较大, 有利于加快学习速度, 而快到极值点时, 学习速率减小有利于收敛。从大的学习速率η (0) 开始, 在训练期间, 这个值将按下式逐渐变小:

undefined

式中:n为迭代次数, r为常值参数。常值参数r主要用于调节相对于整个训练周期的学习速率安排 (进度表) 。

通过在训练期间用实行减小的学习速率, 大值 (在早期学习阶段快学习) 和小值 (好的渐近行为) 的优点能够通过对r选合适的值被结合在一起, 但是, 在试验中发现, 好的值只能通过试凑寻找到, 而且此法对提高收敛速度有帮助, 但效果不明显。不过, 此法可与第 (1) 种方法结合起来使用, 效果比较明显。

3 激活函教

3.1 S型函数

根据BP算法反传规则的推导, 要求激活函数的导数f' (x) 存在。一般情况下, 常用S型函数作为反传网络的激活函数。S型函数中常用以下两个函数:

①Sigmoid函数

undefined

当θ=0, α=1时, 即为标准Sigmoid函数:

undefined

②双曲正切函数

undefined

当θ=0, α=1时, 上式变为

undefined

它常常被选用为要求输入是士1范围的信号, 它的输出值是正和负两者都有。

3.2 周期函数

周期函数, 其激活函数族的一阶导数选为sechn (x) , 其中n=1, 2 , …。周期函数已经定量地被证明了收敛速度比S型函数要快。下面列举n=1, 2, 3, 4的4种周期函数及其一阶导数 (见表1) 。

应该注意到, 这些函数的工作范围是[-1, 1], 而标准的Sigmoid函数的工作范围是[0, 1]。

4 初始权重的影响及设置

权重的初始化强烈地影响着最终的解。BP算法在其学习有效性方面有慢学习速度和收敛到局部极小两个主要缺点。收敛到局部极小可能是由隐含节点的数目不够以及初始权的不合适设置引起的, 解决这类问题, 目前己经提出了各种各样的方法, 但效果并不十分理想。

在BP算法中, 初始权通常由在固定范围中生成均匀随机数得到设置。当训练模式 (样本) 被加到单隐含层网络的输入时, 该网络的输出值通过内积和Sigmoid变换得到计算。在输出值和相应于训练模式的目标值之间的误差以及Sigmoid激活函数的斜率被包括在实行权更新之中。当对于特定的训练模式的任何输出节点的加权和正巧成为远离那个节点的阑值时, 相应的斜率将是很小而且输出值将是1或者-1, 在这种情况下, 我们可以说加权和是在饱和区.如果相应目标值的符号与输出节点的符号不同, 我们可以说对于那些训练模式的输出节点得到不正确的饱和。

如果这种情况发生, 即使误差是大的, 可是权更新的大小将是很小的, 并且它要花费很长时间方能从这种情况中逃出。应用中发现, 初始权值随机赋值为接近于零的非零值, 能有效地避免网络计算过早进入饱和区。

5 隐含层数和隐含层节点数的选择

5.1 隐含层数的选择

对于多层神经元网络来讲, 首先要确定选用几层隐含层。Nielsen曾证明了当各节点具有不同的门限时, 对于在任何闭区间内的一个连续函数都可以用一个隐含层的网络来逼近, 因而一个三层的基于BP算法的神经元网络可以完成任意的二维的映射。1988年, Cybenk指出, 当各节点均采用S型函数时, 一个隐含层就足以实现任意判决分类问题, 两个隐含层则足以表示输入图形的任意输出函数。这个结论很有用。

5.2 隐含层内节点数的确定

基于BP算法的神经元网络中各层节点数的选择对网络的性能影响很大, 所以, 层内节点数需要进行恰当的选择。一般情况下, 一个多层网络需多少隐含层、每层需要多少隐单元, 这要由网络的用途来决定, 但这并非是唯一确定的, 因为采用不同的内部表象时所需要的内部单元数是不同的, 因此对于隐含层单元数的选择是一个十分复杂的问题。确定隐层节点的数目, 目前大多数还是以经验为依据的。

尤其要注意, 当使用较多的隐含单元解决问题时, 出现局部极小就少, 当使用隐含单元数少时, 局部极小就多。增加隐含层的节点数可以改善网络与训练组匹配的精确度。然而, 为了改善网络的概括推论能力, 即改善对新图形的适应性, 又要求适当减少隐含层的节点数。 所以, 对一特定的应用网络, 其隐含层的节点数应该是按精确度和概括性综合统一考虑。

参考文献

[1]徐丽娜.神经网络控制[M].哈尔滨:哈尔滨工业大学出版社, 1999.1-40.

[2]袁曾任.人工神经元网络及其应用[M].北京:清华大学出版社, 1999.1-273.

[3]焦李成.神经网络系统理论[M].西安:西安电子科技大学出版社, 1990.1-5.

[4]焦李成.神经网终计算[M].西安:西安电子科技大学出版社, 1993.1-103.

[5]张立明.人工神经网络的模型及应用[M].上海:复旦大学出版社, 1993.43-47.

[6]孔璐, 许屏.GPS数据差分人工神经网络模型[J].解放军理工大学学报, 2000, (1) :101-104.

[7]赵斌, 吴中如, 等.应用Hopfield网络反演分层分区变形模量[J].水电能源科学, 2000, 18 (3) :4-6.

[8]陈继光.基于神经网络的GPS水准计算模型[J].测绘通报, 1999, (12) :34-35.

BP神经网络的算法改进及应用 篇8

人工神经网络是一种信息处理系统,它有很多种模型。其中有一种用误差传播学习算法(Error Back Propagation即BP算法)进行训练的多层前馈神经网络,简称为BP网络。BP神经网络模型是人工神经网络的重要模型之一,在文字识别、模式分类、文字到声音的转换、图像压缩、决策支持等方面都有广泛的应用。

通常,BP算法是通过一些学习规则来调整神经元之间的连接权值,在学习过程中,学习规则以及网络的拓扑结构不变。然而,一个神经网络的信息处理功能不仅取决于神经元之间的连接强度,而且与网络的拓扑结构(神经元的连接方式)神经元的输入输出特性和神经元的阀值有关。因而,神经网络模型要加强自身的适应和学习能力,应该知道如何合理地自组织网络的拓扑结构,改变神经元的激活特性以及在必要时调整网络的学习参数等。

2 BP神经网络的结构及原理

BP网络是一种无反馈前向网络,它由一组相互连接的运算单元组成,其中每一个连接都有相对应的权值。网络结构如图1(以三层网络为例)所示,它包括输入层节点、输出层节点,一层或多层隐含层节点。在BP网络中,层与层之间采用全互连方式,同一层的节点之间不存在相互连接。

BP算法简单的来说,是把训练样本从输入层输入,通过每个节点对应的阈值、函数以及节点之间连接权值的运算,经过输入层、隐含层传播到输出层得到计算输出,该输出和其对应的期望输出比较,得出误差。如果误差不符合要求,将误差沿输入相反的方向进行传播并沿误差降低方向调节权值和函数的阈值。用多个训练样本对网络进行反复的训练,直至误差符合要求。

BP神经网络的算法又称为误差逆传播算法,这个算法的学习过程由正向传播过程与反向传播过程组成。正向传播过程是依据学习样本的输入向量从输入层分隐含层分输出层逐次修改权值矩值认W,两个过程反复交替,直至收敛为止。

3 BP算法存在的问题及其改进

3.1 BP算法的局限性

在实际应用中,BP算法普遍存在以下问题:

1)误差下降缓慢,调整时间长,迭代次数多,影响收敛速度,造成收敛速度慢,若加快收敛速度易产生振荡。

2)存在局部极小问题,但得不到全局最优。训练会因陷入某个局部极小点而不能自拔,使训练难以收敛于给定的误差。

3)隐节点数和初始值的选取缺乏理论指导。

4)泛化能力差。

5)未考虑样本选择对系统学习的影响。

3.2 对BP算法的改进

BP算法改进方法可以分为两类:一是基于非线性无约束极值理论的算法改进,二是基于新理论的算法改进。

3.2.1 基于非线性无约束极值理论的算法改进

神经网络连接权值的学习过程看作非线性无约束极值的求解过程,基于这一理论的算法改进构成了算法改进的主流。而这些算法改进细分为两大类:

1)在梯度法的基础上改进BP网络的学习算法。其中,改进误差函数和学习步长η的自适应调整是两个主要途径。改进误差函数的方法有熵函数法,另外还有基于最大似然法对标准BP算法的误差函数的改进,以及分析了常用的LS型误差函数并基于一个结构性定理,给出了构造特殊能量函数的一般方法等等。学习步长η的自适应调整方法有很多,η可以通过Hesses矩阵直接求解;另外利用非单调线性搜索的基本方法,引入一个自适应预估和调整学习步长的策略。

2)基于其它无约束极值求解方法的算法改进。可以采用非线性无约束极值求解和其它方法,例如,共扼梯度法、变尺度法、步长加速法和单纯形法等来改进BP网络的学习算法。标准BP算法和大部分的改进算法实质上都属于非线性无约束极值求解方法。学习步长的调整也吸收了非线性无约束极值求解方法的成熟理论。考察梯度法在求解非线性无约束极值问题中的实现情况,可以得出结论:标准BP算法收敛速度慢的根本原因在于算法本身,在梯度法的基础上改进BP网络的学习算法收敛速度不会有太明显的提高。

3.2.2 基于新理论的算法改进

通过深入分析BP网络的结构特点和体会误差反向传播算法的实质,并结合其它领域已成熟的优化算法和参数估计理论,提出各种基于新理论的反向传播算法。其中比较好的算法改进有:利用推广卡尔曼滤波来实现BP网络的学习算法改进、基于同伦论中零点路径跟踪概念的算法改进、基于正交投影算法线性优化方法的算法改进等等。除了这些以外还有一部分专门用于克服局部极小的改进算法,在这方面人们所作的工作不多,比较有效的方法有模拟退火和遗传算法。这两种方法的学习时间比较长而且算法需进一步改善,可以利用非线性函数总体极值方法来找到全局极小点。

4 BP神经网络的应用

4.1 人脸识别

对人脸识别是人类最伟大的视觉功能之一,神经网络受动物神经系统启发,利用大量简单处理单元互联而构成的复杂系统,以解决复杂模式识别和行为控制问题。将BP网络用于人脸识别,建立了人脸识别模型,通过对输入图像实行图像压缩、图像抽样及输入矢量标准化等图像预入图像实行图像压缩、图像抽样及输入矢量标准化等图像预处理,将标准化矢量输入BP神经网络进行训练。BP网络用于人脸识别时,网络的每一个输入节点对应样本的一个特征,而输出节点数等于类别数,一个输出节点对应一个类。在训练阶段,如果输入训练样本的类别标点是i,则训练时的期望输出假设第i个节点为1,而其余输出节点均为0。在识别阶段,当一个未知类别样本作用到输入端时,考察各输出节点对应的输出,并将这个样本类别判定为具有最大值的输出节点对应的类别。如果有最大值的输出节点与其它节点之间的距离较小(小于某个阈值),则作出拒绝判断。经过竞争选择,获得识别结果。

4.2 图像压缩编码

利用BP网络实现数据编码的原理是:把一组输入模式通过少量的隐层节点映射到一组输出模式,并使输出模式等同与输入模式。当中间隐层的节点数比输入模式维数少时,就意味着隐层能更有效地表现输入模式,并把这种表现传给输出层。在这个过程中,输入层和隐层的变换可以看成是压缩编码的过程;而隐层和输出层的变换可以看成是解码过程。用多层前馈网实现图象压缩时,只需一个隐层,网络结果如图2所示。输入层和输出层均含有n×n个神经元,每个神经元对应于n×n个图像分块中的一个像素。隐层神经元的数量由图像压缩比决定,如n=16时,取隐层神经元数为m=8,则可将256像素的图像块压缩为8像素。设用于学习的图像有N×N个像素,训练时从中随机抽取n×n图像块作为训练样本,并使教师模式和输入模式相等。通过调整权值使训练集图像的重建误差达到最小,训练后的网络就可以用来执行图像的数据压缩任务了,此时隐层输出向量便是数据压缩结果,而输出层的输出向量便是图像重建结果。

4.3 最优预测

前景预测已经成为许多行业不可避免的一个难题,由于预测涉及的因素很多,往往很难建立一个合理的模型。人工神经网络模拟人的大脑活动,具有极强的非线性逼近、大规模并行处理、自训练学习、容错能力以及外部环境的适应能力,所以利用人工神经网络进行预测已经成为许多项目首选的方法。目前利用BP网络进行预测的应用已经很多,例如,可以用来建立公共卫生事件监测与预警系统、旅游业趋势预测系统、物流预测系统、资源调度系统等方面。

BP网络在应用于预测预报前需要一个网络学习过程,其学习过程包括信息正向传播和误差反向传播两个反复交替的过程。网络根据输入的训练(学习)样本进行自适应、自组织,确定各神经元的连接权W和阈值φ,经过多次训练后,网络就具有了对学习样本的记忆和联想的能力。

4.4 函数拟合

BP网络可以看成是输入到输出的高度非线性映射,即G:Rn→Rm,g(y)=x,对于样本集合,输入yi∈Rn、输出xi∈Rm,可以认为存在某一映射h,使h(yi)=xi(I=1,2,…,n)。现须求出映射g,通常在最小二乘意义下,g是h的最佳逼近。神经网络通过对简单的非线性函数进行数次复合,可近似任意复杂的函数或映射。

4.5 故障诊断

对于故障诊断而言,其核心技术是故障模式识别,而人工神经网络由于其本身信息处理特点,如并行性、自学习、自组织性、联想记忆等使得能够出色地解决那些传统模式识别难以圆满解决的问题,所以故障诊断是人工神经网络的重要应用领域之一。总的说来,神经网络在诊断领域的应用研究主要集中在两个方面:一是从模式识别的角度应用作为分类器进行故障诊断,其基本思想是以故障征兆作为人工神经网络的输入,诊断结果作为输出;二是将神经网络与其他诊断方法相结合而形成的混合诊断方法。对用解析方法难以建立系统模型的诊断对象,人工神经网络有着很好的研究和应用前景。

5 结论

BP网络是当前应用最为广泛的一种人工神经网络,无论在理论研究上还是在实际应用中都取得了突飞猛进的发展。因此,针对BP算法的不足,各种改进算法的研究也较多。本文通过给出几种人工神经网络BP算法的改进方法以及几个应用方面,对BP神经网络算法有了更多的认识,从而提高了学习速度,增加了算法的可行性,相信人工神经网络必将会得到越来越广泛的应用和迅猛发展。

参考文献

[1]朱大奇,史慧.人工神经网络原理及应用[M].北京:科学出版社,2006.

[2]韩力群.人工神经网络理论、设计及应用[M].北京:化学工业出版社,2004.

[3]甘俊英,张有为.基于BP神经网络的人脸识别[J].系统工程与电子技术,2003,25(1).

[4]李金屏,何苗,刘明军,等.提高BP小波神经网络收敛速度的研究[J].模式识别与人工智能,2002,15(1):28-35.

BP神经网络的算法改进及应用 篇9

1.1 BP算法步骤

(1)对权值进行初始化,这包括以下几个参数:学习率 μ,允许误差 ε,迭代次数上限,并同时设置循环步数i=0

(2)正向计算:将样本集合Xp={Xp1Xp2…Xpn} 输入网络,按下式计算O1pk和O2pm:

(3)计算均方误差E,判据是如果E-ε ≤ 0,就停止迭代,否则继续执行计算。

(4) 反向计算,按照以下计算公式:

(5)循环步数加1,返回步骤2,进行循环计算。

1.2不足点分析

在实际工作中BP算法应用很广泛, 但它也存在着一些缺点。BP算法本质上是运用梯度算法解决非线性优化问题,这就牵扯到收敛速度。网络误差是在多维度空间里的曲面,由于其形状复杂、解析方程冗繁,沿着负梯度方向调整权值,有可能发生下述几种情形:

(1)收敛到局部较小值。BP算法采用梯度下降法,迭代时选择某一起始点, 沿着误差函数的斜面逐步逼近误差最小值,但是网络误差曲面是凹凸不平的复杂高维曲面,在计算中很可能陷入某个局部极小点,造成误收敛。

(2)在平坦区域内连接权值调整缓慢。误差曲面虽然形状复杂,但也具有部分平坦区域,由于激活函数趋近于一个常函数,也即导数基本为零,即便误差很大, 但梯度调整过程收效甚微,基本处于停滞。

(3)在陡峭山沟中反复振荡。误差曲面有可能存在非常陡峭的下凹区域,这会造成网络权值无法收敛到极小点,进而围绕极小点来回振荡。

(4)错过较好极小点。BP网络在学习过程中,也可能跳过合适的极小点,究其原因是误差曲面凹处过于狭窄,梯度值却较大,使得网络权值直接翻越到另一个一般的极小点区域。

2 BP算法的改进

针对上述缺陷,可对BP算法进行改进。目前的改进方法主要有两种:以非线性无约束极值理论为基础的改进,例如自适应学习率和附加动量BP算法;另一种基于新数论,如共轭梯度法和牛顿上山下山法。这些算法的宗旨大同小异,都是尽可能提升收敛速度,避免局部收敛。

2.1非线性无约束极值理论

全局自适应技术可根据具体学习情况利用网络知识及时调整全局参数。BP网络的权重和权重误差导数有一种数学映射关系,这种关系呈正比例,只要对权重进行修改即可。但实际中梯度下降法的间隔不能取得太大。这时要想优化BP算法,必须找到一个合适的学习速率。

学习比例系数 η 通常是一个定值, 权重依托于 η 值。为了加快BP网络的学习速度,就要尽可能取一个较大的 η 值, 但也要避免振荡现象。

修改反传学习速率是一个较为合适的方法,这主要是给学习速率加一个动量项。具体说来,就是在每个加权调节量上附加一个正比于前次加权变化量的数值, 换言之即把前次加权权重修改值引入下一次修正表达式,这要求每次调节都要对该次的调节量进行存储记忆。下式为带动量项的加权调节公式:

上式中的 α 是动量系数,实际中一般取0.9.

动量项使得平均方向变化的调节朝向底部,不会产生大幅震动,缓冲平滑的同时也加快了网络速度。在学习过程中 η 值不断改变。如果系统选择误差函数的平坦区为起始点,误差变化不会很明显,这时有:

式中的系数能够使调节尽早跳出饱和死区。显然,动量项明显加快了学习步伐。这种方法能够明显加快收敛速度。这种方法的缺点是 α 和 η 难以确定,只能通过实验来选取。

2.2新理论算法改进

BP网络的结构特点包含了误差反向传播算法的实质,根据其他领域已经较为成熟的优化算法和参数评估理论,衍生出一系列新型反向传播算法。近年来运用比较多的算法包括: 卡尔曼滤波改进学习算法、同伦论中零点路径跟踪概念算法、正交投影线性优化算法等。除此之外,还有一些算法专门用来克服局部收敛问题,这其中以模拟退火和遗传算法最为有名。但这两种算法也有局限性,首先是学习时间久,收敛慢,再者算法本身也还不够成熟, 可以用非线性函数总体极值方法寻找全局最优极小点。

3 BP神经网络的应用

3.1人脸识别

毫不夸张的说,人脸识别是人类最引以为豪的视觉功能之一,受到动物神经系统启发,根据仿生学原理,利用大量微元互联构成复杂体系,解决行为控制和模式识别。将BP网络用于识别,通过对图像的压缩、抽样、矢量标准化处理,将标准矢量输入BP网络进行学习训练。BP网络在识别阶段,一个未知类别样本进入输入端时,系统自动检索各输出节点的输出量, 将此陌生样本定为最大数值输出节点类别。如果最大值输出节点小于某个阈值, 则拒绝。经过优选竞争,获得最佳识别结果。

3.2最优预测

目前,各行各业竞争激烈,前景预测势在必行。预测涉及众多因素,很难用一个准确的数学模型予以描述。人工神经网络模拟大脑活动,具有大规模并行处理、 自适应学习、容错机制、外部环境适应和很好的非线性特性,因此许多项目将人工神经网络列为首选预测方法。实际中已经诞生了多种应用,例如,旅游事业趋势探究、公共卫生事件预警、物流调度、资源整合等。

3.3故障诊断

改进的BP神经网络 篇10

BP神经网络是在人工神经网中使用最广泛, 能够处理任意输入输出的非线性映射, 在函数逼近、模式分类、聚类识别和数据压缩方面应用广泛, 80%~90%的人工神经网络多采用BP网及其变形[1]。BP网络体现了前馈神经网络的核心内容和人工神经网络的精华部分。尽管BP网络原理简单, 使用方便, 但是在实际应用中却存在着收敛速度缓慢、容易陷入局部极小值和网络运算不稳定缺陷[2]。本文提出附加动量下降法对标准BP网络改进, 效果明显。

1 改进BP神经网络的模型

1.1 标准BP网络的缺陷

标准BP网络通常采用误差梯度下降 (Gradient Descent) 算法, 受其影响, BP网络存在如下不足[3]: (1) 易陷入局部最优, 难以实现全局最优; (2) 训练次数繁琐, 学习效率低下, 收敛速度缓慢; (3) 隐含层节点缺乏理论指导; (4) 学习新样本时存在遗忘旧样本的趋势。

BP网络默认训练函数是Levenberg-Marquardt, 该函数对中小型前馈网络的训练有良好的性能。但当网络内存空间有限或传递非线性较复杂时, BP网络易陷入多个局部最优且收敛速度缓慢[4]。这些缺陷严重地影响BP网络在工程领域能力的进一步发挥。

1.2 BP神经网络的改进

国内外学者从不同角度提出诸多改进方法, 大致分为3类: (1) 启发式类改进, 如自适应调节学习率法和RPOP法等; (2) 数字优化类改进, 如共轭梯度法、拟牛顿法等[5]; (3) 混合智能算法类, 如遗传算法 (GA) 、模拟退火法 (SA) 、粒子群 (PSO) 算法与神经网络混合等。这些方法虽取得了一定的效果, 但又不同程度地存在新的问题[6]。

为保障BP网络在非二次型较强区域处理时仍能够保持较高的收敛速度, 本文提出附加动量下降法对标准BP网络权值进行改进, 其权值更新量修正公式为:

其中:α为动量系数;η为学习速率;E为实际输出与期望输出的差值;Δωij (t) 和Δωij (t-1) 分别为第t次和第t-1次迭代时的权值的修正量。

引入附加动量αΔωij (t-1) 后权值会朝着底部平均方向变化, 从而减小全局收敛震荡 (缓冲平滑作用) , 进而提高学习速率, 缩短收敛时间。

1.3 改进BP神经网络的算法描述

改进BP算法的流程图如图1所示, 具体描述如下:

(1) 用均匀分布随机数把各权值矩阵W (隐含层至输出层的连接数值) 和V (输入层到隐含层的连接数值) 设定为0~1间的小数, 进行初始化, 并把模式计数器p和训练计数器q置1。

(2) 从训练样本对[XP, DP]中将一个数据传入输入层, 并根据公式分别计算隐含层的输出向量Y= (y1, y2, y3, …, ym) 和输出层输出向量O= (o1, o2, o3, …, ol) 。其中, 隐含层神经元数目为m, j是隐含层任一神经元 (j=1, 2, …, m) ;输出层神经元数目为l, k是输出层任一神经元 (k=1, 2, …, l) 。

(3) 计算P对训练样本的输出误差, 以及输出总误差其中, P为训练样本[XP, DP]的数目, dPk为教师信号DP= (dP1, dP2, dP3, …, dPk) T分量。

(4) 计算输出层第k个神经元的误差信号δko= (dk-ok) ok (α-ok) 和隐含层第j个神经元的误差信号。其中, α和β为动量系数, ok为输出层第k个神经元的输出值;yj为隐含层第j个神经元的输出值;dk为给输出层的教师信号。

(5) 计算隐含层第j个神经元至输出层第k个神经元的链接权值wjk=wjk+ηδkoyj, k=1, 2, …, l;j=1, 2, …, m。计算输入层第i个神经元到隐含层第j个神经元的链接权值vij=vij+ηδjyxi, j=1, 2, …, m;i=0, 1, …, n;并更新权值矩阵W和V。其中, 学习率η为0~1间的小数, δko和δjy由步骤 (4) 得来, xi为输入层第i个神经元的输入值, yj为隐含层第j个神经元的输出值。

(6) 若模式计数器p

(7) 检验网络总误差是否达到精度要求, 若ERME

2 旋转机械故障诊断的仿真实验

2.1 旋转机械故障数据的建立

本文对旋转机械常见故障诊断进行仿真实验。通过旋转机械故障现场记录和实验室人为制造设备故障的积累, 得出反映旋转机械故障的4个重要特征信号, 即频域波形、时域波形、非周期波形以及频域中心频域。表1为旋转机械特征信号表。

如表1所示, 本文进行了22组实验, 第1组至第20组作为改进BP网络的训练样本, 第21组和第22组作为其检验样本。输入信号频域波形 (x1, x5, x9) 、时域波形 (x2, x6, x10) 、非周期波形 (x3, x7, x11) 以及频域中心频域 (x4, x8, x12) 四部分构成故障征兆集。输出向量Y代表旋转机械的故障原因集, (1, 0, 0, 0) 代表无故障, (0, 1, 0, 0) 代表轴承座松动故障, (0, 0, 1, 0) 代表转子平衡不对中状态, (0, 0, 0, 1) 代表转子径向碰摩故障。

2.2 改进BP网络的建立

选用三层前向型神经网络, 因故障征兆集有12组特征向量, 故输入层神经元数目是12;输出结果有4种模式, 故输出层的神经元数目为4。隐含层的神经元数目由确定, n为输入层神经元数目, l为输出层神经元数目, a为1~10间的常数。由此确定网络隐含层神经元数目为10。

为使标准BP误差曲面在大型复杂的多维空间训练过程中跳出局部极值点, 采用带有附加动量和学习率的训练函数traingdx, 通过调用learnbpm函数以实现式 (1) 对权值修正。网络输入层的传递函数为S型正切函数logsig函数, 隐含层传递函数为tansig函数, 输出层传递函数为纯线性函数purelin函数。训练过程中迭代间隔25次显示1次, 学习率为0.05, 动量因子为0.9, 训练速度为0.05, 训练速度增长系数为1.2, 训练速度下调系数为0.8, 最大训练次数为10 000, 实际训练次数为6 000, 训练精度为1×10-5。

为实现带有附加动量下降法的数值修正, 其改进的学习函数learnbpm的MATLAB代码如下:

2.3 仿真结果的分析和比较

表2为仿真结果, 标准BP网络和改进的BP网络都作出了正确的分析, 即第20组和第21组验证数据对应着第1类故障和第4类故障。然而, 改进BP网络精确度更高, 训练效果更加直观。

图2为标准BP网络仿真的误差曲线图, 收敛迭代次数为2 333次, 收敛效果不佳并存在不平滑现象。

图3为改进BP网络仿真的误差曲图, 收敛迭代次数是1 976次, 收敛效果明显并曲线光滑。

由图2和图3对比可知, 改进BP网络克服了标准BP网络易陷入局部极小值和网络运算不稳定的缺点, 收敛速度提高了15.3%。

3 结束语

采用附加动量下降法对标准BP网络进行改进, 克服了自身收敛速度缓慢、容易陷入局部极小值和运算不稳定的缺陷, 具有良好的推广价值。

参考文献

[1]周润景, 张丽娜.基于MATLAB与fuzzyTECH的模糊与神经网络设计[M].北京:电子工业出版社, 2010.

[2]袁曾任.人工神经网络及其应用[M].北京:清华大学出版社, 1999.

[3]韩立群.人工神经网络教程[M].北京:北京邮电大学出版社, 2006.

[4]张德峰.MATLAB神经网络应用设计[M].北京:机械工业出版社, 2009.

[5]苏高利, 邓芳萍.论基于MATLAB语言的BP神经网络的改进算法[J].科技通报, 2003, 19 (2) :130-135.

改进的BP神经网络 篇11

关键词 大麦;净光合速率;预测;BP神经网络模型

中图分类号:S512.3 文献标志码:B 文章编号:1673-890X(2016)06--02

净光合速率(Pn)是评价植物生长状况的重要指标之一,因此净光合速率一直是植物生理研究的一个重点。影响Pn的主要因素有:环境二氧化碳浓度,光照强度、温度和水[1]。青稞作为青藏高原地区藏族人民的主要粮食作物和动物饲料,对当地经济和人民生产生活中发挥着重要的作用[2]。由于高原独特的自然地理条件,研究青稞的Pn对提高青稞的产量和提高藏族人民的生活水平有着重要的意义。目前,研究青稞的Pn与环境因素之间的关系主要集中在研究Pn与光照强度,Pn与水[3]等。系统地研究和预测Pn与环境二氧化碳浓度、光照强度、温度和水之间的报道较少。

BP神经网络(Back Propagation neural network)是最重要的人工神经网络模型之一,广泛地应用于非线性系统的模式识别和预测方面有着广泛的应用。Li等人通过利用偏最小二乘回归与BP神经网络预测番茄的光合速率发现BP神经网络拟合的结果精确度高于偏最小二乘回归[4]。

本研究主要目的是:利用BP神经网络研究大麦Pn与环境二氧化碳浓度、光照强度、温度和水之间的关系,建立最优BP神经网络模型,并将神经网络的预测值与观测值进行比较,探讨神经网络对大麦Pn预测的实用性。

1 材料与方法

2010年11月5日,将大麦(Hordeum vulgare L.)品种矮白青稞种子按照行距15 cm、株距10 cm播种于西华师范大学试验田(北纬30.812°,东经106.067°)。为使植株长势尽可能均一,统一进行水肥管理。

2011年5月的第1个星期,此时供试材料处于灌浆期。数据测定当天天气晴朗无云,从07:00-19:00,选择5株长势较好且均一的大麦主分蘖植株,利用Li-6400型便携式光合仪测定大麦旗叶的光合日变化,记录的数据主要有:净光合速率(Pn)、光照强度(PARo)、环境二氧化碳浓度(二氧化碳)、气孔导度(Cond)、气温(Tair)、相对湿度(RH)、叶片温度(Tleaf)和蒸腾速率(Trmmol)等。每隔1h测定一次,每株的旗叶重复测定3次,待Pn稳定后保存数据。

将每片旗叶重复测量3次的数据求平均值作为该植株的光合日变化数据,共得到65个数据。然后将65个数据随机分成2组:第1组包含55个数据,用于BP神经网络训练;第2组包含10个数据,该组数据用于BP神经网络测试。该组的Pn观测值在称为测试值,而神经网络计算输出的Pn称为预测值。BP神经网络模型的训练和预测利用Matlab 6.5进行。其中气温、环境二氧化碳浓度、相对湿度和光照强度作为BP神经网络的输入层,Pn作为输出层。为了评价BP神经网络的准确性,定义了测试值和预测值之间的均方误差(Mean square error,MSE)。

(1)

方程(1)中yt和?t分别代表观测值和计算值[5]。为了找出大麦Pn最优的BP神经网络模型参数,首先固定学习速率为0.05,将迭代次数设为1 000、2 000、3 000、4 000进行BP神经网络训练,每个迭代次数进行5次训练,并计算出每次的测试值和测试值的MSE(Mean Square Error)(见表1)。然后为找出最优学习速率,我们将迭代次数设置为最优的迭代次数,而学习速率分别设置为0.05、0.06、0.07进行BP神经网络训练,每个参数进行5次训练,并计算出测试值和预测值的MSE(见表2)。最终将最优参数对应的预测值和测试值作图比较(见图1)。

2 结果与分析

表1显示了BP神经网络学习速率为0.05,不同迭代次数对大麦Pn预测值MSE的影响。表1第一列代表不同的4个迭代次数,最后一列代表5次训练所得MSE的平均值。由表1可见:当迭代次数为2 000次时,5次训练所得的平均值最小为1.500。其中当迭代次数为4 000时,第2次训练所得的MSE在所有训练结果中的MSE最小为1.369。

表2显示了BP神经网络迭代次数为2 000时,不同学习速率下大麦Pn预测值与观测值的MSE。表2第一列代表不同的学习速率,最后一列代表5次训练所得MSE的平均值。由表2可见:当学习速率为0.06时,5次训练所得的MSE平均值最小为1.500。其中当学习速率为0.05时,第4次训练所得的MSE在所有训练结果中的MSE最小为1.314。

图1显示了利用BP神经网络程序计算大麦Pn的预测值与测试值之间的差异。由图1可见,预测值和测试值之间比较接近,部分测试值和预测值几乎完全重合。

图1 大麦净光合速率观测值与BP神经网络最优预测值比较

3 结论与讨论

净光合速率是评价植物生长情况的重要因素,其受到各种环境因素的影响。以往利用线性模型或偏最小二乘回归模型研究Pn与环境因素的关系表明:Pn与环境因素不是简单的线性关系。本研究利用BP神经网络对大麦的Pn与环境因素中的环境二氧化碳浓度,光照强度、温度和水进行拟合和预测,结果表明BP神经网络在迭代次数为2 000次(见表1),学习速率为0.06时得到的BP神经网络模型是大麦净光合速率最优、最稳定的模型(见表2)。其中第2次训练得到的神经网络其MSE最小为1.368(见表2)。由图1可见,该网络预测的净光合速率预测值与实际测试值比较接近,部分测试值与预测值几乎完全重合。这说明BP神经网络在预测大麦的净光合速率方面具有较高的准确性,这与以往的研究结果一致[5]。本研究表明,BP神经网络可以广泛地用于预测植物的净光合速率。

参考文献

[1]Blackman FF. Optima and limiting factors. Annals of Botany, 1905(19):281-295.

[2]程明,李志强,姜闯道,等.青稞的光合特性及光破坏防御机制[J].作物学报,2008,34(10):1805?1811.

[3]于智恒,寇立娟,王钢钢.农田水位及环境因素对小麦生理指标的影响预测[J].安徽农业科学,2010,38(34):19252-19253.

[4]Li Ting, Ji Yuhan, Zhang Man, Sha Sha, Li Minzan: Comparison of Photosynthesis Prediction Methods with BPNN and PLSR in Different Growth Stages of Tomato[J].農业工程学报,2015(31):222-229.

[5]Chen ZY, Peng ZS, Yang J, et al. A Mathematical Model for Describing Light-response Curves in Nicotiana tabacum L[J]. Photosynthetica, 2011,49(3):467-471.

改进的BP神经网络 篇12

虽然神经网络模型已成功应用于模式识别、函数逼近、时间序列预测等领域。并且BP网络也是目前应用最为广泛的一种神经网络模型, 它具有思路清晰, 结构严谨, 可操作性强等优点。但是由于BP学习算法仅改变网络的连接值和阀值, 不改变网络的拓扑结构, 因此BP网络在处理具体问题时还存在如下问题[1]:

1.1 网络的麻痹现象。

在网络训练过程中, 加权调得较大可能迫使所有的或大部分节点的加权和输出较大, 从而操作在S压缩函数的饱和区, 此时函数在其导数非常小的区域, 即函数的导数值很小或趋近0, 由于在计算加权修正量的公式中, 这使得调节几乎停顿下来, 通常为了避免这种现象, 将训练速率减小, 但又增加了训练时间。

1.2 网络学习收敛速度比较慢。

由于BP算法的学习复杂性是样本规模的指数函数, 如果网络规模较大或学习样本较多时, 往往需要很长的学习时间, 甚至学习无法完成, 这个主要由于学习速率太小所造成的;可采用变化的学习速率或者自适应的学习速率加以改进。

1.3 易陷入局部极小值。

BP算法可以使网络权值收敛到一个解, 但它并不能保证所求解为误差超平面的最小解, 很可能是局部极小解;这是因为BP算法采用的是梯度下降法, 训练是从某一起点沿误差函数的斜面逐渐达到误差的极小值, 对于复杂的网络, 其误差函数为多维空间的曲面, 就像一个碗, 其碗底是最小值点, 但是这个碗的表面凹凸不平的, 因而在对其进行训练的过程中, 可能陷入某一小谷区, 而这一小谷区产生一个局部最小值, 由此点向各个方向变化均使误差增加, 以至于使训练无法逃出这一局部最小值。

为了解决BP网络训练的以上缺点, 人们提出了多种有益的改进。改进方法主要有两类:第一类是基于启发式学习方法的改进算法:如附加动量的BP算法、自适应学习率BP算法、弹性BP算法等;第二类是基于数值优化的改进算法:如共扼梯度法、拟牛顿法和Levenberg-Marquardt (LM) 法等。这些方法在不同程度上提高了学习速度, 加快了网络的收敛, 避免陷入局部极小值[2][3]。

2 各种改进算法的学习速度的比较

在Matlab6.5中, 通过调用newff实现网络的创建, 然后调用函数train对所创建网络newff进行训练。设定系统总误差为0.01, 步长为0.02, 网络训练2000次, 或直到满足性能要求时停止训练, 否则增加训练次数。表1给出几种算法收敛速度的比较:表中的数据均为6次平均值。

从表1和表2可以看出:

2.1 基于启发式学习方法的改进算法的收敛速度依次加快, 其中弹性BP算法的收敛速度要比前两种方法快得多。

2.2 基于标准数值优化方法的各种改进算法均比基于启发式学习方法的改进算法在收敛速度上有很大的提高, 其中Levenberg-Marquardt法的收敛速度最快。

下面是在相同条件下, 标准BP算法, 弹性BP算法和Levenberg-Marquardt法对本电路进行网络训练的学习误差变化曲线。

3 结论

由实验结果可知:

在基于启发式学习方法的改进算法中, 弹性BP算法的收敛速度快, 算法并不复杂, 也不需要消耗更多的内存空间, 在实际应用中, 是一种行之有效的算法。

在基于数值优化方法的各种改进算法中, Levenberg-Marquardt法和拟牛顿法因为要近似计算海森矩阵, 需要较大的存储量, 通常收敛速度快。其中, Levenberg-Marquardt法结合了梯度下降法和牛顿法的优点, 性能更优, 收敛速度最快, 对于中等规模的BP神经网络具有最快的收敛速度, 而且它很好地利用了MATLAB中对于矩阵的运算的优势, 因此它的特点很适合在MATLAB中得到体现;但是要存储海森矩阵的值, 所以该算法的最大缺点就是占用的内存量太大。共轭梯度法所需存储量较小, 但收敛速度较前两种方法慢。所以, 考虑到网络参数的数目 (即网络中所有的权值和偏差的总数目) , 在选择算法对网络进行训练时, 可遵循以下原则[4]:

3.1 在对训练速度要求不太高, 内存存储量有限时, 可使用弹性BP算法。

3.2 在对训练速对要求较高的情况下, 网络参数较少时, 可以使用牛顿法或Levenberg-Marquardt法;在网络参数较多时, 需要考虑存储量问题时, 可以选择共轭梯度法。

参考文献

[1]史忠科.神经网络控制理论[M].西北工业大学出版社, 1997 (11) .

[2]虞和济, 陈长征等.基于神经网络的智能诊断[M].北京:冶金工业出版社, 2000.

[3]朱大奇.电子设备故障诊断原理与实践[M].北京:电子工业出版社, 2004.

上一篇:中专学校计算机教学下一篇:模块式教学