张光建

摘要:基于时间序列的神经网络预测,从模型的结构设计、神经元个数、传递函数等方面,研究BP神经网络预测模型的建模。通过对国家统计局的人口数据建立样本,使用MATLAB对预测模型进行仿真实验,结果证明预测模型能够达到预测效果。

关键词: BP神经网络;人口预测;MATLAB;数学建模;神经元;传递函数

中图分类号:TP391 文献标识码:A文章编号:2095-2163(2016)01-

Abstract: Based on the time series of neural network prediction, from the main exploration such as the model of structural design, neuron number, transfer function and so on, the paper presents the research of BP neural network prediction model of the model. After that, the paper proposes the establishment of the sample by the population data of the National Bureau of statistics, and the use of MATLAB for simulation of prediction model. Simulation results show that the prediction model can achieve the prediction effect.

Keywords: BP Neural Network; population prediction; MATLAB; Mathematical modeling; neuron; transfer function

0引言

对于人口总量开展科学预测研究,即可为人口规划与未来政策走向提供全面、客观的实施参考。同时不言而喻的是,预测结果数据对于国民经济发展计划的制定和实现都将具有不可估量的重要意义。时下采用的主要预测方法是:逻辑斯蒂方程法,常微分方程法,动态预测法。这些方法各有其特点及适用范围,但都需要对数据提供一定模型假设支持。

相对于传统的统计预测方法,神经网络模型有着良好的非线性特性,灵活有效的学习方式,以及完全分布式的存储结构。

神经网络中的单个神经元具有自组织复合模式,反映非线性特征,使神经网络能够重建任意的非线连续的函数。通过学习,可以使用网络获得序列的内在规律,从而可以对序列的变化进行预测。使用神经网络可以无需常规建模过程,而且同时又表现出良好的自适应和自学习能力、较强的抗干扰能力。

神经网络应用于预测,大体上可以分为两种方式[ ]:基于回归分析的神经网络预测和基于时间序列的神经网络预测。

神经网络预测模型是建立在如下假设上,即:一次观测中过去值与未来值之间存在联系,找到一个函数,以过去观测值作为输入,未来值作为输出。

2 人口预测模型

2.1 输入输出向量设计

基于时间序列的神经网络预测模型的建立,采用前3年的人口总量数据作为神经网络的输入变量,第4年的人口总量数据作为输出变量。即输入为3个数据,输出为1个数据。函数表达式:

(2)

样本集中使用总量的80%作为训练样本集,而将剩余的20%作为测试样本集,进而根据测试数据与真实数据的一致性比较,验证模型的精确度。

2.2 网络模型

根据BP网络原理开展设计,一般的预测问题都可以通过单个隐含层实现,因为理论上单隐含层可以逼近任何非线性函数。本次研究构建三层BP神经网络:一个输入层,一个隐含层,一个输出层。

确定了网络层数结构后,需要确定每层的神经元个数。输入层与输出层的神经元个数由具体的输入输出决定,由于输入向量有3个元素,输入层神经元设定为3个,输出层神经元相应即定为1个。对于隐含层神经元个数的选择[ ],目前没有统一精准的完善方法,经常使用的是经验公式或者试凑法。本文选用了经验公式法。

根据经验公式,Sqr(3+1)+3=5,综合测试比较后得到,隐层神经元可确定为5个。

传递函数又称为激励函数,是BP网络的重要组成部分。BP网络惯常选用的S型对数或正切数和线性函数作为传递函数。

本次研究的预测神经网络模型设计中,输入层-隐含层传递函数采用sigmoid的对数函数。Logsig 即为S型的对数函数,可将神经元的输入(范围为整个实数集)映射到(0,1)中,而是可微,因此非常适合于利用BP算法的神经网络。

隐含层到输出层传递函数采用线性函数。purelin为线性传递函数,文献[ ]已然证明一个线性传递函数在预测模型中更适合输出层传递函数。

3 仿真实验

3.1采集样本

根据国家统计局的数据,我国1994-2013年人口数据如表 1所示。

4结束语

根据人口总量的非线性特征,提出基于BP网络非线性的神经网络预测方法,并以人口总量作为预测模型,使用MATLAB仿真模拟已有人口状况况,对人口总量的预测获得了较为满意的结果。由于人口总量会受到人口政策、经济发展及各种因素的客观、综合影响,为了达到最佳宏观预测,在后续研究中则需要将更多的因素加入到预测模型中,如人口出生率、老年率、死亡率等。

bp神经网络人口预测 C语言,BP神经网络人口预测模型研究与仿真相关推荐

  1. 神经网络可以用来预测吗,如何用神经网络做预测

    如何利用训练好的神经网络进行预测 谷歌人工智能写作项目:神经网络伪原创 如何人工神经网络来预测下一个数值 newff函数建立BP神经网络,历史数据作为样本,例如前n个数据作为输入,输入节点为n写作猫. ...

  2. python bp神经网络进行预测_python实现BP神经网络回归预测模型

    神经网络模型一般用来做分类,回归预测模型不常见,本文基于一个用来分类的BP神经网络,对它进行修改,实现了一个回归模型,用来做室内定位.模型主要变化是去掉了第三层的非线性转换,或者说把非线性激活函数Si ...

  3. BP神经网络需要训练的参数,bp神经网络训练时间

    bp神经网络如何用于预测 谷歌人工智能写作项目:神经网络伪原创 BP神经网络完成预测 5 好文案. 下面是几个仿真实验,用了不同的训练函数:1.创建BP网络的学习函数,训练函数和性能函数都采用defa ...

  4. 【水质预测】基于matlab模糊神经网络水质预测【含Matlab源码 1923期】

    一.模糊神经网络水质预测简介 1 模糊神经网络 从整体结构框架上看, 两个输入一个输出, 它像一个神经网络;从功能上讲, 是一个模糊系统.模糊神经网络结构如图1所示, 此网络结构共分为5个层次, 它是 ...

  5. bp神经网络预测模型python,r语言bp神经网络预测

    如何建立bp神经网络预测 模型 . 建立BP神经网络预测模型,可按下列步骤进行:1.提供原始数据2.训练数据预测数据提取及归一化3.BP网络训练4.BP网络预测5.结果分析现用一个实际的例子,来预测2 ...

  6. 神经网络人口预测matlab,BP神经网络预测(人口)程序(matlab)

    自己测试人口预测的matlab实现: x=[54167 55196 56300 57482 58796 60266 61465 62828 64653 65994 67207 66207 65859 ...

  7. BP神经网络人口预测程序(matlab实现)

    自己测试人口预测的matlab实现: x=[54167     55196     56300     57482     58796     60266     61465     62828   ...

  8. BP神经网络人口预测程序(matlab实现)(转)

    己测试人口预测的matlab实现: x=[54167     55196     56300     57482     58796     60266     61465     62828     ...

  9. bp神经网络数据预测实例,bp神经网络实例分析

    BP人工神经网络方法 (一)方法原理人工神经网络是由大量的类似人脑神经元的简单处理单元广泛地相互连接而成的复杂的网络系统.理论和实践表明,在信息处理方面,神经网络方法比传统模式识别方法更具有优势. 人 ...

  10. 机器学习应用篇(八)——基于BP神经网络的预测

    机器学习应用篇(八)--基于BP神经网络的预测 文章目录 机器学习应用篇(八)--基于BP神经网络的预测 一.Introduction 1 BP神经网络的优点 2 BP神经网络的缺点 二.实现过程 1 ...

最新文章

  1. 实现一个网易云音乐的 BottomSheetDialog
  2. Linux平台Java调用so库-JNI使用例子
  3. #16192董哥授课的CCNP交换部分总结(一)
  4. mysql索引4种结构_mysql索引:四种类型,两种方法
  5. 学习笔记(01):英特尔® OpenVINO™工具套件初级课程-如何加速视频处理进程?
  6. AngularJS 无限滚动加载数据控件 ngInfiniteScroll
  7. html 登陆sql server,jsp实现注册与登录页面+sqlsever2008
  8. 基于STM32-HAL库的直流电机控制
  9. lesson6 复数及复指数
  10. Java中父类强制转换为子类的可能
  11. Tomcat和eclipse的整合
  12. serialize和unserialize函数
  13. [常用]MySQL管理工具和应用程序
  14. 微型计算机控制第三版,清华大学出版社-图书详情-《微型计算机控制技术(第3版)》...
  15. mvn assembly:single打包报错:Error reading assemblies: No assembly descriptors found.
  16. 使用HttpClient登录知乎获取返回页面信息
  17. 成功安装fbprophet(没有坑也没有眼泪,世上最详细步骤)
  18. 网易云音乐评论墙php源码,网易云音乐热评墙那些令人感慨的句子,哪一句打动了你?...
  19. Pycharm2018破解版破解教程 Pycharm2018安装激活永久破解详细教程
  20. 原 Java课前总结与课后习题原 Java课前总结与课后习题

热门文章

  1. 堆积如山的Java面试简历,如何脱颖而出?写简历前你先要做这些
  2. php gmssl,centos7 php7 gmssl编译安装
  3. plsqldev连oracle,plsqldev怎么联接oracle客户端
  4. 【电子技术实验】NE555中文数据手册
  5. 深信服 云桌面 linux,深信服桌面云-深信服桌面云下载 v3.0官方版--pc6下载站
  6. Chrome谷歌浏览器离线安装包下载
  7. Java中快速生成UUID
  8. nginx工作原理与配置
  9. MAC地址厂商信息查询
  10. 解决Excel 闪退问题(如果你最近装了visio的话点进来)