基于BP神经网络的非线性函数拟合——技术报告
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4
训练目标 lacept=0.80 即当一次迭代训练中所有训练数据拟合 成功率达到 80%以上时停止学习,认为 BP 网络已达到训练 目标。
2.3.4 基于梯度下降算法的 BP 神经网络预测
BP 网络的学习过程需要正向传播和反向传播,但是网络经训练 以后用于实际计算时,则只需正向传播,不需要再进行反向传播。 依次读取测试数据文件 OExaming.txt 中每组数据, 输入训练好的 BP 神经网络预测非线性函数输出,并生成相应的测试报告文件
基于 BP 神经网络的非线性函数拟合
技术报告文档
学院:计算机学院 专业:计算机科学与技术专业 姓名:张王成 学号:2120111220 邮箱:zhangwagncheng0816@163.com 日期:2011 年 12 月 31 日
目录
1. 问题定义 ....................................................................................... 1 2. 基于梯度下降算法的 BP 神经网络 ............................................... 1 2.1 技术现状 ........................................................................................ 1 2.2 模型建立 ........................................................................................ 2 2.3MFC 编程实现 ................................................................................. 3 2.3.1BP 神经网络各项函数选择 ....................................................... 3 2.3.2 数据选择和归一化 ................................................................... 3 2.3.3 基于梯度下降算法的 BP 神经网络训练 ................................. 4 2.3.4 基于梯度下降算法的 BP 神经网络预测 ................................. 5 2.4 实验结果 ........................................................................................ 5 3. 基于遗传优化算法的 BP 神经网络 ............................................... 5 3.1 技术现状 ........................................................................................ 6 3.1.1 遗传算法原理 .......................................................................... 6 3.1.2 遗传算法的基本要素 ............................................................... 7 3.2 模型建立 ........................................................................................ 7 3.3 遗传优化算法编程实现 ................................................................. 9 3.3.1 遗传算法原理具体实现 ........................................................... 9 3.3.2 遗传算法编程实现 ................................................................. 11 3.4 实验结果 ...................................................................................... 12 4. 基于粒子群优化算法的 BP 神经网络 .......................................... 12 4.1 技术现状 ...................................................................................... 13 4.2 模型建立 ...................................................................................... 14 4.3PSO 算法编程实现 ........................................................................ 16 4.4 实验结果 ...................................................................................... 17 5. 结论 ............................................................................................. 18 6. 参考文献 ..................................................................................... 18
2 本报告拟合的非线性函数为 y x12 x2
2. 基于梯度下降算法的 BP 神经网络
2.1 技术现状
BP 神经网络即采用误差反向传播算法的网络,是一种至今仍然 最为流行的前馈型神经网络模型。BP 神经网络有很强的非线性映射 能力,它能学习和存贮大量输入-输出模式映射关系,而无需事先了 解描述这种映射关系的数学方程。 只要能提供足够多的样本模式对供 给网络进行学习训练,它便能完成由 n 维输入空间到 m 维输出空间 的非线性映射。 BP 学习算法属于误差修正型学习,其关键在于根据误差修正输 出层和隐含层的连接权值。 其学习的基本实现方法是基于最小平方误 差准则和梯度下降优化方法来确定权值调整法则。
2
2.3MFC 编程实现
根据 BP 神经网络理论,在 Visual Studio 2008 开发软件中利用 C++编程语言实现基于 BP 神经网络的非线性拟合算法。
2.3.1BP 神经网络各项函数选择
隐含层和输出层函数的选择对 BP 神经网络预测精度有较大的影 响。在本报告所实现的 BP 网络中,除输入层神经元以外,其他层神 经元的整合函数均采用加权求和函数, 激活函数均为非线性可微函数 Logistic—S 型函数。 加和求和函数: g ( X ) wi xi
I
1. 问题定义
在工程应用中经常会遇到一些复杂的非线性系统, 这些系统状态 方程复杂,难以用数学方法准确建模。在这种情况下,可以建立 BP (Back-Propagation)神经网络表达这些非线性系统。应用 BP 神经网 络解决非线性映射问题,把未知系统看成是一个黑箱,首先用系统输 入输出数据训练 BP 神经网络,使网络能够表达未知函数,然后就可 以用训练好的 BP 神经网络预测系统输出。
1
2.2 模型建立
基于梯度下降算法的 BP 神经网络的非线性函数拟合实现流程可 以分为 BP 神经网络构建、 BP 神经网络训练和 BP 神经网络预测三步, 如图 2-1 所示。
BP神经网络构建 系统建模 构建合适的 BP神经网络 BP神经网络训练 系统建模 构建合适的 BP神经网络 N
训练结束
BP神经网络预测 Y 测试数据 BP神经网络 预测
图 2-1 基于梯度下降算法的 BP 网络实现流程
BP 神经网络构建根据拟合非线性函数特点确定 BP 神经网络结 构。隐含层节点数的选择是关键,如果隐含层节点数太少,BP 神经 网络不能建立复杂的映射关系,网络预测误差较大。但是如果节点数 过多,网络学习时间增加,并且可能出现“过拟合”现象。可以根据 经验公式 C2 C1 C3 a (a 为 1~10 的常数)确定。 由于该非线性函数 有两个输入参数,一个输出参数,所以 BP 神经网络结构为 2—5—1, 即输入层有 2 个节点,隐含层有 5 个节点,输出层有 1 个节点。 BP 神经网络训练用非线性函数输入输出数据训练神经网络,使 训练后的网络能够预测非线性函数输出。本报告采集了 2000 组输入 输出数据,其中 1900 组作为训练数据,用于网络训练,100 组作为 测试数据,用于测试网络的拟合性能。 神经网络预测用训练好的网络预测函数输出, 并对预测结果进行 分析。
i 1 n
Logistic—S 型函数: f ( )
1 1 e
输出误差度量为平方误差,输出误差被认为是 w 以为自变量的函 数,单个输入数据对应的误差表示为 e( w)
1 n (di yi ) 2 2 i 1
根据梯度下降法确定的权值调整法则如下: 输出层的权值调整法则: wji wji x ji yi (1 yi )( yi di ) 隐含层的权值调整法则:wk j wk j xk j y 'j (1 y 'j ) w ji yi (1 yi )( yi di )
BPExamingResult.txt。
i 1Biblioteka Baidun
2.3.2 数据选择和归一化
根据非线性函数方程随机得到该函数 2000 组输入输出数据,将 其中 1900 组存储在 data\OLearning.txt 文件中作为网络训练数据, 100
3
组存储在 data\OExaming.txt 文件中作为网络测试数据。 由于 Logistic-S 型激活函数的输出为[0,1],所以需要对数据进行 归一化处理。 本报告中数据的归一化和反归一化采用最简单的线性函 数转换,表达式形式为 y=(x-MinValue)/(MaxValue-MinValue)。x、y 分别为转换前、后的值,MaxValue、MinValue 分别为样本的最大值 和最小值。
2.3.3 基于梯度下降算法的 BP 神经网络训练
在 BP 神经网络开始学习前首先随机初始化网络所需权值和阈 值。然后用训练数据文件 OLearning.txt 中的数据训练 BP 神经网络。 对每一组训练数据,BP 网络一次按如下方式进行处理:把输入 数据从输入层传到隐含层,再传到输出层,产生一个输出结果,这一 过程称为正向传播; 如果经正向传播在输出层没有得到所期望的输出 结果, 则转为误差反向传播过程, 即把误差信号沿着原连接路径返回, 在返回过程中根据误差信号修改各层神经元的连接权值, 使输出误差 减小;重复信息正向传播和误差反向传播过程,直至得到所期望的训 练目标或者达到最大迭代次数。 基于梯度下降算法的 BP 神经网络学习参数配置: 迭代次数 lloop=10 即所有训练数据循环的次数 学习率 lratio=0.1 学习目标 lobject=0.01 即相对绝对值误差小于 0.01%,则认为 该组输入、输出数据拟合成功,不用进行误差修正