首页 > 范文大全 > 正文

基于BP神经网络的政府投资项目风险分析模型设计

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于BP神经网络的政府投资项目风险分析模型设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要:随着政府投资项目在国民经济发展中的地位逐步提高,近年来关于政府投资项目风险的研究逐渐增多,而且大多数研究采用层次分析法、蒙特卡洛模拟法等方法进行研究。尽管这些方法具有计算简便、易于理解等特点,但仍具有一定的不足。为克服上述缺陷,本文拟引入BP神经网络对政府投资项目风险进行研究。

关键词:神经网络;风险;政府投资项目

中图分类号:F121 文献标识码:A 文章编号:1008-4428(2012)10-107 -02

一、BP神经网络的研究

神经网络工具箱是在MATLAB环境下开发出来的许多工具箱之一。它以人工神经网络理论为基础,利用MATLAB编程语言构造出许多典型神经网络的激活函数,如S型、线性、竞争层、饱和线性等激活函数,使设计者对选定网络输出的计算,转变为对激活函数的调用。另外,可以根据各种典型的修正网络权值的规则,加上网络的训练过程,利用MATLAB语言编写各种网络权值训练的子程序。这样一来,网络的设计者可以根据自己的需要调用工具箱中有关神经网络的设计与训练的程序,使自己能够从繁琐的编程中解脱出来,集中精力思考和解决问题,从而提高效率和质量[1]。

二、BP神经网络的创建及其初始化

MATLAB 7.1神经网络工具箱中包含了许多用于BP网络分析与设计的函数,其常用函数如表2-1。

创建一个BP神经网络,调用格式:

net=newff

net=newff(PR,[S1 S2...SN1],{TF1 TF2…TFN1 },BTF,BLF,PF)

其中net=newff:用于在对话框中创建一个BP网络;

PR:由每组输入(共有R组输入)元素的最大值和最小值组成的R×2维的矩阵;

Si:第i层的长度,共计N1层;

TFi:第i层的传递函数,默认为“tansig”;

BTF:BP网络的训练函数,默认为“trainlm”;

BLF:权值和阈值的BP学习算法,默认为“learngdm”;

PF:网络的性能函数,默认为“mse”

执行结果:创建一个N1层的BP神经网络。

TFi的值可以是任意的可微函数,如logsig、purelin等。BTF的值还可以选择trainbfg、trainrp、trainbr等。PF的值可以是任何可微性能函数,例如mse、msereg。在训练前馈神经网络之前,必须设置权值和阈值的初始值。但当使用newff创建前馈神经网络之后,网络会自动初始化权值和阈值,缺省值都为0。如果要设置这些初始值,可以使用函数init(),命令格式为:net=init(net)。

函数init()会根据网络的初始化函数以及它的参数值来设置网络权值和阈值的初始值,它们分别由参数net.initFcn和net.initParam表示。对BP神经网络来说,参数net.initFcn的值是initwb,它使网络的初始化采用了Nguyen-Widrow算法。

三、BP神经网络的训练及其结果分析

一旦网络加权和偏差被初始化,网络就可以开始训练了。可以通过训练网络来做函数近似,模式结合,或者模式分类。训练处理需要一套适当的网络操作的例子——网络输入p和目标输出t。在训练期间网络的加权和偏差不断地把网络性能函数net.performFcn减少到最小。前馈网络的缺省性能函数是均方误差mse——网络输出和目标输出t之间的均方误差。

BP神经网络的训练使用函数train()和adapt(),在BP神经网络的训练算法中,都是通过计算性能函数的梯度,再沿负梯度方向调整权值和阈值,从而使性能函数达到最小。梯度下降算法有两种模式,递增模式和批处理模式。在递增模式中,当每个样本输入应用于网络之后,就对网络的权值和阈值进行调整。而在批处理模式中,只有当所有的样本输入都应用于网络之后,网络的权值和阈值才会得到调整。MATLAB神经网络工具箱提供了多种训练函数,它们都是属于批处理模式的训练函数,主要可分为普通训练函数和快速训练函数。

当网络训练结束后,可以用激活函数(sim)仿真网络的输出,从而与目标输出进行比较,来检验网络性能。对于高维的多个输入,可以方便的用该函数得到网络的仿真结果。MATLAB还提供了函数postreg用于对网络训练结果的进一步分析,该函数利用了线性回归的方法分析了网络输出和目标输出的关系,即网络输出变化相对于目标输出变化的变化率,从而评估了网络的训练结果。

四、BP神经网络的模型构建分析

在建立BP神经网络时,必将会遇到确定网络最佳结构的问题,具体说就是给定了某个应用任务,如何选择网络的层数和每层应选多少个单元(节点)。

(一)输入和输出层的设计

输入层起缓冲存储器的作用,把数据源加到网络上,其节点数目取决于数据源的维数,即这些节点能够代表每个数据源[2]。所以保证数据的正确性、有用性、相关性就显得尤其重要。人工神经元网络只能处理表示成数值的输入数据,一般将输入数据标度到限定范围[0,1]。输入和输出层的维数完全根据使用者的要求来设计,输出神经元还可以根据类别进行编码。

(二)隐含层的设计

隐含层起抽象的作用,即它能从输入提取特征。1988年Cybenko指出,当各节点均采用S型函数时,一个隐含层就足以实现任意判决分类问题,两个隐含层则足以表示输入图形的任意输出函数。隐层单元数与问题的要求,输入输出单元的多少都有直接的关系[3]。隐层节点数过少时,学习的容量有限,不足以存储训练样本中蕴涵的所有规律;隐层节点过多不仅会增加网络训练时间,而且会将样本中非规律性的内容存储进去,反而降低泛化能力。一般方法是凑试法:

1、先由经验公式确定

2、改变m,用同一样本集训练,从中确定网络误差最小时对应的隐层节点数。

理论证明:具有单隐层的前馈网络可以映射所有连续函数,只有当学习不连续函数时才需要两个隐层。最常用的BP神经网络结构是3层结构,即输入层、输出层和1个隐层,这也是本文将要采用的网络结构。

参考文献:

[1]飞思科技产品研发中心.神经网络理论与MATLAB7实现[M].电子工业出版社,2005.

[2]袁曾仁.人工神经元网络及其应用[M].清华大学出版社、广西科技大学出版社,1999.

[3]袁曾仁.人工神经元网络及其应用[M].清华大学出版社、广西科技大学出版社,1999.

[4]孙星.风险管理[M].经济管理出版社,2007.

[5]肖先波.基于bp神经网络的公路建设项目风险分析[D].浙江大学硕士学位论文,2006.

作者简介:

李元辉,男,江苏徐州人,扬州大学管理科学与工程管理学硕士江西科技学院助教,土木系工程造价教研室主任;

朱街禄,男,江西鹰潭人,暨南大学工学硕士江西科技学院讲师。