共轭梯度BP算法在Matlab 7.0中的实现
陈朝阳,行小帅,李 明
(山西师范大学物理与信息工程学院 山西临汾041004)
摘 要:应用Matlab 7.0中神经网络工具箱建立BP神经网络的最优化求解方法,采用共轭梯度法对网络的权值和阚值
进行优化计算,实现网络权值和闯值的快速计算,为分析神经网络的合理结构提供了必要条件。对BP神经网络的传统梯度
下降法与共轭梯度算法进行了仿真。这里通过对算法的训练速度,容错泛化能力等方面加以讨论,多方面印证共轭梯度算
法的优越性,仿真结果凸显了训练速度的大幅提高,尤其对训练后网络受损情况下的泛化能力,采用线性回归的方法进行了
仿真验证,同样得到满意结果,从新的角度支持了共轭梯度BP算法。
关键词:BP神经网络;Matlab;神经网络工具箱;共轭梯度
中图分类号:TPl83
文献标识码:A
文章编号:t004—373X(2009)18—125一03
Implement of Conjugate Gradient BP Algorithm in Matlab 7.0
CH EN Zhaoyang,XING Xiaoshuai,LI Yue
(Physics and Information Engineering College,Shanxi Normal University,Linfen,041004,China)
Abstract:The optimized solution method of BP neural network is estabished by neural network toolbox in Matlab 7.0,
using the conjugate gradient method carry on the optimized computation tO the network weight and the threshold value,the
network weight and threshold value’S rapid calculation are realized.the essential condition is provided for analysing neuraI net—
work 7
8 reasonable structure.BP neural network’S tradition gradient descent law and the conj ugate gradient algorithm are simu—
lated.Through the algorithm training speed,aspects and fault—tolerant pan ability,superiority of conjugate gradient algorithm
is verified,the simulation result highlights the improvement of training speed,especially after training the network suffers inju—
ry in situation pan—ability,the linear regression method is used to carry on the simulation confirmation,satisfaction result is
obtained,the conjugate gradient BP algorithm is supported from the new angle.
Keywords:BP neural network;Matlab neural network toolbox;conjugate gradient
0引 言
节省了程序设计,调试及网络学习训练所需的时间,提
高了研究的效率。在此利用简单程序及函数对两种BP
人工神经网络(ArtificialNeuralNetwork,ANN)是
神经网络算法做了对比讨论。
基于模仿生物大脑的结构和功能而构成的一种信息处
理系统。它具有大规模并行数据处理能力,分布式存储
1 BP神经网络两种算法
能力,自适应学习能力等特性,已经广泛应用于信息处
1.1
BP神经网络的梯度下降法
理,模式识别,智能控制及系统建模等领域。尤其是基
函数的梯度方向指向该函数增加最快的方向,因而
于误差反向传播(Back—Propagation,BP)算法的多层
函数沿负梯度方向下降得最快,为此取负梯度方向作为
前馈网络,即BP网络是目前应用最多的神经网络[I-3]。
近年来为了克服标准BP神经网络收敛速度慢,易陷入
局部最小值,学习过程会出现震荡等缺点,出现了一系
列的改进算法¨’5]。应用Matlab集成的神经网络工具
箱(NeuraNetworkT001box,NNT001)只需掌握网络学
习训练函数就能实现算法的仿真,其中提供了丰富的网
络学习和训练函数,而且包括了各种常用的神经网络改
进算法m川。这为神经网络的仿真提供了极大的方便。
收稿日期:2009—02—19
下降算法的方向。对于给定的目标函数f[-z],函数沿
负梯度方向下降的最快,所以从任意选定的初始点出
发,每次搜索方向沿着目标函数在该点的负梯度方向进
行。从迭代点z(忌)出发,沿着负梯度方向s(尼)=
一vf[-z(k)]进行一维搜索,这里vf[-z(k)]为点z(忌)
的梯度向量,得到下一个迭代点z(k+1)=z(志)+
a1(点);(忌),口(志)为最优步长,终止条件为梯度模满足一
定的精度ll Az(k)|l<£,这就是梯度法。梯度法的优点
是方法简单,每迭代一次的工作量小,所要求的存储量
少,但是梯度法是以某点的负梯度方向作为搜索方向
基金项目:山西省青年科技研究基金资助项目(20031008)
的,因此常不能指向最优点,为此引入了共轭梯度
】25
万方数据
■囵譬蜀E譬瑶萎翟疆
法[8-l引。
1.2
BP神经网络的共轭梯度法
匿塑堕董;基堑鲎壁垒旦篁洼垄坚璺!!璺坠!:Q虫鱼塞婴
程序运行结果如图2所示。
共轭梯度法是一种改进搜索方向的方法,它是把前
一点的梯度乘以适当的系数,加到该点的梯度上,得到
新的搜索方向。因此,可以说共轭梯度法是把过去的梯
度和现在某点的梯度信息综合利用,用它的线性组合来
构造更好的搜索方向。共轭梯度算法的Fletcher—
Reeves算法(Traincgf)如下:
2(最+1)一z(惫)+a(屉)s(愚)
(1)
式中:搜索方向s(矗)是一组共轭向量;口(惫)是步长,且:
s(k+1)一一g(志)+fl(k)s(愚)
㈣=唑揣豫铲
式中:g(愚)=弋7,[z(惫)]。
函数traincgf的训练参数包括:epochs,show,
goal,time,min—grad,max—fail,srehFen,scal—tol,al—
pha,beta,delta,gama,low—lira,maxstep,minstep,
bmax。其中参数srchFcn表示线性搜寻函数。
2应用Matlab神经网络工具箱对上述两种BP算法
的分析比较
(1)建立图1所示形式1—35—1 BP神经网络逼近
函数:
厂(z)=sin(2nx)+cos(27rx)
(2)
在图l所示形式的1—35—1网络中:输入神经元1个,
中间层35个,输出层1个;中间层传递函数为正切S形
函数tansig;输出层传递函数为线性函数purelin。
黑≯ 昭
■F, 涵
含
庄
Tansig
数
输
}I{
联
■_r 涵
数
Purelin
图1神经网络模型
14 044 EIX'cI/III
图2梯度下降算法程序运行结果
(3)共轭梯度算法程序:
clear
echo on
tic
k=[一1:.05:1];
l—sin(2*pi*k)+cos(2。pi*k);
net=new[f(minmax(k),[35,1],
(’tansig’,’purelin 7},’traincgf’)I
net=init(net),
net.trainParam.show=25;
net.trainParam.epochs=20000;
net.trainParam.min_grad=le一10;
net.trainParam.goal=1e一5l
net,trU=train(net,k,1);
程序运行结果如图3所示。
%清除内存变量和函数
%显示被执行指令
0A清除指令窗
%输人数据
%目标输出数据
%初始化网络权值和阈值
%设定显示间隔次数
%设定最大循环次数
%设定最小梯度
%设定目标误差
%网络iJtl练
蕾一H-一器口譬墨&uluI劬工
Ⅻ”¨心”””小
图3共轭梯度算法程序运行结果
对比图2与图3,直观显示共轭梯度算法收敛只需
135步,而传统梯度下降算法用了14 044步,可以看出:
共轭梯度算法比传统梯度下降算法在收敛速度上提高
了两个数量级从而印证了共轭梯度算法的优越性。
(2)梯度下降算法程序:
3网络容错泛化能力的进一步测试
%清除内存变量和函数
%显示被执行指令
%清除指令窗
%输入数据
%目标输出数据
进一步对上述两训练后网络各自相应位置的一个
权值调整10%,即对网络进行一定程度的破坏,再以另
外一组检验数据对进行测试,检验其泛化能力。其中,
clear
echo on
clc
k=[一1:.05:1];
I=sin(2。pi*k)+cos(2+pi*k)f
net=newff(minmax(k),[35,13,
{’tansig’,’purelin’),7traingd 7);
net=init(net);
net.trainParam.show一---1000;
net.trainParam.epochs=30000l
net.trainParam.min_grad=1e一10;
net.trainParam.1r=0.05;
net.trainParalTl.goal=1e一5;
Enet。tr]一train(net,k,I),
126
万方数据
%初始化网络权值和阈值
%设定显示间隔次数
%设定最大循环次数
%设定最小梯度
%设定学习速率为0.05
%设定目标误差
%网络训练
检验数据对由如下语句生成:
p=[一1:.08:1],
t=sin(2*pi*p)+cos(2*pi*p).
测试函数采用Matlab工具箱中postreg函数。函
数postreg利用了线性回归的方法,分析了网络输出和
目标输出的关系,即网络输出变化相对于目标输出变化
的变化率,从而评估了网络i拘iJII练结果。梯度下降算法
i现式曳壬撞苤2;QQ2笙差!墨朗总差墨Q§翅
皂j土篡扭廛旦撞苤g
程序和共轭梯度算法程序运行后可以用如下指令:
a一---sim(net,p),
[m,b,r]=postreg(a,t)
运行结果如图4和图5。
度下降法所无法比拟的优点。共轭梯度算法收敛的速
度比梯度下降法快两个数量级,采用共轭梯度算法同时
保持了良好的泛化能力,所以对于训练具有大规模权值
的BP神经网络是一个非常好的选择。
参考文献
[1]周开利,康耀红.神经网络模型及其Matlab仿真程序设计
[M].北京:清华大学出版社,2005.
[2]张磊,胡春。钱锋.BP算法局部极小问题改进的研究发展
[J].工业控制计算机,2004,17(9):33—34.
[3]吕俊,张兴华.几种快速BP算法的比较研究[J].现代电子
图4运行结果(一)
图5 运行结果(二)
技术,2003,26(24):96—99.
其返回值m和b分别表示最优回归直线的斜率和
[4]Heeht—NielsenlL Theory of the Back Propagation Neural—
y轴截距。当m等于1,b等于0的时候,网络输出与目标
输出完全相同,此时的网络具有最优的性能。r表示网
络输出与目标输出的相关系数,它越接近于1,表示网
络输出与目标输出越接近,网络性能越好。
network[A].Proc.of UCNN[C].1989.
[5]刘晋刚.李华玲,韩燮.BP神经网络改进算法的应用[J].华
北工学院学报,2003。23(6):449—451.
[6]苏高利,邓芳萍.论基于Matlab语言的BP神经网络的改进
算法[J].科技通报,2003,19(2);130—135.
由图4,图5看到两种算法的容错泛化能力都很好,
[7]闻新,周露,李翔。等.Matlab神经网络仿真与应用[M].北
两图中A为网络输出T为目标输出;两图中m值分别
京:科学出版社,2003.
为0.988和0.994都接近1;6值分别为一0.026和
一0.023 5都接近0;而,.值分别为0.993和0.994都接
近1。既从另一角度印证了ANN对自身小的损伤的容
错能力,更说明了共轭梯度算法在大幅提高训练速度同
[8]王簧松,许洪国.快速收敛的BP神经网络算法[J].吉林大
学学报:工学版,2003,33(4):79—84.
[9]胡金滨,唐旭清.人工神经网络的BP算法及其应用[J].信
息技术,2004(4):1—4.
[10]王红霞.神经网络BP算法在网络搜索中的应用[J].微计
时保持了良好的泛化能力。
算机信息,2007,23(15):101—102.
4结语
[113罗玉春,都洪基,崔芳芳.基于Matlab的BP神经网络结构
与函数逼近能力的关系分析[J].现代电子技术,2007,30
从前面的分析结果,可以看出共轭梯度算法有着梯
(24):88—90.
作者简介 陈朝阳 1968年出生,硕士研究生。主要研究方向为进化算法、人工神经网络。
行小帅 1951年出生,教授。硕士生导师。主要研究方向为数据挖掘、进化算法、人工神经网络与智能信息处理。
李 明
1983年出生,硕士研究生。主要研究方向为进化算法、人工神经网络。
(上接第124页)
ll-14.
参考文献
[1]李莉,刘远富,薛春艳,等.基于混沌加密的数字水印新方法
研究[J].长春理工大学学报:自然科学版,2008。31(3):
155-157.
[2]徐全生,李震,杜旭强.一种基于混沌序列的图像加密算法
[J].小型微型计算机系统·2006,27(9):1 754—1 756.
[3]江景涛,胡彩旗,李福荣.数字图像混沌加密系统性能分析
[J].青岛农业大学学报:自然科学版,2007,24(3):207—
210.
[4]权安静,蒋国平,左涛.基于Logistic映射的分组密码算法研
究及其应用[J].东南大学学报:自然科学版,2004,34(9):
[5]丘水生,陈艳峰。吴敏,等.一种新的混沌加密系统方案原理
[J].电路与系统学报,2006,ll(1):98—103.
[6]陈争。曾以成,付志坚.混沌背景中信号参数估计的新方法
[J].物理学报,2008,57(1):46—50.
[7]Haykin S,Li X B.Detection of Signals in Chaos[J].Proc.
1EEE,1995,83:94—98.
[8]李兴华,高飞.~种基于网络的语音混沌加密算法[J3.电讯
技术,2007,47(4):110—114.
[9]李翠彦,高飞.一种基于超混沌Mackey~Glass系统的语音
加密算法[J].电讯技术,2007,47(I):117—121.
[10]权安静。蒋国平,左涛,等.基于超混沌序列的分组密码算
法及其应用[J].南京邮电学院学报,2005,25(4):80—84.
作者简介 王重英女,1981年出生,西安人t助教,在职硕士研究生。研究方向为计算机软件与理论、计算应用技术。
127
万方数据
共轭梯度BP算法在Matlab 7.0中的实现
作者:
陈朝阳, 行小帅, 李玥, CHEN Zhaoyang, XING Xiaoshuai, LI Yue
作者单位:
刊名:
山西师范大学,物理与信息工程学院,山西,临汾,041004
现代电子技术
英文刊名:
MODERN ELECTRONICS TECHNIQUE
年,卷(期):
2009,32(18)
0次
被引用次数:
参考文献(11条)
1.周开利.康耀红 神经网络模型及其Matlab仿真程序设计 2005
2.张磊.胡春.钱锋 BP算法局部极小问题改进的研究发展[期刊论文]-工业控制计算机 2004(09)
3.吕俊.张兴华 几种快速BP算法的比较研究[期刊论文]-现代电子技术 2003(24)
4.Hecht-Nielsen R Theory of the Back Propagation Neuralnetwork 1989
5.刘晋刚.李华玲.韩燮 BP神经网络改进算法的应用[期刊论文]-华北工学院学报 2003(06)
6.苏高利.邓芳萍 论基于Matlab语言的BP神经网络的改进算法[期刊论文]-科技通报 2003(02)
7.闻新.周露.李翔 Matlab神经网络仿真与应用 2003
8.王赟松.许洪国 快速收敛的BP神经网络算法[期刊论文]-吉林大学学报(工学版) 2003(04)
9.胡金滨.唐旭清 人工神经网络的BP算法及其应用[期刊论文]-信息技术 2004(04)
10.王红霞 神经网络BP算法在网络搜索中的应用[期刊论文]-微计算机信息 2007(15)
11.罗玉春.都洪基.崔芳芳 基于Matlab的BP神经网络结构与函数逼近能力的关系分析[期刊论文]-现代电子技术
2007(24)
相似文献(10条)
1.学位论文 高宁 基于BP神经网络的农作物虫情预测预报及其MATLAB实现 2003
农作物主要害虫常年对作物造成严重危害,使农业经济遭到损失.预测害虫未来的发生动态,可以使治虫工作得以有目的、有计划、有重点的进行.害
虫的预测预报工作是进行害虫综合防治的必要前提.只有对害虫发生危害的预测预报做到及时、准确,才能正确的拟定综合防治计划,及时采取必要的措施
,经济有效的压低害虫的发生数量,保证农业的高产、稳产.人工神经网络是一类模拟人类神经系统的结构,他揭示数据样本中蕴含的非线性关系,大量处理
单元组成非线性自适应动态系统,具有良好的自适应性、自组织及很强的学习、联想、容错和抗干扰能力,在不同程度和层次上可模仿大脑的信息处理机
理,可灵活方便的对多成因的复杂未知系数进行建模.特别是BP网络近年来广泛应用于模式识别、预测评估等领域,并取得良好的效果.目前BP网络采用误
差逆传播算法学习训练神经网络,该算法是基于网络误差函数梯度下降的.为了克服BP网络在学习训练过程中收敛速度慢、容易陷入局部极小的不足,该文
采用了自适应的学习速率和附加动量法.该文主要利用神经网络理论,基于MTLAB的神经网络工具箱建立了虫害发生量预报预测的BP神经网络预测系统,确
定了发生量与自然因素之间的联系.并通过对安徽省庐江县田间水稻虫情的预测来检验模型的效果.实验结果证明了该模型用于虫情预测的可行性,具有很
好的应用价值.
2.期刊论文 冯蓉.杨建华.FENG Rong.YANG Jian-hua 基于BP神经网络的函数逼近的MATLAB实现 -榆林学院学报
2007,17(2)
BP神经网络由于它的学习能力和非线性特性,使其能够对非线性函数进行很好的逼近.通过对BP神经网络结构和MATLAB软件及其BP神经网络工具箱的
应用研究,利用BP神经网络工具箱设计BP神经网络,用于对非线性函数的逼近,通过网络的训练、测试达到了预期的效果.
3.学位论文 童飞 基于BP神经网络的水上交通事故预测及MATLAB实现 2005
随着我国水上交通运输事业的大力发展,各类船舶的数目日益增多,水上交通事故时有发生。我国是航运大国,做好准确、有效的水上交通事故预
测对水上交通安全起着重要的作用。准确的预测,势必减少人员伤亡和财产损失。
本文首先讲解了运用BP神经网络进行水上交通事故预测的原理,并分析了影响水上交通事故的诸多因素,而且进行了量化处理。BP神经网络由大量
处理单元组成,具有很强的平行计算、学习、容错和抗干扰能力,由输入向量和目标输出向量来训练网络并建立模型。目前BP网络采用误差逆传播算法
学习训练神经网络,该算法是基于网络误差函数梯度下降的。为了克服BP网络在学习训练过程中收敛速度慢、容易陷入局部极小的不足,本文采用了自
适应的学习速率和附加动量法。水上交通事故是由自然、航道、交通、船舶、船员及管理这6个条件单独或综合作用于人一船一环境所组成的水上交通系
统,使系统在其自身的运动中某些因素产生不协调动作而造成的。本文分析了以上因素,并找出主要因素进行了量化处理。
然而,BP网络的模型的实现需要掌握计算机编程语言及较高的编程能力,这在一定程度上不利于神经网络技术的推广和使用。而MATLAB软件提供了
一个现成的神经网络工具箱(NeuralNetworkToolbox,简称NNT),为解决这个难题提供了便利条件。本文详细介绍了利用MATLAB神经网络工具箱进行BP网
络模型建立、训练、仿真的编程方法。同时,为了弥补MATLAB在人机交互性能上的欠缺,建立MATLAB与VC++之间的应用程序接口,将VC++灵活强大的编
程能力、MATLAB强大的科学计算能力相结合。
最后本文用VC++制作界面,基于MATLAB的神经网络工具箱建立了水上交通事故的BP神经网络预测系统,采取三层BP神经网络,输入层有7个输入神经
元(船员平均水上资历、平均船龄、平均标准风天数、水域平均流速、能见度、水深和交通密度),输出层有4个神经元(重大事故、大事故、一般事故和
小事故),并通过对长江干线重庆水域的预测来检验模型的效果。实验结果证明了该模型用于水上交通事故预测的可行性,具有很好的应用价值。
全文分为5章。第1章为绪论部分,综述了本文研究的背景、论文研究的目的和意义等。第2章为BP神经网络的水上交通事故预测的原理部分。第3章
为基于BP网络水上交通事故预测的MATLAB实现部分。第4章为水上交通事故预测系统的界面设计、功能模块实现和仿真实验部分。第5章是结束语和展望
。
本系统如果投入使用将提高水上交通事故预测的水平。由于时间和本人水平有限,此系统的界面和功能等方面仍然有待进一步改进。
4.期刊论文 张云龙.刘茂.杨洋.ZHANG Yun-long.LIU Mao.YANG Yang 基于BP神经网络的苯职业暴露预测及其
MATLAB实现 -中国公共安全(学术版)2009,""(4)
苯是基本化工原料之一,大量用于各种有机合成和有机溶剂.本文利用神经网络具有自学习、自组织、自适应能力特性,运用BP神经网络的方法和生产
车间的统计数据,对现场空气中的苯蒸汽浓度进行模拟预测,得到工人的苯暴露浓度,运用MATLAB来实现各种BP神经网络的设计和训练,结果显示模拟数据
与实测数据吻合很好.文章通过实例阐述了BP神经网络进行苯职业暴露风险预测的可行性,对于降低职工苯中毒事故的发生概率,减少工人的职业伤害具有
十分重要的意义.
5.期刊论文 曾鼎昊 BP神经网络在预测股票价格中的应用 -中国科技信息2009,""(21)
尽管人们预测股市已有多种方法,但由于神经网络具有的联想记忆与非线性映射功能使人们对股市的预测多了一种有力的方法.本文研究的内容就是
用BP神经网络对股票进行预测.Matlab中的BP神经网络工具箱功能强大,但编程缺乏灵活性,而它的缺点正好用VC++弥补.本文就是用VC++与Matlab混合编
程,借助BP神经网络工具箱来实现对股票价格预测的研究.
6.期刊论文 张士科.茹忠亮.赵洪波.ZHANG Shi-ke.RU Zhong-liang.ZHAO Hong-bo 基于MATLAB的BP神经网络在煤
巷锚杆支护设计中的应用 -煤矿机械2008,29(6)
采用MATLAB的BP神经网络工具箱,建立了巷道围岩主要影响因素与支护形式和支护参数之间的高度非线性BP神经网络模型.通过对算例结果的分析,验
证了基于MATLAB的BP神经网络应用于煤巷锚杆支护设计的可靠性、可行性和高效性,这表明了BP神经网络方法在锚杆支护设计中具有一定的推广价值.
7.期刊论文 马为功.李德武.马小虎.MA Wei-gong.LI De-wu.MA Xiao-hu 基于Matlab神经网络工具箱的隧道位移反
分析研究 -兰州交通大学学报2010,29(4)
以兰渝铁路线纸坊隧道为工程背景,现场监控量测资料为依据,基于Matlab中的最小二乘原理预测围岩最终位移值,再分别基于BP神经网络和径向基神
经网络进行位移反分析,建立了两种基于Matlab神经网络工具箱的隧道围岩位移反分析系统,对比分析了径向基神经网络相对于BP神经网络的优越性.为保
证系统训练样本符合工程实际,利用Midas-GTS软件对实际隧道开挖过程(七步开挖法)进行模拟,均布构造训练样本.最后通过处理后的工程量测位移值分
析反演出量测点的实际围岩参数.
8.期刊论文 李萍.曾令可.税安泽.金雪莉.刘艳春.王慧.Li Ping.Zeng Lingke.Shui Anze.Jin Xueli.Liu Yanchun
.Wang Hui 基于MATLAB的BP神经网络预测系统的设计 -计算机应用与软件2008,25(4)
利用MATLAB设计了BP神经网络预测系统.介绍了MATLAB的BP神经网络工具箱函数和图形用户界面,详细介绍了BP神经网络预测系统的设计,并对所设计
的预测系统进行了性能评价.系统具有良好的性能,在很多领域可以发挥较大的作用.
9.期刊论文 于洋 基于MATLAB的改进BP神经网络在城市日用水量预测中的应用 -河南科学2010,28(10)
利用MATLAB神经网络工具箱对城市短期用水量进行模拟,比较各种改进BP神经网络对城市短期用水预测方面的效果,得出用BP神经网络预测城市日需
用水量是可行的,其中尤以traincgp方法预测效果最好的结论.
10.期刊论文 陈蓉.王峰.CHEN Rong.WANG Feng 基于MATLAB的BP神经网络在储层物性预测中的应用 -测井技术
2009,33(1)
在阐述BP神经网络模型结构的基础上.根据取心井段储层物性与测井信息的关系,选取相应的测井曲线,运用MATLAB神经网络工具箱中特定的函数对建
立的神经网络模型进行训练,使得储层物性(孔隙度、渗透率)和测井响应之间具有较强的非线性映射关系,在一定的条件下运用该模型可对研究区未知样
本的物性参数进行预测.实例研究表明,预测准确性较高,显示出BP神经网络对储层预测的潜在优势和实用价值.
本文链接:http://d.g.wanfangdata.com.cn/Periodical_xddzjs200918041.aspx
授权使用:电子科技大学(cddzkjdx),授权号:56b5059d-0a87-4e89-a4ca-9e5800ea6700
下载时间:2010年12月26日