共轭梯度BP算法在Matlab7_0中的实现.pdf

上传人:李医生 文档编号:7195600 上传时间:2020-11-05 格式:PDF 页数:3 大小:622.78KB
返回 下载 相关 举报
共轭梯度BP算法在Matlab7_0中的实现.pdf_第1页
第1页 / 共3页
共轭梯度BP算法在Matlab7_0中的实现.pdf_第2页
第2页 / 共3页
共轭梯度BP算法在Matlab7_0中的实现.pdf_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《共轭梯度BP算法在Matlab7_0中的实现.pdf》由会员分享,可在线阅读,更多相关《共轭梯度BP算法在Matlab7_0中的实现.pdf(3页珍藏版)》请在三一文库上搜索。

1、共轭梯度 BP 算法在 Matlab 7. 0 中的实现 陈朝阳, 行小帅, 李? 玥 (山西师范大学 物理与信息工程学院 ? 山西 临汾? 041004) 摘? 要: 应用 Matlab 7. 0中神经网络工具箱建立 BP 神经网络的最优化求解方法, 采用共轭梯度法对网络的权值和阈值 进行优化计算, 实现网络权值和阈值的快速计算, 为分析神经网络的合理结构提供了必要条件。对 BP 神经网络的传统梯度 下降法与共轭梯度算法进行了仿真。这里通过对算法的训练速度, 容错泛化能力等方面加以讨论, 多方面印证共轭梯度算 法的优越性, 仿真结果凸显了训练速度的大幅提高, 尤其对训练后网络受损情况下的泛化

2、能力, 采用线性回归的方法进行了 仿真验证, 同样得到满意结果, 从新的角度支持了共轭梯度 BP 算法。 关键词: BP 神经网络; Matlab; 神经网络工具箱; 共轭梯度 中图分类号: T P183? ? ? ? 文献标识码: A ? ? ? ? ? 文章编号: 1004 -373X(2009) 18 -125 -03 Implement of Conjugate Gradient BP Algorithm in Matlab7. 0 CHEN Zhaoyang, XING Xiaoshuai, LI Yue (Physics and Information Engineering Co

3、llege, 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 networ

4、k weight and threshold value ?s rapid calculation are realized, the essential condition is provided for analysing neural net- work?s reasonable structure. BP neural network ?s tradition gradient descent law and the conjugate gradient algorithm are simu - lated. Through the algorithm training speed,

5、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 injury in situation pan -ability, the linear regression method is used to carry on the s

6、imulation confirmation, satisfaction result is ob - tained, the conjugate gradient BP algorithm is supported from the new angle. Keywords: BP neural network; Matlab; neural network toolbox; conjugate gradient 收稿日期: 2009 -02 -19 基金项目: 山西省青年科技研究基金资助项目( 20031008) 0? 引 ? 言 人工神经网络( ArtificialNeuralNetwor

7、k, ANN) 是 基于模仿生物大脑的结构和功能而构成的一种信息处 理系统。它具有大规模并行数据处理能力, 分布式存储 能力, 自适应学习能力等特性, 已经广泛应用于信息处 理, 模式识别, 智能控制及系统建模等领域。尤其是基 于误差反向传播( Back -Propagation, BP) 算法的多层前 馈网络, 即 BP 网络是目前应用最多的神经网络 1 -3。 近年来为了克服标准 BP 神经网络收敛速度慢, 易陷入 局部最小值, 学习过程会出现震荡等缺点, 出现了一系 列的改进算法 4, 5。应用 Matlab 集成的神经网络工具 箱( NeuraNetworkT oolbox, NNTo

8、ol) 只需掌握网络学 习训练函数就能实现算法的仿真, 其中提供了丰富的网 络学习和训练函数, 而且包括了各种常用的神经网络改 进算法 6, 7。这为神经网络的仿真提供了极大的方便。 节省了程序设计, 调试及网络学习训练所需的时间, 提 高了研究的效率。在此利用简单程序及函数对两种 BP 神经网络算法做了对比讨论。 1? BP 神经网络两种算法 1. 1 ? BP 神经网络的梯度下降法 函数的梯度方向指向该函数增加最快的方向, 因而 函数沿负梯度方向下降得最快, 为此取负梯度方向作为 下降算法的方向。对于给定的目标函数 f ? z , 函数沿 负梯度方向下降的最快, 所以从任意选定的初始点出

9、发, 每次搜索方向沿着目标函数在该点的负梯度方向进 行。 从迭代点 ? z( k) 出发, 沿着负梯度方向 ? s( k) = - ? f ? z (k) 进行一维搜索, 这里 ? f ? z(k) 为点? z( k) 的梯度向量, 得到下一个迭代点 ? z(k + 1) = ? z (k) + ? a( k)? s(k) , ? a( k) 为最优步长, 终止条件为梯度模满足一 定的精度 ? z(k) ? ? , 这就是梯度法。 梯度法的优点 是方法简单, 每迭代一次的工作量小, 所要求的存储量 少, 但是梯度法是以某点的负梯度方向作为搜索方向 的, 因此常不能指向最优点, 为此引入了共轭梯

10、度 125 ?现代电子技术?2009 年第 18 期总第 305 期?计算机应用技术? 法 8-10 。 1. 2? BP 神经网络的共轭梯度法 共轭梯度法是一种改进搜索方向的方法, 它是把前 一点的梯度乘以适当的系数, 加到该点的梯度上, 得到 新的搜索方向。因此, 可以说共轭梯度法是把过去的梯 度和现在某点的梯度信息综合利用, 用它的线性组合来 构造更 好的搜索方向。共轭梯 度算法的 Fletcher - Reeves 算法( Traincgf) 如下: ? z (k + 1) = ? z (k) + ? a(k)? s(k)(1) 式中: 搜索方向? s(k) 是一组共轭向量; ? a(

11、k) 是步长, 且: ? s( k+ 1) = - ? g( k) + ?(k)? s( k) ?(k) = ? g(k + 1) T ? g(k + 1) ? g( k) T ? g(k) 式中: ? g(k) =? f ? z (k) 。 函数 traincgf 的训 练参数 包括: epochs, show, goal, time, min_grad, max _fail, srchFcn, scal_tol, a- l pha, beta, delta, gama, low _ lim, maxstep, minstep, bmax。其中参数 srchFcn 表示线性搜寻函数。 2?

12、应用 Matlab 神经网络工具箱对上述两种 BP 算法 的分析比较 ? ? ( 1) 建立图 1所示形式 1 -35 -1 BP 神经网络逼近函 数: f (x) = sin( 2?x) + cos( 2?x )(2) 在图 1 所示形式的 1 -35 -1 网络中: 输入神经元 1 个, 中 间层 35 个, 输出层1 个; 中间层传递函数为正切 S 形函 数 tansig; 输出层传递函数为线性函数 purelin。 图 1? 神经网络模型 ( 2) 梯度下降算法程序: clear% 清除内存变量和函数 echo on% 显示被执行指令 clc?% 清除指令窗 k= - 1: . 05:

13、 1 ;% 输入数据 l= sin(2* pi* k)+ cos(2* pi* k);% 目标输出数据 net= newff( minmax( k), 35, 1, ?tansig?,?purelin ? ,?traingd?); net= init(net);% 初始化网络权值和阈值 net. trainParam. show= 1000; ?% 设定显示间隔次数 net. trainParam. epochs= 30000;% 设定最大循环次数 net. trainParam. min_grad= 1e- 10; ?% 设定最小梯度 net. trainParam. lr= 0. 05;

14、?% 设定学习速率为 0. 05 net. trainParam. goal= 1e- 5;% 设定目标误差 net, tr= train(net, k, l) ;% 网络训练 程序运行结果如图 2 所示。 图 2? 梯度下降算法程序运行结果 ( 3) 共轭梯度算法程序: clear ?% 清除内存变量和函数 echo on% 显示被执行指令 clc?% 清除指令窗 k= - 1: . 05: 1 ;% 输入数据 l= sin( 2* pi* k)+ cos( 2* pi* k) ;% 目标输出数据 net= newff(minmax(k), 35, 1 , ?tansig?,?purelin

15、 ? ,?traincgf?) ; net= init(net) ;% 初始化网络权值和阈值 net. trainParam. show= 25; ?% 设定显示间隔次数 net. trainParam. epochs= 20000;% 设定最大循环次数 net. trainParam. min_grad= 1e- 10; ?% 设定最小梯度 net. trainParam. goal= 1e- 5;% 设定目标误差 net, tr = train( net, k, l) ;% 网络训练 程序运行结果如图 3 所示。 图 3? 共轭梯度算法程序运行结果 对比图 2 与图 3, 直观显示共轭梯度

16、算法收敛只需 135 步, 而传统梯度下降算法用了14 044 步, 可以看出: 共轭梯度算法比传统梯度下降算法在收敛速度上提高 了两个数量级从而印证了共轭梯度算法的优越性。 3? 网络容错泛化能力的进一步测试 进一步对上述两训练后网络各自相应位置的一个 权值调整 10%, 即对网络进行一定程度的破坏, 再以另 外一组检验数据对进行测试, 检验其泛化能力。其中, 检验数据对由如下语句生成: p= - 1: . 08: 1 ; t= sin(2* pi* p) + cos(2* pi* p) 。 测试函数采用 Matlab 工具箱中 postreg 函数。函 数 postreg 利用了线性回归的

17、方法, 分析了网络输出和 目标输出的关系, 即网络输出变化相对于目标输出变化 的变化率, 从而评估了网络的训练结果。梯度下降算法 126 科学计算与信息处理陈朝阳等: 共轭梯度 BP 算法在 Matlab 7. 0 中的实现 程序和共轭梯度算法程序运行后可以用如下指令: a= sim(net, p); m, b, r = postreg( a, t) 运行结果如图 4 和图 5。 图 4? 运行结果( 一) ? ? 图 5? 运行结果(二) 其返回值 m 和b 分别表示最优回归直线的斜率和 y 轴截距。 当m 等于1, b等于0的时候, 网络输出与目标 输出完全相同, 此时的网络具有最优的性能

18、。 r 表示网 络输出与目标输出的相关系数, 它越接近于 1, 表示网 络输出与目标输出越接近, 网络性能越好。 由图4, 图5看到两种算法的容错泛化能力都很好, 两图中 A 为网络输出T 为目标输出; 两图中 m 值分别 为 0. 988 和 0. 994 都接近 1; b 值分别为 - 0. 026 和 - 0. 023 5都接近 0; 而 r 值分别为 0. 993和 0. 994 都接 近1。既从另一角度印证了 ANN 对自身小的损伤的容 错能力, 更说明了共轭梯度算法在大幅提高训练速度同 时保持了良好的泛化能力。 4? 结 ? 语 从前面的分析结果, 可以看出共轭梯度算法有着梯 度下

19、降法所无法比拟的优点。共轭梯度算法收敛的速 度比梯度下降法快两个数量级, 采用共轭梯度算法同时 保持了良好的泛化能力, 所以对于训练具有大规模权值 的 BP 神经网络是一个非常好的选择。 参? 考? 文? 献 1 周开利, 康耀红. 神经网络模型及其 Matlab 仿真程序设计 M . 北京: 清华大学出版社, 2005. 2 张磊, 胡春, 钱锋. BP 算法局部极小问题改进的研究发展 J. 工业控制计算机, 2004, 17(9) : 33 -34. 3 吕俊, 张兴华. 几种快速 BP 算法的比较研究 J . 现代电子 技术, 2003, 26( 24): 96 -99. 4 Hecht

20、 -NielsenR. T heory of the Back Propagation Neura- l network A. Proc. of IJCNNC. 1989. 5 刘晋刚, 李华玲, 韩燮. BP 神经网络改进算法的应用 J. 华 北工学院学报, 2003, 23( 6) : 449 -451. 6 苏高利, 邓芳萍. 论基于 Matlab 语言的 BP 神经网络的改进 算法J. 科技通报, 2003, 19( 2) : 130 -135. 7 闻新, 周露, 李翔, 等. Matlab 神经网络仿真与应用 M . 北 京: 科学出版社, 2003. 8 王贇松, 许洪国. 快速

21、收敛的 BP 神经网络算法 J. 吉林大 学学报: 工学版, 2003, 33(4): 79 -84. 9 胡金滨, 唐旭清. 人工神经网络的 BP 算法及其应用 J. 信 息技术, 2004(4): 1 -4. 10 王红霞. 神经网络 BP 算法在网络搜索中的应用 J . 微计 算机信息, 2007, 23(15) : 101 -102. 11 罗玉春, 都洪基, 崔芳芳. 基于 Matlab 的 BP 神经网络结构 与函数逼近能力的关系分析 J . 现代电子技术, 2007, 30 ( 24) : 88 -90. 作者简介? 陈朝阳? 1968 年出生, 硕士研究生。主要研究方向为进化算

22、法、 人工神经网络。 行小帅? 1951 年出生, 教授, 硕士生导师。主要研究方向为数据挖掘、 进化算法、 人工神经网络与智能信息处理。 李? 玥? 1983 年出生, 硕士研究生。主要研究方向为进化算法、 人工神经网络。 ? ?( 上接第 124 页) 参? 考? 文? 献 1 李莉, 刘远富, 薛春艳, 等. 基于混沌加密的数字水印新方法 研究 J. 长春理工大学学报: 自然科学版, 2008, 31( 3): 155 -157. 2 徐全生, 李震, 杜旭强. 一种基于混沌序列的图像加密算法 J. 小型微型计算机系统, 2006, 27( 9) : 1 754 -1 756. 3 江景

23、涛, 胡彩旗, 李福荣. 数字图像混沌加密系统性能分析 J. 青岛农业大学学报: 自然科学版, 2007, 24(3): 207 - 210. 4 权安静, 蒋国平, 左涛. 基于 Logistic 映射的分组密码算法研 究及其应用 J. 东南大学学报: 自然科学版, 2004, 34( 9): 11 -14. 5 丘水生, 陈艳峰, 吴敏, 等. 一种新的混沌加密系统方案原理 J. 电路与系统学报, 2006, 11(1) : 98 -103. 6 陈争, 曾以成, 付志坚. 混沌背景中信号参数估计的新方法 J. 物理学报, 2008, 57( 1) : 46 -50. 7 Haykin S

24、, Li X B. Detection of Signals in Chaos J. Proc. IEEE, 1995, 83: 94 -98. 8 李兴华, 高飞. 一种基于网络的语音混沌加密算法 J . 电讯 技术, 2007, 47( 4) : 110 -114. 9 李翠彦, 高飞. 一种基于超混沌 Mackey -Glass 系统的语音加 密算法J. 电讯技术, 2007, 47( 1) : 117 -121. 10 权安静, 蒋国平, 左涛, 等. 基于超混沌序列的分组密码算 法及其应用 J . 南京邮电学院学报, 2005, 25( 4) : 80 -84. 作者简介? 王重英? 女, 1981年出生, 西安人, 助教, 在职硕士研究生。研究方向为计算机软件与理论、 计算应用技术。 127 ?现代电子技术?2009 年第 18 期总第 305 期?计算机应用技术?

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1