基于Matlab平台的BP神经网络进行数据拟合

上次讨论了基于Hopfield神经网络的数字识别,BP(Back Propagation)神经网络也可以进行相关的数字识别如手写数字识别等,由于BP神经网络的特性,该网络需要一定的样本进行对网络进行训练、测试以及校验。本次不再赘述数字识别,而是将目光集中于基于BP神经网络的数据拟合。

本次所采用的神经网络为BP神经网络,是一个误差反向传播训练(Error Back Propagation Training)的多层前馈网络,主要包含输入层、隐含层和输出层。数据由输入层输入,经过标准化处理后,传到第二层即隐含层,隐含层进行输入数据的权值计算、转换,然后传输到输出层,输出层将给出神经网络的预测值。 由于人工神经网络不需要事先给定输入量与输出量之间的映射关系,BP网络需要通过范例进行学习。因此,给定一个包含了输入量样本以及已知的正确输出量样本是必须的。利用给定的示例,BP神经网络可以得知什么是所期望达到的行为并且BP算法也能支持网络进行调整来达到预期。

BP网络包含正向计算和反向计算两个过程,其学习过程是通过循环步骤来实现的。当接收到范例时,该网络会先进行正向计算过程,随机输出一些数据。这个输出的结果将会与已知的正确样本进行比较,然后一个含有其均方误差的信号将会通过建立的神经网络进行反向传递。隐含层接收到信号后,会“分摊”给各个神经单元,每个单元的权值因此将根据接收到的误差进行相应的调整。这个过程将会不断循环,直到误差达到规定的阈值或完成了规定的学习次数而停止。此时该神经网络被认为已经学习成功,完成了训练过程。BP神经网络仿真虽然无法达到最理想的功能,但是其结果已经接近了完美。

在BP算法中采用的激活函数是S型(Sigmoid)函数,该函数应用于隐含层的输出中。S函数有效地将非线性变化引入到了神经网络中,使得每一层权值得变化呈现非线性趋势而不是直接承接上一层的线性变化输出结果。此外,S型函数具有将小信号放大、大信号缩小的特征,可以保证输出结果在(0,1)之间,如下图所示。然而在输出层中,需要直接保障输出端能接收到输出层输出的任何值,故采用线性函数。该特征也将在MATLAB生成网络结构视图中体现。

图1. Sigmoid函数曲线示意图

现在开始使用MATLAB中的函数feedforwardnet创建BP神经网络结构。如图2所示,绿色图标代表的输入端(Input)和输出端(Output)各为1个,蓝色图标代表着隐含层和输出层。其中20代表着隐含层神经元数为20,1指代输出层只有一个神经元。代表隐含层的方框中其中一个含有S曲线的图标指激活函数为S函数,输出层中的直线代表着输出层使用的线性函数。此外,w指权值(weight,b为偏置(bias)。

图2. 创建BP网络视图

本次神经网络的训练方法采用默认的Levenberg-Marquardt方法,误差指标为均方差(MSE),设置的训练次数为1000次,期望达到的误差目标为10-10。训练结果完成的示意图如图3所示。在进展(Progress)项中,Epoch为训练次数,绿色指标显示1000 iterations意为已经完成了设置的1000次循环。性能指(Performance)为均方差中的最大值,蓝色精度条显示地为当前均方差,当该值小于设定的指标时,则停止训练。和性能指一样,当梯度值(Gradient)小于目标值时,也会停止训练。泛化能力检查(Validation Checks)在训练中始终为0,这个是指在训练过程中没有出现过误差不降反升的情况,如果超过6次误差不降反升,为防止出现过度拟合的情况,训练将会强行停止。

训练过程中生成的训练结果可以绘出如回归线图、性能指图等来体现该次训练的特征,以及为输出的拟合结果提供判断可靠性的有力佐证。当回归率R越接近于1时,则证明数据拟合效果越好。

图3. 训练结果信息图

本次数据拟合的结果如图4所示,采用的样本数据为MATLAB自带的数据库(simplefit_dataset),可以看出拟合曲线与样本值的趋势完美重合。不同于Hopfield神经网络输出结果的不稳定性,BP神经网络每次训练的迭代过程中产生的误差以及权值等会变化但是输出结果总是可靠的。除了使用MATLAB自带的数据库进行数据拟合测试外,也可以自己创建样本矢量,进行对多项式、正余弦函数以及其他函数映射等的数据拟合分析。

图4. 数据拟合结果

最后,有机器学习相关需求,欢迎通过微信公众号联系我们。

微信公众号:320科技工作室。

基于Matlab平台的BP神经网络进行数据拟合相关推荐

  1. matlab流量预测模型,基于MATLAB工具箱的BP神经网络年径流量预测模型研究——以塔城地区乌拉斯台河为例...

    水 文 JOURNAL OF CHINA HYDROLOGY 第28卷第1期 2008年2月 Vol.28 No.1 Feb., 2008 塔城地区位于新疆维吾尔自治区西北边陲, 地处中纬, 虽属内陆 ...

  2. 【回归预测-BP预测】基于灰狼算法优化BP神经网络实现数据回归预测附matlab代码

    1 内容介绍 Mirjalili 等在 2014 年 提 出 了 灰 狼 优 化 ( Grey Wolf Optimizer,GWO) 算法,是一种新型群智能优化算法,通过模拟自然界中灰狼寻找.包围和 ...

  3. 【BP回归预测】基于matlab文化算法优化BP神经网络数据回归预测【含Matlab源码 2124期】

    一.文化算法及BP神经网络简介 1 文化粒子群算法原理 本文提出的文化粒子群算法采用文化算法的双层演化结构.[4]算法包含两个进化空间, 一个是由具体个体组成的群体空间;另一个是由在进化过程中获取的经 ...

  4. 基于帝企鹅算法优化BP神经网络实现数据预测matlab代码

    1 算法介绍 1.1 BP神经网络 1. 反向传播算法应用领域 反向传播算法应用较为广泛,从字面意思理解,与前向传播相互对应.在简单的神经网络中,反向传播算法,可以理解为最优化损失函数过程,求解每个参 ...

  5. 【BP预测】基于鸟群算法优化BP神经网络实现数据预测附Matlab代码

    1 简介 热舒适度是室内环境舒适性的评价指标,由于热舒适度的计算是一个复杂的非线性迭代过程,不便应用于空调实时控制系统中,为解决这一问题,可利用BP神经网络算法对热舒适度进行预测.但为了改善传统BP神 ...

  6. 【预测模型】基于布谷鸟算法改进BP神经网络实现数据预测附matlab代码

    一. BP神经网络预测算法简介 BP网络(Back-ProPagation Network)又称反向传播神经网络, 通过样本数据的训练,不断修正网络权值和阈值使误差函数沿负梯度方向下降,逼近期望输出. ...

  7. 【预测模型】基于灰狼算法优化BP神经网络实现数据预测matlab代码

    1 简介 信息化时代的快速发展,给人们的生活带来了很大的便捷.越来越多的人习惯在网上办事.网络购物.在线支付,俨然成为了一种常态.通过网络来获取各类信息也更加方便,这就给网络钓鱼带来了肥沃的生存土壤. ...

  8. 基于Matlab的多层BP神经网络在非线性函数拟合中的应用

    本图文详细介绍了如何利用Matlab神经网络工具箱实现多层BP神经网络对非线性函数的拟合.

  9. 【预测模型】基于布谷鸟算法优化BP神经网络实现数据预测matlab代码

    1 简介 针对当前智能算法对股票市场预测精度不高的问题,提出使用布谷鸟算法优化神经网络(CS-BP)的方法,对股票市场进行预测.并与粒子群算法优化神经网络模型(PSO-BP)和遗传算法优化神经网络模型 ...

最新文章

  1. 深度学习两大基础Tricks:Dropout和BN详解
  2. Android开发——回调(Callback)
  3. java解析xml 忽略dtd_使用dom4j解析XML时候忽略DTD文件
  4. ES6学习笔记--let和const
  5. V神又在操心区块链技术落地,以太坊大涨!
  6. Redis3.2.5部署(单节点)
  7. ios7自定义返回按钮后,右滑返回功能失效解决方法
  8. 极简代码(八)—— binary activation function
  9. mac上iphone4刷机与越狱(一)
  10. 微信小程序 禁止弹框下面的内容滑动
  11. MathCAD14破解版
  12. apple watch 微信连接不上手机
  13. Unity Graph View打造图形化对话编辑系统(三)
  14. client-go的使用及源码分析
  15. 人工解决问题和用计算机解决问题的相同点,第2学时:计算机解决问题的过程_20120207110033703.doc...
  16. 汽车4G车载TBOX智能信息终端
  17. 作用域链与原型链的区别
  18. Android编译中m、mm、mmm的区别
  19. 以人工智能或无人化、自动化技术影响世界
  20. Cadence Allegro 17.4学习记录开始06-PCB Editor 17.4快捷键的说明和中英文的切换和操作界面放大缩小设置

热门文章

  1. 演讲比赛流程管理系统
  2. WIN7连接错误及处理方法
  3. 【每日一题】相等的有理数
  4. 【UE4 第一人称射击游戏】41-让“M4A1”拥有独立的弹药系统
  5. 如何批量下载腾讯视频 annie
  6. 36家主要上市银行绿色信贷余额、绿色信贷占比、资产收益率、不良贷款率等数据 (2007-2019年)
  7. sql server 数据库mdf与ldf文件的导入两种方法
  8. CTFshow—爆破、命令执行
  9. 单目标追踪——【Transformer】Transformer Meets Tracker:Exploiting Temporal Context for Robust Visual Tracking
  10. 聊聊我的试用期总结(不知名公司算法工程师