人工神经网络BP算法(精选10篇)
人工神经网络BP算法 篇1
1 引言
人工神经网络是一种信息处理系统, 它有很多种模型。其中有一种用误差传播学习算法 (Error BackPropagation, 即BP算法) 进行训练的多层前馈神经网络, 简称为BP网络。它是目前人工神经网络中应用最为广泛的网络, 在文字识别、模式分类、文字到声音的转换、图像压缩、决策支持等方面都有广泛的应用。本文对BP算法进行简单的介绍, 并给出其在VC++6.0中的实现方法。
2 BP算法的原理
2.1 BP网络的结构
BP网络是由一组相互连接的运算单元组成, 其中每一个连接都有相对应的权值。网络结构如图1 (以三层网络为例) 所示, 它包括输入层节点、输出层节点, 一层或多层隐含层节点。在BP网络中, 层与层之间采用全互连方式, 同一层的节点之间不存在相互连接。
2.2 BP算法的原理
BP算法简单的来说, 是把训练样本从输入层输入, 通过每个节点对应的阈值、函数以及节点之间连接权值的运算, 经过输入层、隐含层, 传播到输出层得到计算输出, 该输出和其对应的期望输出比较, 得出误差。如果误差不符合要求, 将误差沿输入相反的方向进行传播并沿误差降低方向调节权值和函数的阈值。用多个训练样本对网络进行反复的训练, 直至误差符合要求。
2.3 算法中主要的数据结构和用到的公式
为方便说明, 对算法中的主要数据结构做如下约定。网络为三层, P[m]为单个样本输入数据, m为输入向量维数, 也等于输入层节点数;T[n]为单个样本期望输出数据, n为输出向量维数, 也等于输出层节点数;W[h][m]为输入层至隐层权值, 其中h为隐层节点数;V[n][h]为隐层至输出层权值;X[h]为隐层的输入;O[h]为隐层的输出;U[n]为输出层的输入;Y[n]为输出层的计算输出;YZH[h]为隐层的阈值;YZO[n]为输出层的阈值;Delta O[n]为输出层一般化误差;Delta H[h]为隐层一般化误差;E为预先设定的总体误差;η为学习速率参数;设隐含层和输出层的激活函数采用S型函数, 即 。
算法中主要公式如下:
隐层第i个单元的输入:
隐层第i个单元的输出:
输出层第i个单元的输入:
输出层第i个单元的输出:
输出层单元i的一般化误差:
隐含层单元i的一般化误差:
输出层至隐含层的权值调整:
输出层阈值调整:
隐含层至输入层的权值调整:
隐含层阈值调整:
2.4 算法的描述
算法可描述如下:
(1) 初始化:在小随机值上初始化连接权值和阈值;给出各层节点数、η、预定误差。
(2) 输入训练样本集中一个样本。
(3) 依据式1、2、3、4计算该样本的实际输出, 和教师信号做比较, 依据公式5和6分别求输出层单元和隐含层单元一般化误差。
(4) 依据误差根据公式7、8、9、10分别调整输出层和隐含层的连接权和阈值。
(5) 对训练样本集中所有样本重复2到4。
(6) 训练次数加1。
(7) 如果总误差小于预定值则执行8, 否则对训练样本集返回2重复训练。
(8) 记下权值和阈值, 结束本次训练。
3 BP算法关键步骤在VC++6.0中实现
首先按照2.3所述定义数据结构, 再定义一个放学习样本的结构:
参考文献
[1]徐勇, 等, 译.神经网络模式识别及实现[M].电子工业出版社, 1999.
[2]戴葵, 等, 译.神经网络设计[M].机械工业出版社, 2002.
[3]Berthold M, D J Hand, et al.Intelligent Data Analysis-An Introduction[M].Springer Berlin, 1999.
人工神经网络BP算法 篇2
空中目标识别是现代防空作战的重要研究内容.本文利用不同类型目标产生的`多类型传感器的数据信息对目标进行识别.为了训练神经网络目标识别分类器,将遗传算法和BP算法相结合,提出了一种新的自适应遗传BP算法,利用这种神经网络来确定指标的权值.仿真试验结果表明,基于自适应遗传BP算法神经网络的识别是一种简单、可靠的目标识别方法,具有很好的目标识别效果.
作 者:马峰 李富荣 张安 MA Feng LI Fu-rong ZHANG An 作者单位:马峰,MA Feng(西北工业大学电子信息学院・陕西西安・710072;92635部队・山东青岛・266041)
李富荣,LI Fu-rong(海军航空工程学院青岛分院・山东青岛・266041)
张安,ZHANG An(西北工业大学电子信息学院・陕西西安・710072)
人工神经网络BP算法 篇3
关键词 BP神经网络;电力负荷预测;LM算法
中图分类号 F224 TP183 文献标识码 A
Power System ShortTerm Load Forecasting Based
on LevenbergMarquardt Algorithm BP Neural Network
LIU Jinbo, CHEN Xin, LI Xinhua
(School of Mathematics and Computational Science, Changsha University
of Science And Technology, Changsha,Hunan 410004,China)
Abstract By utilizing the normalization for the input load values of BP neural network and adopting LevenbergMarquardt algorithm, this paper established an improved BP neural network and investigated the power system shortterm load forecasting. LevenbergMarquardt algorithm improves the convergence speed and the load forecast accuracy. The simulation results show that the improved BP neural network can offer higher forecast precision and has greater applicability.
Key words BP neural network; Power load forecasting; LevenbergMarquardt algorithm
1 引 言
电力负荷预测是以电力负荷为对象进行的一系列预测工作.从预测对象来看,电力负荷预测包括对未来电力需求量(功率)的预测和对未来用电量(能量)的预测以及对负荷曲线的预测.其主要工作是预测未来电力负荷的时间分布和空间分布,为电力系统规划和运行提供可靠的决策依据.电力系统短期负荷预测能够预测提前一天至一周的电力负荷值,它不仅对确定日运行方式有十分重要的作用,而且也是确定负荷调度方案、地区间功率输送方案和机组组合方案所不可或缺的.电力负荷预测的结果,不仅对大中型电力用户来说,在安排生产计划、估算经济成本和效益、以及规划近、中期的生产规模都具有十分重要的意义,而且对地方政府在资源配置、产业布局等经济决策中有重要的参考价值[1].
人们经过长期的研究与实践开发了多种电力负荷预测方法,主要分为定量预测技术及定性的经验预测技术.常用的定性经验预测方法有主观概率法、专家预测法(专家会议法、德尔菲法等)、类比法等方法.常用的定量预测技术有人工神经网络预测技术、经典技术(弹性系数法、负荷密度法、单耗法、比例系数增长法等)、模糊预测技术、回归模型预测技术、专家系统预测技术、趋势外推预测技术、灰色模型预测技术、优选组合预测法、时间序列预测技术等[1,2].
经 济 数 学第 32卷第2期
刘进波等:基于LM算法的BP神经网络的电力负荷短期预测
目前利用BP神经网络技术对电力负荷进行短期预测是国际上公认为比较有效的方法[3,5-11],但传统的BP神经网络技术因收敛速度比较慢,学习效率低,泛化能力差等缺陷而有待进一步的改进和完善,正因于此,本文研究了基于LM算法的BP神经网络的电力负荷短期预测问题,在总结现有理论成果的基础上主要对BP神经网络的算法、网络结构、输入数据的预处理等方面进行了研究,并应用到电力负荷的短期预测上.仿真结果表明,改进了的BP神经网络具有很高的预测精度和较强的适用能力.
2 BP神经网络
2.1 BP神经网络的结构
在电力系统负荷预测中,目前应用较多的是反向传播网络(Back Propagation Neural Networks),简称BP网络.它是由Rumelhart等研究者为了解决多层网络的学习问题于1986年提出来的.BP网络由输入层、隐含层、输出层这三个神经元依次组成,各层次之间的神经元按照一定的权重相互连接,但同一层次之间的神经元没有形成反馈连接.
1989年,Robert HechtNielsen证明了对于任何闭区间内的一个连续函数都可以用一个隐含层的BP网络来逼近(拟合),因而,一般选用一个三层的BP网络来进行训练学习[3].
2.2 标准BP算法
BP算法是一种有监督的学习算法.其基本思想是学习过程由信号的正向传播与误差的反向传播两个过程组成.信号正向传播时,输入样本从输入层传入,经过各隐藏层逐层处理后,传向输出层.若输出层的实际输出与期望的输出不符,则转入误差的反向传播阶段.误差反向传播是将输出误差以某种形式通过隐藏层向输入层逐层反传,并将误差分摊给各层的每个单元,从而获得各层每个单元的误差信号,这种误差信号将作为修正各单元权值的依据.此种信号正向传播与误差反向传播的各层权值调整过程,是不断重复地进行的.权值不断调整的过程,也就是网络的学习训练过程.这种过程一直进行到网络输出的误差减少到可接受的程度,或进行到预先设定的学习次数为止[1-3].
nlc202309031228
2.3 BP算法的不足
BP算法原理简单,实用性强,是一个很有效的算法,许多问题都可以由它来解决,因此,BP模型成为神经网络的重要模型之一.但是BP算法本身也存在一些不足:①神经网络连接权初值、隐层节点数目以及网络参数的选取往往依靠经验.②BP算法的学习效率低,收敛速度比较慢,一般需要成千上万次的迭代计算.③BP算法采用梯度下降法进行学习,可能会出现局部极小点[1-3].
2.4 BP算法的改进
针对标准BP算法存在的不足,BP算法在实际应用中很难胜任,因而出现了很多种改进算法.①拟牛顿算法;②附加动量项方法;③一步正割算法;④量化共轭梯度法;⑤梯度自适应算法;⑥动量及自适应算法;⑦LevenbergMarquardt(LM)算法等.本文采用的是LM算法,具体步骤如下:对于LM算法调整权值的规则为
Δw=JTJ+μ-1I -1JTe, (1)
式中:J为误差对权值微分的Jacobian矩阵;e是误差向量;μ是一个标量;I是单位矩阵.当μ很大时,上式就接近于梯度法;当μ很小时,上式就变成了GaussNewton法,在这种方法中,μ也是自适应调节的.
随着μ的增大,LM的项JTJ可以忽略.因此学习过程主要根据梯度下降,即μ-1JTe项.只要迭代使得误差增加,μ也就会增加,直到误差不再变化为止,但是,若μ过大,则会使学习停止(因为μ-1JTe项接近0,当已经找到最小误差时,就会出现学习停止的情况,这就是为什么μ达到最大值时要停止学习的原因[4].
3 改进的BP算法在电力系统
短期负荷预测中的应用
3.1 预测模型输入数据的选择和处理
在利用BP神经网络进行预测时,关键是对历史数据的选择和处理,它直接关系到计算速度的快慢和预测结果的好坏.
历史数据指的是历史上每天的实际负荷值,它反映了一段时期内的负荷水平.在负荷预测中,预测日的相邻日,指的是预测日前一天和临近历史(三星期内)负荷相关性比较好,就是相似日.在本文中,输入量将采用提前19天对应小时的负荷.
对输入数据进行归一化处理,目的是为了避免神经元饱和现象.首先通过式(2)将负荷值换算到-1,1区间的值,然后在输出层用式(3)换算回负荷值.
2) 隐含层
本文采用含一个隐含层的三层BP网络.由于隐含层节点数的问题过于复杂,所以至今为止尚未找到一个很好的解析式,隐含层节点数通常是根据自己进行试验和前人设计所得的经验来确定.一般认为,隐含层节点数与输入输出单元数多少、求解问题的要求都有直接的关系.此外,隐含层节点数过多会导致过长的学习时间;而隐含层节点数太少,容错性差,识别未经学习的样本能力低,因此必须综合多方面因素来设计.依据前人经验,本文采用下面的公式进行设计[2]:
4) 用BP网络结构图预测
本文建立的负荷预测神经网络结构如图1所示.网络的输入量为24个,输出量为24个,隐含层节点数为10个.输入数据中的所有负荷值都要经过负荷数据的预处理和归一化处理,网络输出数据回归是负荷值.
图1 预测用BP网络结构图
3.3 程序流程图
本文是基于Matlab神经网络工具箱做的仿真,预测模型程序实现流程图如图2所示.
图2 应用LM算法改进BP算法的短期预测流程图
3.4 实证分析
本文运用上面的模型对东北电网10月13—15日实际电力系统负荷进行预测.
3.4.1 训练误差性能曲线
1)标准BP算法,见图3.
2)采用LM算法改进的BP算法,见图4.
3.4.2 预测结果
东北电网10月13日预测结果与实际负荷比较见图5.
东北电网10月14日预测结果与实际负荷比较见图6.
东北电网10月15日预测结果与实际负荷比较见图7.
图3 标准BP算法收敛曲线
图4 采用LM算法改进的 BP算法收敛曲线
时间/H
图5 10月13日负荷预测数据与实际数据对比图
3.4.3 结果分析
由图2和图3可知,当采用标准BP算法时,训练经过了2 000次仍未达到要求的目标误差0. 001,说明采用标准BP算法进行训练时收敛速度较慢;当采用LM算法改进的BP算法时,由图4可知仅仅训练21次就达到要求精度,训练时间大大缩短.预测负荷的相对误差最大为3.57%,最小为0.01%,平均误差仅为1.41%,预测精度良好,显然满足电力系统短期负荷预测的要求.
时间/H
图6 10月14日负荷预测数据与实际数据对比图
时间/H
图7 10月15日负荷预测数据与实际数据对比图
4 结 论
BP神经网络是一个由简单信息单元组成的高度相关的网络系统,是有着良好的非线性逼近能力的非线性动力学系统,因此在电力系统短期负荷预测中有着广泛的应用.然而一般的BP神经网络具有收敛速度慢、容易陷入局部极小点、迭代时间长等缺点,为克服以上缺陷,人们经过长期的研究和实践提出了各种算法改进的BP神经网络.本文采用的基于LM算法的BP神经网络有效地提高了BP神经网络的收敛速度和负荷的预测精度.仿真结果表明,基于LM算法的BP神经网络对电力负荷的短期预测具有很高的预测精度和较强的适用能力.
参考文献
[1] 刘凯.基于改进BP神经网络的短期负荷预测研究[R].合肥:河海大学, 2005.
[2] 吕毅.基于改进BP算法的电力系统短期负荷预测[R].华北电力大学,2007.
[3] 郗亚辉.基于神经网络的电力负荷中长期预测研究[D].河北大学, 2006.
[4] 李方明, 陈国兴.基于BP神经网络的饱和砂土液化判别方法[J].自然灾害学报,2005, 14(2): 108-114.
[5] 钟波,周家启,肖智.基于粗糙集与神经网络的电力负荷新型预测模型[J].系统工程理论与实践,2004, 24(6):113-119.
[6] 张大海,江世芳,毕研秋,等.基于小波神经网络的电力负荷预测方法[J].电力自动化设备,2003, 23(8):29-32.
[7] 胡云生,郑继明.基于主分量分析和神经网络的电力负荷预测[J].自动化技术与应用, 2008, 27(8):1-3.
[8] 于海燕,张凤玲.基于模糊神经网络的电力负荷短期预测.电网技术[J],2007, 31(3):68-72.
[9] 杨龙. 基于神经网络的电力系统短期负荷预测研究与实现[R].长沙:中南大学,2009.
[10]MARA Lúcia M LOPES, C R MINUSSI, ANNA DIVA P. LOTUFO. Electric load forecasting using a fuzzy art & artmap neural network[J].Applied Soft Computing, 2005, 5(2):235-244.
[11]M BECCALI, M CELLURA, V L BRANO,et al. Forecasting daily urban electric loadprofiles using artificial neural networks[J].Energy Conversion and Management, 2004, 45(2) :2879-2900.
BP人工神经网络的新型算法 篇4
BP人工神经网络实际上是通过梯度下降法来修正各层神经元之间的权值,使误差不断下降以达到期望的精度。从本质上讲,这种计算过程是一种迭代过程,迭代算法一般都与初值的选择密切相关,如初值选择的好,则收敛速度快,如初值选择不好,则收敛速度慢或根本不收敛。当采用梯度下降算法调整权值时,不可避免地存在陷入局部极小的问题。尽管很多文献都报道了各种各样的改进方法来加快收敛速度,如变学习率,加惯性项(也称动量项)等方法。然而,由于这些方法都由于迭代及优化的基本思想,不可能从根本上解决对初值的依赖性及局部极小问题。
2 BP网络结构及参数假设
考虑三层结构的BP网络,如图1所示。网络参数假设如下:1)样本数量:k个;2)输入节点:n个;3)隐层神经元:v个;4)输出层神经元:m个;5)输入向量:xp;6)隐层加权和向量:nethp;7)隐层输出向量:hp;8)输出层加权和向量:netvp;10)教师向量:tp。
其中:p=1,2,3,…,k。输入层与隐层、隐层与输出层的权矩阵分别为:
输入与隐层之间的权矩阵是v×n维的,可以是自由的矩阵,值取(-1,1)内的随机数,隐层与输出层之间的矩阵是m×v维的,是待求矩阵。
3 新算法
对k个输入样本,输出层输出向量的第i个分量的netvpi为:
中x泛指任一个神经元的净输入,y代表该神经元对其净输入为x时的实际输出
若输出层的功能函数为:f(x)=1/(1+e-x)。
解得x=ln[y/(1-y)],所以
则方程组(1)可表示如下:
5)式中右边是已知量,左边的ωi是待求的量,hi右下式求得:
其中:设隐层的功能函数为sigmoid函数,即f[1/(1+e-x)]。
根据线性方程组的基本定理知:(5)有解的充要条件是[h]k×v的秩与增广矩阵[h,b]k(v+1)秩相等。另一个方面,如[h]k×v的各行线性无关,则v
4 算法分析
该算法抛弃了传统的优化思想,对给定的模式样本对,通过选择网络的结构,任意选定一组自由权,然后直接解一组线性方程组求得另一组待求权。新算法中教师值只须回传一次。这样,使得原来的样本模式对之间的映射问题由传统的对目标函数进行优化迭代的算法转变成对线性方程组的求解问题,因而大大简化了计算,提高了运算速度。本文采用高斯列主元消元法求解线性方程组,它的时间单复杂度是多项式阶。
5 传统BP算法
为了比较传统BP算法与新算法,在次对传统BP算法做一介绍。
1)任选一组初始权[W],[Wf]。
2)计算总误差:
3)如e<ε(ε为给定的精度)。则停止计算机,输出权值。
4)如e>ε,则按梯度下降法修正权值,再返回2。
梯度下降法如下:
其中η是学习速率。
6 MATLAB仿真
新算法可以求解像编码、异或等许多问题,这里仅多XOR问题进行计算机仿真比较(n=2、v=4、m=1),为了使传统方法收敛,取η=1.8,ε=10-6,初始化权值为与新算法靠近的一组值,表1。
7 结论
本文抛弃了传统BP算法中采用的梯度下降优化思想,采用新颖的通过初试化自由权来求解待求权的思想,使得复杂的非线性模式映射(联想)问题转化为一组线性方程的求解为题,从而大大加快并简化了计算过程,其时间复杂度为多项式阶。从根本上克服了传统BP算法的收敛速度慢、易陷入局部极小问题,计算机仿真结果表明该算法是十分有效的。
参考文献
[1]张立明.人工神经网络的模型及其应用[M].复旦大学出版社,1992
[2]王洪远,史国栋.人工神经网络技术及其应用[M].北京:中国石化出版社,2002.
[3]王旭,王宏,王文辉.人工神经元网络原理与应用[M].沈阳:东北大学出版社,2000.
[4]李广琼,蒋加伏.关于对BP神经网络算法改进的研究[J].常德师范学院学报:自然科学版,2003,15(2):31-34.
[5]张代远.一种全新的人工神经网络算法[J].计算技术与自动化,2000,19(2):35-38.
人工神经网络BP算法 篇5
摘要:人工神经网络通过模拟人脑神经网络的方式记忆、处理信息,具有很高的智能性,近些年来,被广泛应用在太阳能用铅酸蓄电池剩余电量预测的研究中,但是,收敛速度慢、对初值敏感以及较易陷于局部极小值等是单一神经网络算法难以解决的缺点,针对该问题,将蚁群算法进行改进并与BP神经网络相融合,先采用改进的蚁群算法将BP神经网络的权值参数进行全局训练,然后,采用BP神经网络算法进一步进行局部学习,从而获得最优的BP神经网络权值.最后,通过MATLAB仿真和实验验证了本课题所采用的改进蚁群与BP网络融合算法能明显改善BP网络的收敛速度以及预测精度,能准确地预测出太阳能蓄电池SOC。
关键词:太阳能铅酸蓄电池sOc;改进蚁群算法;蚁群与BP网络融合
DoI:10.15938/j.jhust.2016.05.018
中图分类号:TK02
文献标志码:A
文章编号:1007-2683(2016)05-0095-05
0.引言
太阳能路灯系统中,光伏电池利用光生伏打效应原理产生电能.白天,光伏电池将太阳能转换为电能存人蓄电池;晚上,蓄电池为太阳能路灯提供电能,太阳能道路照明系统由光伏电池、太阳能用铅酸蓄电池、控制器和LED路灯等组成.铅酸蓄电池是太阳能照明系统非常重要的组成部分,但是,相对其他组成部分来说,铅酸蓄电池成本高昂、寿命偏短,因此,对蓄电池进行科学管理是必不可少的一部分,要提高蓄电池寿命,准确预测蓄电池剩余电量是基本前提之一,蓄电池剩余电量(state of charge,SOC),代表电池使用一段时间或长期搁置不用后的剩余容量与其完全充电状态的容量比值,常用百分数表示,目前,安时积分法广泛应用在蓄电池剩余电量在线预测中,但是,安时法存在需要精确计算充放电效率以及测量工具的不精确容易产生累积误差等问题,因此,人们在不断探索采用新的方法来精确预测蓄电池SOC,近十年来,神经网络由于其高智能性得到人们广泛青睐并将该技术应用在铅酸蓄电池SOC的预测中,虽然该方法与传统预测方法相比,它具有非线性、联想记忆、学习和自适应性等重要特征和性质,但是,BP神经网络也有收敛速度慢,对初值设置敏感,容易陷入局部极小值等缺陷和不足,为了克服BP神经网络的上述不足,本文对BP神经网络算法预测蓄电池SOC进行了优化改进,将改进的蚁群算法与BP神经网络算法相结合,先采用改进蚁群算法将权值范围缩小至最优值周围,然后再采用BP神经网络算法训练网络,获得最优权值,最后,建立蓄电池SOC预测仿真模型,验证改进的蚁群算法与BP网络融合来预测蓄电池SOC的有效性。
1.太阳能用蓄电池SOC常用在线预测方法概述
1.2内阻法
研究表明,蓄电池的内阻与SOC有直接的对应关系,但是电池剩余容量大于50%时,蓄电池的内阻变化不太明显,仅在低于50%时,蓄电池内阻才会出现明显的变化.蓄电池内阻一般在毫欧级,一般的测量难于满足精度要求,且通用性差。
1.3神经网络法
神经网络算法作为一门较新的技术受到人们高度重视,与传统控制技术相比,具有无法比拟的优势,该算法具有联想记忆、自学习、非线性、以及一定的泛化和容错能力,有极高的智能性,但是,不容忽视的是,神经网络算法有容易陷入极小值和收敛速度慢等难以解决的问题。
本课题对神经网络法预测蓄电池剩余电量进行深入研究,采用蚁群算法容易与其他智能算法相结合的优点,将改进的蚁群算法与BP神经网络算法相融合,有效地解决了收敛速度慢,容易陷入极小值等问题。
2.改进蚁群-BP网络算法
蚁群算法(ant colony algorithm)是Marco Dorigo博士1992年提出,是一种在图中寻找最优路径的概率算法。
2.1蚁群算法基本原理
蚂蚁在寻找食物的过程中,会挥发出一种叫做信息素的物质,蚂蚁通过感知信息素的强弱进行交流,他们就是通过这种方式达到搜寻食物的目的,蚂蚁趋向于信息素强的路径,若某一路径信息素越强,则该路径能吸引越多的蚂蚁通过,这种现象称为蚁群的正反馈现象。
蚁群算法对初始路径要求不高,具有全局搜索功能,而且还较易与其他智能算法结合,但是,该算法也有一些缺陷:①解決大规模问题时,较难在可接受的循环周期内找到最优值;②蚂蚁趋向于信息素强的路径,但是,往往出现信息素最强的路径不是最优路径等问题,针对以上情况我们将对蚁群算法进行改进,最大程度避免搜索时间过长,搜索进度停滞等现象。
2.2蚁群算法的改进
一般来说,一个解决方案越优秀,越有可能在他周边搜寻到最优解;反之,方案越差,在他的周围基本没有找到最优解可能,因此,本改进算法的思想是增强较优解,削弱较差解,使得路径越短的边信息素强度越大,越长的边信息素强度越弱,从而增大较优解与较差解之间的信息素差异,从而使蚂蚁搜索路径集中于较优解附近。
2.3改进蚁群算法与BP网络的融合
设网络中有m个待优化的参数,对于每个参数Ai(1≤i≤m),将其分割为n份,从而形成一个m×n大小的集合B,设释放蚂蚁数为K,每只蚂蚁按照伪随机比例规则在集合B中分别选择相应的值并记录下来,从而形成禁忌表.当蚂蚁对各个参数选择相应的值后,形成一次循环,然后计算各蚂蚁所经过的路径,并评选出最优和最差蚂蚁,进而对信息素进行更新调节,这一过程反复进行,直到达到最大循环次数或者达到预期的精度要求,此时,所求结果为较优解.将改进蚁群算法求得的较优解作为BP神经网络算法的初始值,然后经过BP网络训练找出最优解。
改进蚁群与BP网络融合算法具体步骤如下:
步骤1):信息初始化,包括定义信息素的定义域,初始值,设置蚂蚁个数,最大迭代次数以及BP算法网络结构,训练误差等等。
步骤4):重复步骤2)、3)直到每只蚂蚁生成一条路径;
步骤5):以BP网络实际输出值和期望值的均方误差大小进行排序,并评出最优和最差蚂蚁。
步骤6):对所有蚂蚁按照公式(1)执行全局信息素更新;
步骤7):重复以上步骤,直到满足迭代终止条件。
步骤8):将改进蚁群算法求出的最优解作为BP神经网络的初始权值,然后,训练网络,根据网络的期望输出与实际输出的误差进行反馈调节,进一步调整权值到最优。
步骤9):利用测试样本数据对网络的精度和泛化能力经行检验,若能达到设计要求,则算法结束,否则,重新从第一步开始。
3.改进蚁群与BP网络融合算法在铅酸蓄电池SOC预测中应用
铅酸蓄电池的化学特性复杂,不能经过直接测量获得蓄电池SOC,而蓄电池的外特性:在线电压,放电电流和环境温度等与剩余电量之间存在某种非线性关系,本课题,我们利用蓄电池放电过程中容易测量的数据:端电压、放电电流、环境温度作为改进蚁群BP网络的输入,蓄电池SOC作为输出,建立仿真模型,验证试验效果。
3.1改进蚁群与BP网络融合算法参数设置
蚁群算法参数设置如下:待优化的權值变量数m=20,蚂蚁数K=40,最大迭代次数100。
BP神经网络选择一个隐含层,其节点数选为5,隐层以及输出层传递函数皆选择Sigmoid函数,trainlm作为训练函数,训练次数设为5000,误差0.005,其他参数默认。
3.2样本数据的采集
环境温度越低,蓄电池的总容量则越小,从而在放电情况相同时,因温度不同,蓄电池SOC会有所不同;放电电流的大小和在线电压对蓄电池SOC也有特定的关系.采用神经网络算法的优点是不需知道蓄电池内部复杂的化学特性,仅仅通过采集蓄电池外特性和剩余电量的特定关系数据,通过网络训练,即可达到预测蓄电池SOC的目的.本文采样对象为:输出电压12V,容量54 AH铅酸免维护蓄电池,所采集90组数据作为训练样本,17组作为预测样本,部分样本数据如表1所示。
3.3仿真结果及分析
3.3.1蚁群算法的改进仿真
图1为改进前后蚁群算法进化曲线.从图中可以看出改进后的蚁群算法收敛速度要优于改进前的蚁群算法,改进后的算法误差精度可达0.15,改进前精度则为0.18。
3.3.2改进蚁群与BP网络融合仿真
图2为蚁群BP网络融合算法训练曲线,图3为单-BP网络训练曲线.从图中可看出,改进的蚁群-BP神经网络融合算法收敛速度明显快于单-BP神经网络的收敛速度,前者均方误差精度可达0.0045,后者误差精度在0.005。
3.3.3预测结果分析
表2为训练好的网络的预测值与样本值对比结果,图4为网络输出值与样本值对比数据曲线,
由网络预测值与实际样本值对比可知,蓄电池sOc预测值与实际值误差不超过2.5%,该网络能比较准确预测太阳能用铅酸蓄电池的剩余电量。
4.结语
人工神经网络BP算法 篇6
3.1 BP人工神经网络较传统DSM综合评价方法的优势
本文所讨论的D S M综合评价问题是一个复杂多指标的综合评价问题,由于评价问题涉及到了多个方面(发电侧、电网侧、用户侧等),以及评价过程考虑了诸多因素(经济效益、环境效益和社会效益等),其中包括了定量指标和定性指标,因此DSM综合评价方案往往难于设计。在传统的DSM综合评价中,专家的参与是必不可少的,无论是赋权过程还是打分过程,都需要专家的参与才能得到较为合理、满意的结果。而在众多综合评价方法中,模糊综合评价法由于能对专家做出的模糊判断给出较为科学的处理,是应用在DSM综合评价中较多的综合评价方法之一,也是较合适的一种。然而,这种评价方法在实际应用中仍然无法避免评价过程中的随机性、主观偏好等影响,特别是DSM综合评价这样涉及因素错综复杂、评价标准又较为模糊的综合评价问题,很容易在主观、模糊的判断上产生偏差,并引起评价结果的不合理。因此,为了确保评价效果,需要寻找一个“主观问题客观化”的综合评价方法。而BP人工神经网络法既能对这类复杂的多指标综合评价问题做出评价,又能确保评价过程的客观性。因此,BP人工神经网络法不失为替代传统的专家评价法和模糊综合分析法等传统方法,解决DSM综合评价问题中难点的优秀解决方案。
BP人工神经网络法在DSM综合评价中的应用优势,除了能替代专家评价、保持评价过程和赋权过程的客观性外,对于复杂指标体系能同时完成赋权组合以及定量评价也是其优势之一。下面结合DSM综合评价的指标体系加以分析。
DSM综合评价中考虑因素众多,指标体系的设计方案也很多,下面给出一种指标体系设计方案及各指标的评价判据,见表1。
由此可以看出,在DSM综合评价指标体系中,往往既有根据数据大小判断好坏的定量指标,又有只能基于模糊判断的定性指标。在定量指标中,不同指标之间的性质、评价标准、量纲等又不尽相同,很难评判这些指标的好坏及之间影响轻重的关系,例如:“年收益十万元”、“一次性投资200万”、“客户满意度80%”这些数据难以通过主观赋权法直接横向判断权重,而常用的客观赋权法在DSM综合评价中也不大适用。在传统DSM综合评价方法中,无论是模糊评价法还是其他方法,通常是采用统一专家打分的方法,根据专家的经验对各个单项指标先进行评分,使得性质、量纲不相同的指标原始数据转化为同类的分值数据,方便后续的指标赋权、评价结果处理等步骤。但整个评价过程已经经过了多次主观判断处理,而且每次主观判断相对独立,这使得单项评分时的评判标准和之后的赋权标准很可能不统一,导致最后的赋权结果不合理。其实,赋权方法作为一种线性或非线性的数据组合方法,是可以直接对不同性质的原始数据使用,以达到消除指标数据类型差异,完成评价结果组合与处理效果的;只不过,在传统的方法中,这样的赋权工作难以完成。而在BP人工神经网络评价法中,借助于计算机技术与完成训练后形成的内部数学模型,其赋权过程和评价过程是始终统一的。在进行DSM综合评价时可以直接将原始数据(而不是专家单项评分后的数据)作为输入,便能得到最后的评价结果,避免了多次主观评价的衔接中出现的偏差等问题。
除了上述优点之外,BP人工神经网络法在DSM综合评价中的应用还具备其他众多传统方法所无法比拟的优点,包括:
(1) BP人工神经网络单对象评价能力强。在完成训练后,BP人工神经网络能单一地完成任何同类对象的评价工作,并保持评价中的客观性。而DSM综合评价中的主要工作类型便是单对象评价,这也恰恰是众多传统综合评价方法中所比较欠缺的一个能力。
(2) BP人工神经网络评价法更经济、更高效。借助于计算机技术的运算能力,在DSM综合评价系统中,只要给出了原始输入数据,通过BP人工神经网络便能很快得出最后的评价结果。相较于需要使用专家评价的传统评价方法而言,人工神经网络法既经济,又高效。而且,对于一个完成训练的人工神经网络而言,其参与的评价工作越多,所评价问题越复杂,则其经济、高效的优势将体现得越明显。
(3) BP人工神经网络评价法有着强大的非线性处理能力,这使得它在DSM综合评价这样复杂的问题中能有更好的精度。传统的评价方法和赋权方法多是基于线性模型而建立的,但是DSM综合评价这样的问题十分复杂,使用单一的线性模型往往难以准确反映出问题的实际情况或者专家的实际判断;而BP人工神经网络则可以通过不断的学习优化,最终得出逼近理想最优模型的非线性模型,对于D S M综合评价这样的复杂问题而言,人工神经网络显然可以给出更合理、更精确的评价。
3.2 BP人工神经网络综合评价法的不足
尽管BP人工神经网络法有着出色的替代专家评价和处理复杂评价问题的能力,在DSM综合评价问题中有着很好的适用性,但是人工神经网络的缺陷与局限性同样不可忽视。BP人工神经网络法在DSM综合评价中的应用所存在的主要不足之处如下:
(1) BP人工神经网络评价的科学性、精确性十分依赖于用于训练的样本集,因此训练样本集的数量与质量十分重要。由前文的分析可知,传统的评价方法对于DSM综合评价这样的复杂问题总是存在着或多或少的缺陷,而用于人工神经网络训练的样本集只可能是由传统评价方法完成评价的样本组成,因此训练样本中的评价偏差也是在所难免的。为了尽可能弥补训练样本中的缺陷,只能寄希望于增加训练样本的数量来消除偏差。但是就目前而言,DSM综合评价仍是一个新兴的、发展中的概念,因此要为人工神经网络提供足够多的评价样本进行学习是相对困难的。
(2) DSM是一个十分宽泛的概念,DSM的项目类型也有很多,不同的DSM项目在效益、规模、功能、细节等方面差异较大。这导致了一个单一的指标体系难以适用于所有类型的DSM综合评价问题,也导致了不同情形下的DSM综合评价问题中的权重关系,甚至指标体系都可能存在差异。而人工神经网络评价是基于同类型样本学习,并进行同类型样本评价的综合评价机制,缺乏灵活性,这一方面会使人工神经网络可能缺乏足够的同类样本进行学习,另一方面也使人工神经网络面对灵活多变的评价问题时缺乏评价能力。
(3) BP人工神经网络法的不灵活性导致了人工神经网络评价无法根据社会发展的变化而变化。一个已经完成训练的BP人工神经网络,其内部的权值或阈值已经确定,此后所做出的评价皆是基于已经确定的内部数学模型而定。而DSM作为发展较快的新概念,其评价标准、权重等会随时间而改变,此时如果不重新对BP神经网络进行再训练,则此人工神经网络的评价结果会出现过时性的偏差。
(4) DSM综合评价的指标体系中仍然存在着需要模糊判断的定性指标,如社会影响等,而当前的B P人工神经网络是无法给出定性指标的模糊评价的,因此,所有定性指标仍然需要专家进行评价才能完成。当然,随着社会科学的发展,这些定性指标也可能通过某种方法定量描述,如使用某种指数反应定性指标好坏等。
(5)人工神经网络在进行综合评价时,其评价过程的数学模型和指标权重均是“隐性”的,我们只能由输入值得到输出值,而不了解中间的处理过程。这将使评价过程中可能存在的缺陷被忽略,使得我们可能得到一个不合理的评价结果却难以发现,即使发现也缺乏有效的手段进行直接纠正。
(6)人工神经网络法是基于计算机技术的产物,因此算法缺陷、程序漏洞等问题可能会影响人工神经网络评价的准确性。譬如标准的BP神经网络“梯度下降”的算法中,就存在容易陷入误差的局部极小值,从而难以获得全局最小值的问题。
尽管BP人工神经网络评价法应用在DSM综合评价中时仍存在不足之处,但这不是说明人工神经网络不适合用于DSM综合评价,而是要求我们在使用BP人工神经网络综合评价法时,要科学、合理地进行运用,以达到扬长避短的效果。
4 BP神经网络算例
为了验证BP神经网络在DSM综合评价中的可行性和优越性,本文使用Matlab软件中的神经网络工具箱,对DSM综合评价问题进行仿真计算。
本文选用了不同地区的1 5个DSM项目作为待评样本,先收集整理D S M项目各指标分项的初始数据,再统一组织专家组对这1 5个样本按1-5分打分的方式进行单指标分项评分,然后使用层次分析法赋权和模糊分析法综合的方式得出最终结果。之后随机选择其中10个样本作为训练样本集,对BP人工神经网络进行训练,其中预期输出结果为专家评价的结果;将剩下的5个样本作为测试样本集,用以检测完成训练后的B P人工神经网络进行DSM综合评价时的准确性。下面是使用Matlab软件完成BP人工神经网络建立、训练和评价的过程。
4.1 确定BP神经网络的拓扑结构
由前文可知,根据Kolmogorov定理,具有一个隐层的三层BP神经网络,可以以理论上的任意精度(任意希望小的误差)逼近一个连续的函数。因此,本例选用包含一个隐层的三层BP神经网络作为D S M综合评价系统的神经网络结构。
神经网络用于综合评价问题时,输入层神经元的个数与评价指标体系的个数相等,本例采用的指标体系如表1所示。因此输入层神经元数目n=16。而在本例中,神经网络的目标是输出一个综合评价结果,因此输出神经元数目m=1。
隐层神经元数目的过多或过少会引发训练次数增加或过拟合等问题,将影响神经网络的精度。而隐层神经元数目的确定方法很多,没有统一的标准。这里采用一个参考性的公式:隐层神经元数目=log2n,其中n为指标数量。因此本例中隐层神经元数目确定为4。
4.2 使用Matlab软件的神经网络工具箱构建BP神经网络模型
受限于当前神经网络的处理能力,本例中需要先对各指标初值进行预处理后才能完成神经网络评价。首先,对于定性指标采用模糊评价中的隶属度函数将其定量化。其次,对于其他指标的初数据进行归一化处理,本例中使用最大最小函数premnmx函数完成归一化。
在BP神经网络的建立中,使用非线性S型函数tansig作为输入层到隐层的传递函数,使用线性的purelin函数作为隐层到输出层的传递函数;训练函数使用trainlm函数(即LMBP算法)。
4.3 使用训练样本集对BP神经网络进行训练
使用1 0个DSM综合评价结果样本作为训练样本集进行训练,将归一化后的各指标原始数据作为输入数据,通过专家评价法得到的评价结果设定为期望输出,训练的允许误差设置为0.001。图2为训练过程中训练次数与误差的变化关系图。
由图2可以看出,在训练次数达到120次左右时,BP神经网络模型进入稳定状态,表明此时的BP神经网络已完成训练过程。
4.4 使用训练完成的BP神经网络对测试用样本进行评价
完成训练后的BP神经网络即可用作DSM综合评价,在本例中,使用5个测试样本作为BP神经网络的输入,并将神经网络输出结果与预期评价结果相比较,其中,预期评价结果为由模糊分析法得出的专家评价结果。
DSM评价结果与预期评价结果见表2 (评价等级1-5)。
由图3测试样本的评价结果可以看出,完成训练后的BP人工神经网络所做出的评价等级,与专家模糊评价所得的评价等级相符,而BP神经网络输出的数值评价结果也与预期较为接近,说明本例中所构建的BP人工神经网络对于该DSM评价问题是科学、合理的。
由此可以看出,BP人工神经网络对D S M综合评价问题有着较好的拟合能力,利用改进的LMBP训练算法,能获得较快的训练速度与训练稳定性,对于DSM综合评价这样的复杂问题也能有效消除误差,保证了训练效率和训练质量。经过拟合后的BP人工神经网络模型,能够较真实地模拟专家评价的过程,得出与专家组模糊评价相近的结果。且完成训练后的BP人工神经网络,只要输入初始数据就能立即得到结果,与传统评价方法相比,避免了组织专家组进行评估然后再汇总统计等流程,可以节约大量时间与经费,且能同时完成多个样本的高效而准确的综合评价。由此可见,BP神经网络在DSM综合评价系统中的应用是可行的,且比传统方法更高效、更经济,而又不失准确度,是DSM综合评价系统中综合评价方法选择中的一个优良方案。
5 总结
人工神经网络发展至今,已成为重要的人工智能实现方法之一,在综合评价领域,也有着良好的应用前景。将BP人工神经网络评价法引入DSM综合评价系统中是完全可行且效果良好的。但BP人工神经网络在DSM综合评价方面的应用也是一柄“双刃剑”:一方面,BP人工神经网络评价具有许多传统评价方法所不具备的优势,如高效、经济、自适应能力和非线性处理能力强、能避免主观评价偏差的影响、赋权和评价结果更合理等;但是另一方面,现有的人工神经网络方法仍存在着对训练样本集质量依赖性强、一类神经网络只能用于评价一类问题、评价过程不透明、评价算法可能存在缺陷导致评价结果不合理等问题。由此可见,人工神经网络法不是万能的,在DSM综合评价中应用BP人工神经网络法时,一方面需要根据其特点合理运用,扬长避短;另一方面则需要针对现有BP神经网络法的缺点进行改进与提高,这样才能提升人工神经网络的应用水平和应用效果。
一种更好地使用BP人工神经网络评价的策略是结合使用传统评价方法和人工神经网络法进行DSM综合评价,以达到取长补短的效果。譬如对同一评价对象先使用模糊评价法等其他传统方法进行评价,再用BP人工神经网络法验证其准确性和客观性等。也可以采用部分定性指标仍用专家评价法,而定量指标用BP人工神经网络法的评价方法。不过,为了保持神经网络高效性的优势,通常希望BP人工神经网络法能替代专家评价法做出评价。这时,为了保持人工神经网络评价的准确性,可以采用专家定期抽样评价的方法,其评价结果不仅可以用于检验现有BP人工神经网络可能存在的缺陷,还可以用作训练样本对BP人工神经网络进行再训练,以使BP人工神经网络评价能够跟上客观实际的发展。
人工神经网络BP算法 篇7
人工神经网络 (ANN, Artificial Neural Networks) , 简称为神经网络 (NN) 或连接模型 (Connectionist Model) , 是对人脑或自然神经网络 (Natural Neural Network) 若干基本特性的抽象和模拟。人工神经网络以对大脑的生理研究成果为基础, 其目的在于模拟大脑的某些机理与机制, 实现某方面的功能。专家给人工神经网络的定义是“由人工建立的, 以有向图为拓扑结构的动态系统, 通过对连续或断续的输入作状态响应而进行信息处理。”
以下人工神经网络几个突出的优点使它近年来引起人们的极大关注:可充分逼近任意复杂的非线性关系;所有定量或定性的信息都等势分布贮存于网络内的各神经元, 故有很强的鲁棒性和容错性;采用并行分布处理方法, 使得快速进行大量运算成为可能;可学习和适应不知道或不确定的系统;能够同时处理定量、定性的知识。
人们对神经网络的研究和应用已经渗透到许多领域, 如机器学习、专家系统、智能控制、模式识别、计算机视觉、信息处理、智能计算、联想记忆、编码理论、医学诊断、金融决策、数据挖掘、非线性系统辩识及非线性系统组合优化等。在金融领域的应用包括风险预警、风险计量、金融审计、时间序列分析、价格预测等。
目前应用最广泛的人工神经网络模型是采用误差逆传播算法 (ErrorBack Propagation Training) 的多层前馈网络模型, 简称BP模型。BP模型是由Rumelhart等人组成的PDP小组于1985年提出的一种神经元模型。理论证明, 一个3层的BP网络模型能够实现任意的连续映射。
BP网是一种具有3层或3层以上的多层神经元网络, 它在左右各层之间各个神经元实现全连接, 即左层的每一个神经元与右层的每个神经元都有连接, 而上下层各神经元之间无连接, 如图1所示。
BP网络按有教师方式进行训练, 当一对学习模式提供给网络后, 其神经元输出对应于输入模式的网络响应。然后, 按减少希望输出与实际输出误差的原则, 从输出层经各中间层, 最后回溯到输入层修正各连接权。由于这种修正过程是从输出到输入逐层进行的, 所以称它为“误差逆传播算法”。随着这种误差逆传播训练的不断进行, 网络对输入模式响应的正确率也不断提高。由于BP网有处于中间位置的隐层, 并有相应的学习规则可循, 使其具有对非线性模式的识别能力。特别是它的数学意义明确、步骤分明的学习算法, 更使其具有广泛的应用前景。
BP网的学习过程主要由4部分组成:输入模式顺传播 (输入模式由输入层经中间层向输出层传播) 、输出误差逆传播 (输出的误差由输出层经中间层传向输入层) 、循环记忆训练 (模式顺传播与误差逆传播的计算过程反复交替循环进行) 、学习结果判别 (判定全局误差是否趋向极小值) 。
二、应用BP人工神经网络进行平面区域划分
(一) 问题的提出
给定平面上一些样本点和这些点所属的分类, 要求根据不同分类的样本点的轮廓, 把平面划分成不同的区域。例如, 给定红、黄、蓝、绿4种颜色的点 (如图2所示) , 要求把平面划分为红、黄、蓝、绿4个区域 (如图3所示) 。
(二) 数学模型
定义平面是[0, 1) ×[0, 1) 的区域, 平面上给定的样本点P为 (x, y) , x, y∈[0, 1)
建立3层BP神经网络, 输入层取2个输入单元, 样本点P的x和y坐标值组成输入向量。输出层的输出单元数是样本点的分类数C。在输出向量的各个分量中取最大值者所对应的类则为该输入所属的类。
(三) 训练集的构造
当样本点属于i类时, (0≤i
(四) 训练
根据实验, 取定中间层隐单元的数目是16, 隐单元和输出单元的激活函数皆为Sigmoid函数。训练次数是5 000, 学习系数是0.9, 动量项为0。图4是一个三类点划分的3层前馈神经网络。
(五) 对平面的划分
通过前面的步骤, 现在已经得到一个训练好的网络。
把显示平面看作是由W×H个像素组成的平面, 对每个像素 (w, h) , 计算出它在平面上的坐标 (w/W, h H) , 以其作为网络的输入向量, 从网络输出向量的n个分量中, 找出具有最大值的分量值的分量, 则把该象素归入该分量所对应的类中。
对平面上每个像素都进行上述步骤, 则每个像素都有唯一的归属类, 于是平面就被划分为不同的区域。
三、程序实现及结果
在应用BP人工神经网络进行平面区域划分的程序实现中, 使用了开源的annie人工神经网络类库。annie是一个人工神经网络的类库, 由C++开发而成的。它可以用来实现多种神经网络, 例如多层感知器、径向基函数网络、Hopfield网络等。这个库主要面向那些要在特定的应用程序中使用神经网络的初学者, 可以使他们把精力集中在应用程序而不是人工神经网络实现本身。
下面给出一些样本点和程序实现所得的划分区域。左边为样本点, 右边是结果的划分区域, 如图5至图7所示。上边为样本点, 下边是结果的划分区域, 如图8和图9所示。从结果可以看出, 程序能够处理较为复杂的轮廓形状, 而且区域的划分也比较合理, 区域划分边界平整光滑。
人工神经网络BP算法 篇8
随着复杂的经济环境变化,人们对供应链环境下供应商管理与评价的要求越来越高了,没有满意的供应商就不可能生产出低成本、高质量的产品,也就不能满足客户的要求。因此,企业必须掌握好供应商的评价与管理,从而建立成功的合作伙伴关系,最终提高自身的核心的竞争力。
1 传统的供应商评价方式
供应商评价的方法很多,可以概括为精确性的数学分析方法和非精确性的经验法,包括:加权评分法、直接判断法、层次分析法、数据包络法、模糊评判法、灰色系统法等等。
以往的许多供应商评价方法都属于多目标评价,以确定评价指标的相对隶属度(指标权重)为基础,通过权重计算供应商的综合得分作为评价依据,在各个指标的之间的权重衡量上,容易出现主观的人为因素,除此之外还存在的问题包括:指标属性间的关系绝大多数为非线性关系,一般的方法很难反映这种关系,以及评价规则又常常相互矛盾,有时无条理可循,通常难以准确地表征各指标间的相互关系,更无法用定量关系式来表达它们之间的权重分配,所能准确提供的只是各指标的属性特征以及同类系统的以往评价结果。因此,如何尽可能地消除评价过程中的主观随意性,是供应商评价问题的研究热点之一。
2 BP人工神经网络(BPANN)及其学习机制
由于神经网络方法本身具有非线性映射、自学习和联想记忆等特点,能通过样本训练的方法获取各个指标之间的关系,无需人为直接确定权重,在利用专家知识的同时,又减少了评价过程中主观因素的影响。这些特点使得神经网络成为一种有效的智能化评价方法,为供应商评价问题开辟了一条新的道路。BP(Back Propagation)神经网络是一种按误差逆传播算法训练的多层前馈网络,是目前人工神经网络中应用最为广泛的一种[1]。1989年,Robert Hecht Nielsen证明了三层网络可模拟任意复杂的非线性问题,三层BP网络能够形成任意复杂区域,可以完成任意的n维到m维的映射[2]。它包括一个输入层,至少一个隐含层和一个输出层。其拓扑结构图1所示,可以看成是一个从输入到输出的高度非线性映射。输入层有n个神经元,隐含层有m个神经元。输入向量为Xk=[x1k,x2k,…,xnk];期望输出(教师值)向量为Yk=[y1k,y2k,…,ynk],输出向量为Zk输入层至中间层的权值为Wij,隐含层至输出层的权值为Wjk,θj和θk分别为中间层和输出层的阈值,k表示用来学习的样本数量。
BP人工神经网络学习步骤如下:
(1)给每个权值和阈值赋予在区间(-1,1)内的随机数,即初始化。
(2)输入一个学习样本Xk,Tk,k∈{1,2,…,N},N为学习样本数。
(3)计算隐含层节点的输出向量。,其中f为传递函数。
(4)计算输出层节点的输出向量。。
(5)计算隐含层节点与输出层节点的连接δk=〔TKk-Y3K〕×Y3K×〔1-Y3K〕,K∈{1,2,3,…,m}
(6)计算输入层和隐含层节点间权值修正量
(7)对连接权值矩阵Wjk和阈值向量θk修正,计算Wjk(t+1)和θk(t+1)
(8)用第(6)步求出的δj来修正输入层和隐含层之间连接权值Wij和阈值向量θj,计算Wij(t+1)与θj(t+1)
(9)计算全局误差E,,如果E<ε,(ε为设定的误差),则学习结束,否则更新学习次数t=t+1,返回步骤(2)。
其流程图如图2所示。
3 供应商评价模型
有关供应商评价指标的研究文献很多,Dickson通过调查研究,得出23项供应商指标,他认为质量是影响供应商评价的一个非常重要的因素;交货、历史绩效等7个因素则“相当重要”;“一般重要”的指标包括遵循报价程序、沟通系统等14个因素;最后一个因素,“往来安排”则归入“稍微重要”之列。[3]国内有学者调查表明我国企业在选择供应时,最主要的指标是产品质量,这与国际上重视质量的趋势是一致的;其次是价格,92.4%的企业考虑了这个标准;另有69.7%的企业考虑了交货期;批量柔性和品种多样性也是企业考虑的因素之一。[4]借鉴国内外学者的研究成果,并考虑到收集指标数据的难易程度,本文选取如下指标产品合格率(A1),时间遵守率(A2),批量遵守率(A3),沟通程度(A4),总资产周转率(A5),人员素质(A6),科研经费投入率(A7),地理位置(A8),总计8个指标。选取13家供应商。各项指标的原始值如表1所示。表中最后一行为理想目标值,即期望输出值,由专家经过打分得出。
4 基于MATALB的BP人工神经网络的实现
BP神经网络的实现可以采用很多方法,如利用C++、VB等语言编程实现,也可利用MATLAB提供的工具箱实现。MATLAB是一种面向科学与工程计算的高级语言,允许用数学形式的语言编写程序,用MATLAB编写程序就犹如在演算纸上排列出公式与求解问题。由于它编写简单,所以编程效率高,易学易懂。MATLAB软件有专门用于神经网络开发与应用的神经网络工具箱,涵盖了神经网络基本的常用模型,集成了多种学习算法。这使它在神经网络应用方面更为方便。本文采用MATLAB软件来实现合作伙伴的综合评价。由于供应商评价体系中各项指标的衡量标准存在较大的差异,既有定量指标又有定性指标,其性质和量纲也不同,造成各个指标之间的不可共度性,因此在利用神经网络对供应商进行综合评价之前有必要对各指标值进行无量纲化和规范化处理,以节省训练学习的时间并提高网络的性能和效率。所谓规范化处理就是通过一定的函数把指标值进行无量纲化,并映射到一个有限的区间之中。经过规范化处理的各指标值都可以转化为在闭区间[0,1]上的某个值,本文采用。在BP人工神经网络中,隐含层节点的选择是个难点,有专家提出了一些经验公式如,但考虑到网络的泛化能力,本文采用试错法[5],即每次对隐含层选取不同的节点,分别检验网络的训练效果,以训练迭代次数和输出值为评价标准,最后确定隐含层节点数为8。人工神经网络各层之间的传递函数为Sigmoid函数,它包括三种形式,即log sig,tansig,purelin,分别对应的函数表达式为,,f(x)=x,本文选用tansig函数为输入层与隐含层之间的传递函数,log sig为隐含层到输出层的传递函数。MATLAB中提供了多种网络学习函数可供选择,本文通过比较最终选取自适应动量梯度法traingdx函数为学习函数。鉴于供应商样本有限,故选择前10家供应商的数据作为人工神经网络的输入,对建立的BP人工神经网络进行训练。将后3家供应商作为检验样本。其MATLAB程序如下:
其中SHURU10,分别为经过归一化后的前10家供应商ZHUANJIAZHI10分别为前10家和后3家供应商的专家评分值。网络最大迭代次数为10000次,设定的网络训练最小误差值为1e-6,学习率为0.01。结果表明当误差学习259次后,误差已达到所给定的最小误差。网络误差曲线图如图3所示,前10家供应商实际输出值表2所示。
从表2中可以看出各个供应商的网络输出结果与专家给出的目标值都很接近,最大的相对误差仅为0.00068,最大的相对误差为0.315714286,远远小于10%,故因此可以认为,所建立的供应商评价神经网络模型,具有较好的非线性映射能力和学习能力。下面将经过归一化后的后3家供应商的数据作为输入,训练好的网络进行模拟检验,来检验其泛化能力。MATLAB代码如下:sim(net,SHURU3),其中net为以训练好的网络,SHURU3为后3家供应商各项指标的输入矩阵。模拟结果如表3所示,可以看出最大相对误差为9.92%,在10%以内,并且所得出的输出值排序也与专家值一致,因此可以认为此网络模型具有优越的泛化能力,能够用来对新的供应商进行评价。
5 与回归模型的比较
为了进一步评价神经网络模拟方法的有效性,比较分析基于神经网络模型拟合的结果是否优于其他方法。本文分别尝试对归一化后的用于训练网络的样本进行多元线性回归分析,发现在α=0.05的条件下,其F值为35.6075,远远小于F1-0.05(8,1)=238.9,通不过F检验,因此认定所得的线性回归模型不可用,这也说明了供应商指标值与专家值之间的确实满足非线性关系,是一种无法用数学公式来描述的非线性映射。
6 结论
本文所建立的企业供应商评价的人工神经网络模型,具有很高的准确度,对所用供应商样本而言,相对误差在10%以下。人工神经网络不失为企业在选择上游供应商时的有效技术手段,为当前企业构建供应链时提供了有效的决策支持。从对专家值的预测结果看,只要保证有充分的训练样本,其预测值与实际值吻合度是相当高的。并且在预测的过程中,预测者可以通过设置最小误差以及隐层神经元的个数,方便地控制预测结果的精度。神经网络评估的准确性不仅与学习样本有关,还和网络参数的选择有关。前者关系到网络的可靠性,而后者决定了网络隐含层的神经元数、学习速率和动量因子,关系到了网络的稳定性。因此在进行评估时尽可能的获取足够多的样本和确定合适的隐含层神经元个数,提高网络模型的稳定性和可靠性。
参考文献
[1]吴迪军.基于神经网络的城市基准地价评估模型研究[J].铁路航测,2003(04):5-8.
[2]侯媛彬,杜京义,汪梅.神经网络[M].西安:西安电子科技大学出版社,2008.
[3]Prahinski,Carol;Benton,W.C.Supplier evaluations:Communication strategiesto improve supplier performance[J]Journal of Operations Management,v22,n1,2004(02):39-62.
[4]钟明明.基于所有权总成本的供应商选择[M].包装工程,2005(06):67-69.
BP神经网络算法的改进 篇9
神经网络定义:我们基于对大脑神经认知然后对其进行人为的构造出某种具体功能的网络成为神经网络。
神经网络的特点:并行事务处理能力强;自学能力强。对于非线性问题, 非平衡问题以及非高斯问题有很好的适应能力。我们最为熟知的模式识别就是神经网络的主要领域之一。由于神经网络的超强描述能力和精准性, 得到各个领域的广泛应用。
神经网络包括生物神经, 人工神经网络两种。其中生物神经是由生物大脑神经元, 细胞等组成, 生物的意识就由此产生, 生物用来进行思考并指挥行动。人工神经元是通过计算机进行模拟人脑的构造, 利用电子设备等进行生物神经元的模拟, 通过算法来对人脑的记忆、回忆和反思等思想活动的模拟, 并在语音识别等领域进行应用。因此可以定义:通过对简单的紧密联系的处理单元进行组合而成的的复杂网络系统。我们可以通过软件来实习, 也可以看做认知的模式, 因此人工神经网络和并行分布处理有着异曲同工的效果, 这就说明人工神经网络在并行处理能力方面的优势。
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神经网络收敛慢, 精度低的缺点。
一种BP神经网络改进算法研究 篇10
人工神经网络是在现代神经科学研究成果的基础上所提出,它通过模拟大脑神经网络处理、记忆信息的方式进行信息处理[1,2]。近年来,其受到了计算机学界的广泛关注,在图像处理、模式识别、智能预测等领域,有着非常广阔的发展前景。
BP神经网络是误差反向传播神经网络的简称,是目前应用最广泛的神经网络模型之一。BP神经网络算法是基于BP神经网络模型的一种人工神经网络算法。
1BP神经网络算法改进
1.1BP神经网络的基本结构
BP神经网络是一个多层的人工神经网络[3],前部是一个输入层,中间包含若干隐含层,后部是一个输出层,各层之间采用互连方式连接,同层神经元之间不允许有任何连接,各层神经元只能向下一层神经元输出激活信号。其基本结构如图1所示。
1.2BP神经网络算法基本思想
BP神经网络算法利用输出后的误差来估计输出层上一层(如隐含层)的误差,再用这个误差估计更前一层的误差,通过这样一层一层的反传,可以获得从输入层到输出层的各层误差估计,并逐层修 正各层的 连接权值[4]。BP网络算法为步骤如下:
第一步:网络初始化。给所有连接权值赋上(-1,1)内的随机数,设定误差函数e,给定计算精度值ε,最大学习次数M。
第二步:随机选取一个输入样本及对应的期望输出。
第三步:计算隐含层各神经元的输入输出。
第四步:利用实际输出和期望输出计算误差函数对输出层各神经元的偏导数。
第五步:利用隐含层到输出层的连接权值、输出层的偏导数以及隐含层的输出计算误差函数对隐含层各神经元的偏导数。
第六步:利用输出层各神经元的偏导数和隐含层各神经元的输出修正连接权值。
第七步:利用隐含层各神经元的偏导数和输入层各神经元的输入修正连接权值。
第八步:计算全局误差。
第九步:判断误差是否满足要求,继而停止学习。如果误差达到设定的误差值或者达到最大学习次数,结束算法。否则返回第三步,进行下一轮学习。
BP神经网络的训练学习使用非线性规划理论中的最速下降法,连接权值修正以误差函数的负梯度方向进行[5],其中局部极小值点和全局最小值点的误差梯度都为0。BP算法一旦陷入局部极小值点,便无法判断出全局最小值点,即BP算法有可能陷入局部极小值点而无法跳出,无法收敛于期望误差,最后导致训练学习失败。同时,误差函数收敛失败,学习时间将变成无穷大。如何解决BP神经网络的训练时间和收敛速度问题是提高该算法效率的关键。
1.3改进算法的基本思想
为了提高BP网络的收敛速度,本文加入动量因子α调节各层连接权值。在训练学习中由于各层连接权值容易发生剧烈的变化引起训练过程震荡,通过加入动量因子α可使连接权值变化平缓,达到提高收敛速度的目的。
其中,α为动量因子,其取值直接决定了连接权值的修正行为。当α=0时,连接权值修正与以前积累的调整经验无关,只与当前的梯度下降有关;当α=1时,连接权值修正完全由以前积累的调整经验决定。如此,通过附件动量因子α的方法完成对当前梯度下降的过滤,当梯度下降过快时,则为上一次的修正量,这样就可以将震荡修正过滤掉,稳定BP算法的修正过程,加快BP算法的收敛速度,从而可以提高BP算法的训练学习效率。
2改进算法实例
第一步:取(-1,1)内的12个随机数,并将这些随机数复制给各层之间的连接权值,选取隐含层4个节点,给设定计算精度值ε=0.01和最大学习次数M=10000。
随机赋值的输入层-隐含层权值矩阵如下:
随机赋值的隐含层-输出层权值矩阵如下:
第二步:随机抽取第k个输入样本及其对应的期望输出。
第三步:计算隐含层各神经元节点的输入和输出。
第四步:计算隐含层-输出层权系数增量。
第五步:计算输入层-隐含层权系数增量。
第六步:利用隐含层-输出层权系数增量更新隐含层-输出层的网络权值。
第七步:利用输入层-隐含层权系数增量更新输入层-隐含层的网络权值。
第八步:计算全局误差。
第九步:判断是否停止学习。全局误差lfEp=0.23596>ε=0.01,学习次数为1,小于10000,因此需要进行下一轮次学习过程:在学习样本中选择一个未使用的学习样本数据,返回到算法的第三步,继续下一轮学习,直到误差满足要求或者学习次数达到最大值。
3结语
【人工神经网络BP算法】推荐阅读:
BP人工神经网络法12-16
人工神经技术07-02
模糊人工神经网络06-02
人工神经网络测评方法06-06
人工神经网络评价法07-10
人工神经网络文献综述09-14
模拟人工算法07-23
人工智能算法05-20