基于BP神经网络的函数逼近及MATLAB仿真
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
[ 参考文献]
[ 1]闻新. MATLAB 神经网络仿真与应用[M] . 北京: 科学出版 2003. 社, [ 2] 刘会灯. MATLAB 编程基础与典型应用[M]. 北京: 人民邮 2008. 电出版社, [ 3] M] . 北京: 高等教育出版社, 1999. 萧树铁. 数学实验[ [ 4] 巨军让, 卓戎. BP 神经网络在 MATLAB 上的方便实现[J]. 1999 ( 02 ) . 新疆石油学院学报, [ 5] . 湘南学院学报, 2010 石云. BP 神经网络的 Matlab 实现[J] ( 05 ) .
2012 年第 10 期 第 28 卷 ( 总 286 期)
吉林省教育学院学报 JOURNAL OF EDUCATIONAL INSTITUTE OF JILIN PROVINCE
No. 10 , 2012 Vol. 28 Total No. 286
基于 BP 神经网络的函数逼近及 MATLAB 仿真
钱贺斌
( 四川师范大学 成都学院, 四川 成都 611745 )
摘要: 简要介绍了 BP 神经网络的基本 原 理, 用实例 说 明 了 它 在 非 线 性 函 数 逼 近方 面 的 运 用, 并 用 MATLAB 软件 进 行 了 仿真。 关键词: BP 神经网络; 函数逼近; MATLAB; 仿真 中图分类号: TP183 文献标识码: A 文章编号: 1671 —1580 ( 2012 ) 10 —0149 —02
图 1 - 1 BP 网络结构 BP 算法包含信号的正向传播与误差的反向传 播两个过程, 数据由输入层节点经隐层传到输出层 若输出结果与目标输出的误差超过预定范围 , 节点, 则进入误差的反向传播阶段, 误差由输出层节点经 隐层传到输入层节点, 此误差信号作为各层权值调 整的依据。网络的训练过程无非就是这两个过程循
人工神经网络是基于人脑结构与功能而建立起 来的一种简化模型, 它是对人脑的抽象、 简化与模 广泛 拟。BP 网络是目前发展最为成熟的神经网络 , 应用于函数逼近、 模式识别、 数据压缩等领域。 BP 网络基本原理 一、 BP 网络结构由输入层、 隐层和输出层三部分组 成。其中输入层节点的个数由所研究问题的结果影 输出层节点个数由所输出结 响因子的数目来决定, 果的维数来确定, 隐层节点的个数并没有一个固定 , 的方法来确定 多用试凑法来解决, 从中选择一个误 差最小的。因为单隐层即只含一个隐层的 BP 网络 就可解决所有的非线性问题, 所以 BP 网络多以图 1 - 1 所示的三层网络结构出现。
图 2 - 1 显示 BP 网络经 4 次权值迭代后达到了预先 设置的训练目标, 这是因为默认训练函数为 trainlm ( ) 的 BP 网络收敛速度快, 精确度高。由图 2 - 2 , 训 练前仿真曲线与原曲线误差很大, 训练后的仿真曲 线与原函数曲线几近重合, 逼近效果非常好。 三、 小结 本文通过 MATLAB 仿真任取的非线性函数说 明 BP 网络在函数逼近方面有着良好的使用效果, 这都归结于其强大的非线性映射能力 。
图 2 - 1 网络训练过程图
原曲线与训练前后曲线对比
Function Approximation Based on BP Neural Network and MATLAB Simulation
QIAN Hebin
( Sichuan Normal University Chengdu College, Chengdu,Sichuan, 611745 )
收稿日期: 2012 —06 —15 作者简介: 钱贺斌( 1984 —) , 男, 山东人, 四川师范大学成都学院, 硕士。研究方向: 应用数学。
149
线及黑色十字表示 xlabel( 'x') ; ylabel( 'y') ; % 图像横轴表示 x 的取 值, 纵轴表示 y 的取值 legend( '原 曲 线 ', '训 练 前 ', '训 练 后 ') ; % 曲 线 标记 grid on; % 在图中加网格线
环往复, 训练过程就是权值调整的过程, 直到达到预 先设置的最大训练次数或精度要求, 训练过程才会 终止。 二、 函数逼近及 MATLAB 实现 用输入向量和对应的输出向量训练一个网络来 逼近一个函数即为基于神经网络的函数逼近 。为了 说明 BP 网络在函数逼近方面的良好效果, 现任取 以下非线性函数来进行 MATLAB 仿真。 y = e -1. 9( 0. 5 +x) sin( 10 x) - 0. 5 x 0. 5 MATLAB 程序主要代码: x = - 0. 5 : 0. 01 : 0. 5 ; % 函数自变量取值范围 y = exp( - 1. 9* ( 0. 5 + x ) ) . * sin ( 10* x ) ; % 相应函数值 net = newff( minmax( x) , [ 15 , 1] , { 'tansig', 'purelin'} ) ; % 创建 BP 网络 y1 = sim( net, x) ; % 训练前网络的仿真结果 net. trainParam. epochs = 10000 ; % 设置网络最 大训练次数 net. trainParam. goal = 0. 0001 ; % 设置网络误差 精度 net = train( net, x, y) ; % 训练网络 y2 = sim( net, x) ; % 训练后网络的仿真结果 figure; % 绘图 plot( x, y, 'yo', x, y1 , 'b - ', x, y2 , 'k + ') ; % 原曲 线、 训练前及训练后曲线分别用黄色小圆圈 、 蓝色实
Leabharlann Baidu
Abstract : This paper introduces the basic principles of the BP neural network,illustrates its use in the nonlinear function approximation with an example and simulation using MATLAB software. Key words: BP neural network; function approximation; MATLAB; simulation
[ 1]闻新. MATLAB 神经网络仿真与应用[M] . 北京: 科学出版 2003. 社, [ 2] 刘会灯. MATLAB 编程基础与典型应用[M]. 北京: 人民邮 2008. 电出版社, [ 3] M] . 北京: 高等教育出版社, 1999. 萧树铁. 数学实验[ [ 4] 巨军让, 卓戎. BP 神经网络在 MATLAB 上的方便实现[J]. 1999 ( 02 ) . 新疆石油学院学报, [ 5] . 湘南学院学报, 2010 石云. BP 神经网络的 Matlab 实现[J] ( 05 ) .
2012 年第 10 期 第 28 卷 ( 总 286 期)
吉林省教育学院学报 JOURNAL OF EDUCATIONAL INSTITUTE OF JILIN PROVINCE
No. 10 , 2012 Vol. 28 Total No. 286
基于 BP 神经网络的函数逼近及 MATLAB 仿真
钱贺斌
( 四川师范大学 成都学院, 四川 成都 611745 )
摘要: 简要介绍了 BP 神经网络的基本 原 理, 用实例 说 明 了 它 在 非 线 性 函 数 逼 近方 面 的 运 用, 并 用 MATLAB 软件 进 行 了 仿真。 关键词: BP 神经网络; 函数逼近; MATLAB; 仿真 中图分类号: TP183 文献标识码: A 文章编号: 1671 —1580 ( 2012 ) 10 —0149 —02
图 1 - 1 BP 网络结构 BP 算法包含信号的正向传播与误差的反向传 播两个过程, 数据由输入层节点经隐层传到输出层 若输出结果与目标输出的误差超过预定范围 , 节点, 则进入误差的反向传播阶段, 误差由输出层节点经 隐层传到输入层节点, 此误差信号作为各层权值调 整的依据。网络的训练过程无非就是这两个过程循
人工神经网络是基于人脑结构与功能而建立起 来的一种简化模型, 它是对人脑的抽象、 简化与模 广泛 拟。BP 网络是目前发展最为成熟的神经网络 , 应用于函数逼近、 模式识别、 数据压缩等领域。 BP 网络基本原理 一、 BP 网络结构由输入层、 隐层和输出层三部分组 成。其中输入层节点的个数由所研究问题的结果影 输出层节点个数由所输出结 响因子的数目来决定, 果的维数来确定, 隐层节点的个数并没有一个固定 , 的方法来确定 多用试凑法来解决, 从中选择一个误 差最小的。因为单隐层即只含一个隐层的 BP 网络 就可解决所有的非线性问题, 所以 BP 网络多以图 1 - 1 所示的三层网络结构出现。
图 2 - 1 显示 BP 网络经 4 次权值迭代后达到了预先 设置的训练目标, 这是因为默认训练函数为 trainlm ( ) 的 BP 网络收敛速度快, 精确度高。由图 2 - 2 , 训 练前仿真曲线与原曲线误差很大, 训练后的仿真曲 线与原函数曲线几近重合, 逼近效果非常好。 三、 小结 本文通过 MATLAB 仿真任取的非线性函数说 明 BP 网络在函数逼近方面有着良好的使用效果, 这都归结于其强大的非线性映射能力 。
图 2 - 1 网络训练过程图
原曲线与训练前后曲线对比
Function Approximation Based on BP Neural Network and MATLAB Simulation
QIAN Hebin
( Sichuan Normal University Chengdu College, Chengdu,Sichuan, 611745 )
收稿日期: 2012 —06 —15 作者简介: 钱贺斌( 1984 —) , 男, 山东人, 四川师范大学成都学院, 硕士。研究方向: 应用数学。
149
线及黑色十字表示 xlabel( 'x') ; ylabel( 'y') ; % 图像横轴表示 x 的取 值, 纵轴表示 y 的取值 legend( '原 曲 线 ', '训 练 前 ', '训 练 后 ') ; % 曲 线 标记 grid on; % 在图中加网格线
环往复, 训练过程就是权值调整的过程, 直到达到预 先设置的最大训练次数或精度要求, 训练过程才会 终止。 二、 函数逼近及 MATLAB 实现 用输入向量和对应的输出向量训练一个网络来 逼近一个函数即为基于神经网络的函数逼近 。为了 说明 BP 网络在函数逼近方面的良好效果, 现任取 以下非线性函数来进行 MATLAB 仿真。 y = e -1. 9( 0. 5 +x) sin( 10 x) - 0. 5 x 0. 5 MATLAB 程序主要代码: x = - 0. 5 : 0. 01 : 0. 5 ; % 函数自变量取值范围 y = exp( - 1. 9* ( 0. 5 + x ) ) . * sin ( 10* x ) ; % 相应函数值 net = newff( minmax( x) , [ 15 , 1] , { 'tansig', 'purelin'} ) ; % 创建 BP 网络 y1 = sim( net, x) ; % 训练前网络的仿真结果 net. trainParam. epochs = 10000 ; % 设置网络最 大训练次数 net. trainParam. goal = 0. 0001 ; % 设置网络误差 精度 net = train( net, x, y) ; % 训练网络 y2 = sim( net, x) ; % 训练后网络的仿真结果 figure; % 绘图 plot( x, y, 'yo', x, y1 , 'b - ', x, y2 , 'k + ') ; % 原曲 线、 训练前及训练后曲线分别用黄色小圆圈 、 蓝色实
Leabharlann Baidu
Abstract : This paper introduces the basic principles of the BP neural network,illustrates its use in the nonlinear function approximation with an example and simulation using MATLAB software. Key words: BP neural network; function approximation; MATLAB; simulation