基于神经网络预测方法的W eb App研究与实现
2015-09-11杨云磊姚青华
杨云磊,姚青华
(郑州科技学院基础部,河南郑州 450064)
基于神经网络预测方法的W eb App研究与实现
杨云磊,姚青华
(郑州科技学院基础部,河南郑州 450064)
把神经网络预测模型应用到数字化工程监测安全预警服务平台的开发中,实现在Web程序中增加数值计算的功能,利用BP神经网络模型,采用Web App方式实现对基坑的动态监测预警.
神经网络;混合编程;数据预测;MATLAB
0 引言
神经网络方法[1]是目前比较热门的数学方法,不仅可以用于函数的拟合逼近,在模式识别等方面被广泛应用,对于时间序列的预测也是其最重要的应用之一.神经网络方法采用的数学模型是从人类神经网络的结构上模拟产生的,具有一定的学习能力和对误差的修改能力.基于误差反向传播的BP(back propagation)神经网络是使用最广泛的神经网络.
在建筑施工中,开挖一定深度的基坑是基本步骤,也是最初始的步骤.随着城市建设的发展,地下室的建设越来越多,随之而来的基坑工程施工也越来越多,其开挖深度也越来越大.目前的基坑深度大多超过了4 m.基坑开挖点的地质情况千差万别,随时都有不可预知的事情发生,要避免事故发生,不仅依靠地质考察,在施工过程中,对于检测项目的监测预测也是必不可少的.
本文主要利用BP神经网络模型,采用Web App方式实现基坑动态监测预警指标.Web App的实现分两步,第一步使用MATLAB神经网络工具箱对基坑的沉降值[2]进行预测,第二步通过混合编程方法[3],在ASP.net中调用第一步实现的函数.
1 M ATLAB遗传工具箱
前馈神经网络有很多种,最常用的是多层感知器神经网络和径向基函数神经网络.
多层感知器神经网络是最基本的前馈神经网络,通常为3层结构.包含单隐含层的网络方程可以表示为
其中X=[x1,x2,…,xm]T为网络的输入向量,y为网络输出量;w0、w1,b0、b1分别为输出、输入连接权值,输出、输入偏值;sigm(·)是sigmoid函数.
在MATLAB命令窗口输入“fplot(′1/(1+exp(-x))′,[-7,7])”,绘制出sigmoid函数图像(图1).
训练的误差可以用函数
使用人工神经网络对函数进行拟合逼近的一般步骤为:
1)准备数据.对神经网络用于函数拟合的问题,一般将数据组织成两个矩阵,输入矩阵X和目标矩阵T.基坑沉降数据实际上是基坑沉降值随时间变化得到的一维向量,因此待解决的问题就是简单的一元回归问题.第一步使用MATLAB读取EXCEL中的基坑沉降值.
图1 Sigm oid函数图像Fig.1 Im age of sigm oid function
2)新建一个初始神经网络.在使用样本数据对网络进行训练之前,必须先新建一个神经网络.这里选用函数拟合神经网络(fitnet),产生并查看新的拟合神经网络代码为
图2为构建的神经网络结构拓扑图.
3)采用已有数据对网络进行训练.神经网络在被训练之前,所有的参数都是随机的,需要使用已有的数据集对网络进行训练.各参数发生改变以后,神经网络便会反映数据集的特性,也就可以对新的数据进行预测.对网络进行训练需调用代码
神经网络的训练过程如图3所示.
图2 神经网络结构拓扑图Fig.2 Topological graph of the network structu re
图3 神经网络的训练过程Fig.3 Training p rocess of the neu ral networks
4)评价神经网络模型优劣.评价神经网络模型的优劣有多种方法,单击nntraintool上的performance按钮或者在命令窗口调用plotperform函数.神经网络模型的评价与均方误差有关,并且以对数轴的形式呈现(图4),因为在训练的过程中,它下降得非常迅速.调用plotperform函数的方法是在命令窗口中直接输入p lotperform(tr).
2 基于混合编程的W eb App的实现
以下通过MATLAB与ASP.net网页开发平台的混合编程实例,演示Web程序基本数据处理能力的实现过程.例如,如何使非线性回归、数据趋势预测和常用的人工智能算法等在Web程序中得到应用.
2.1 准备工作
要实现MATLAB与ASP.net的混合编程,首先安装Visual Studio和MATLAB开发环境的最新版本.这里采用的版本为MATLAB 7.12.0(R2011 a)和Microsoft Visual Studio 2010旗舰版.要实现MATLAB程序在服务器上的远程访问,可根据需要安装IIS(Internet Information Service)以及数据库软件.
2.2 编写MATLAB函数文件
在MATLAB主菜单上依次选择file->new->function创建新的函数文件,按照自己的需要编写一个或多个函数文件.由于问题比较复杂,涉及的函数较多,实例中编写了多个函数文件,即“.m”文件.
实例用到的主要函数是输入参数为
图4 神经网络模型的评价Fig.4 Evaluation of the neural networks
2.3 将MATLAB函数编译成dll文件
在MATLAB的命令窗口输入dep loytool,打开编译工具箱窗口,在new面板下输入工程名称,本文使用的是sjwangluo.prj.选取适当的路径,并选择类型为.NET Assembly(图5).单击OK,弹出.NET Assembly界面,选择Add Class并填写类名,本文使用的是yuce1,然后单击Add Files,将之前编写的函数文件全部添加到工程中,单击build按钮,文件开始编译.一段时间以后,MATLAB会提示编译已完成,单击close关掉对话框即可.此时,在src目录下可找到与工程名同名的动态链接库,即sjwangluo.dll.
2.4 在ASP.net中引用编写的MATLAB函数
1)打开Microsoft Visual Studio 2010并打开要引用该dll的网站.在资源管理器窗口中,右击应用,选择添加引用,在弹出的窗口选择浏览面板,添加之前生成的dll.除此之外,所有的ASP.net与MATLAB都需要添加另外一个MWArray.d ll,该动态链接库主要用于C#数组变量与MATLAB所使用的矩阵变量之间的转化,它一般位于目录“MATLAB安装目录 oolboxdotnetbuilderinwin32”下.
2)新建网页,在后台代码中添加3条引用语句
这样就可以在接下来的代码中使用MATLAB编写的MWArray类和自己编写的yuce1类了.
3)在ASP.net后台代码中调用MATLAB编写的函数:
这里x,st,Xt分别对应了用MATLAB编写的func函数的3个参数,参数4表示的是函数输出结果的个数.计算结果res是MWArray类型的变量组成的数组,在该实例中res表示的是4个MWArray类型的变量组成的数组,这4个变量分别对应于之前用MATLAB编写的函数的4个输出值.
ASP.net的数组与MWArray之间的转换:假设x2是一个存放double的List,即
图5 M ATLAB函数编译Fig.5 Com pilation the function of M ATLAB
2.5 将MATLAB函数返回的数据画成图表
网页的后台计算得到绘制图表需要的数据后,将数据传到前台,并使用JAVASCRIPT将数据转化为图表(图6).
图6 基坑沉降数据趋势预测Fig.6 Trend p rediction of excavation settlem ent
至此,一个具有数据分析能力的Web程序就完成了.该方法很好地解决了在Web程序中添加数值计算功能的实际问题,充分发挥了ASP.net在Web程序开发中的优势,以及MATLAB在数值计算方面的优势.
[1] 黄丽.BP神经网络算法改进及应用研究[D].重庆:重庆师范大学,2009.
[2] 吴清海.非等间距灰色模型在沉降预测中的应用[J].淮海工学院学报,2006,15(4):68-70.
[3] 张娜.灰色神经网络预测系统的设计及应用[D].石家庄:河北经贸大学,2012.
Research and Implementation of W eb App Based on Neural Network Forecasting M ethod
YANG Yun-lei,YAO Qing-hua
(Department of Basic Courses,Zhengzhou College of Science and Technology,Zhengzhou 450064,China)
The neural network forecasting model is applied in Dynamic Monitoring Platform for Safety Prediction,then numerical calculation is added to the web.Based on BP neural network model,dynamic monitoring and early warning of excavation was achieved by Web App.
neural networks;hybrid programming;data forecast;MATLAB
TP183
A
1007-0834(2015)03-0032-04
10.3969/j.issn.1007-0834.2015.03.09
2015-04-22
郑州市科技局软科学研究计划项目(20141153)
杨云磊(1988—),女,河南周口人,郑州科技学院基础部教师.