您好, 访客   登录/注册

基于BP神经网络的工程项目风险评价

来源:用户上传      作者: 郭欣欣

  【摘要】本文根据工程项目在施工中经常遇到的风险,建立风险指标评价集对工程项目进行综合评价,旨在使管理者能够事前对风险有充分的了解,在此基础上积极应对。本文根据BP神经网络的自组织,自学习和反向传播性的基本原理建立模型,并通过matlab软件中的神经网络工具箱实现模型的运行。
  【关键词】风险评价 BP神经网络 工程项目 matlab
  
  一、引言
  工程项目是一个工期长,技术复杂,前期投入量大的生产过程,在其建设期间存在大量的不确定性和风险,因此对工程项目的风险预测是一个必要且重要的过程。传统的分析方法各有特点,要根据具体的项目选择运用哪一种方法,如专家打分法,层次分析法,模糊分析法等,这些方法的局限性是人为因素占比重较大,结果容易产生偏差,为解决这一问题,提出了将人工神经网络用于风险综合评价的方法。
  二、BP神经网络简介
  人工神经网络具有自学习和自适应能力,可以通过预先提供的一批相互对应的输入――输出数据,分析掌握两者之间的映射关系,根据这些关系,输入新的数据来推算结果。BP神经网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,包括输入层,输出层和隐含层,当输出的结果与期望样本存在误差时,通过反向传播来调整网络的权值和阈值,使误差平方和最小。
  三、BP神经网络风险评价具体实现步骤
  一个基本的神经网络,有n个输入,每个输入值都通过一个经调整的权值与下一层连接,输出层可以表示为:
  y=f(wp+b)
  f为表示输入输出关系的函数。
  BP算法的基本步骤:
  1.构建网络,确定输入层、隐含层、输出层节点数目,初始化权值w和阈值b;
  (1)一般来说,输入层节点数与风险指标个数相同;
  (2)隐含层节点数理论上没有一个规范的依据,其数目取决于多种因素,如,训练样本的数量,样本的波动大小及隐藏的规律性的复杂程度。经验上,我们可以采取两种方法确定隐含层节点数:
  a.试凑法,先设置较少的节点数目进行训练,计算误差,然后逐步增加结点个数,用相同的样本进行训练,直到计算得到得误差最小,即为需要的隐含层节点个数,此方法为确定结点个数的最佳方法;
  b.公式法,H=(m+n)1/2+a
  或H=(m*n)1/2
  或H=log2n
  n,m分别代表输出和输入的节点个数,a为0~1之间的常数。
  (3)输出层节点数根据评价结果确定,一般为1。
  2.训练样本集,包括输入样本集向量p和预期的输出T,计算输出值,并与预期输出值比对计算误差;
  3.计算误差平均方差和;
  4.根据误差调整权值和阈值;
  5.循环2―4,直至误差均方和满足精确度为止。
  四、选择传递函数和学习函数
  1.传递函数
  传递函数是BP神经网络的重要组成部分,又称为激活函数,必须是连续可微的,BP神经网络一般采用tansig()或logsig()或purelin()作为传递函数。通常根据样本数据的情况,输入输出数据的取值范围等选择传递函数。
  2.学习函数
  学习函数是BP神经网络的又一重要组成部分, BP神经及网络的传递函数包括:
  (1)traingd,特点是收敛速度满慢,学习过程常发生震荡;
  (2)traingdm函数收敛速度快于traingd;
  (3)traingdx收敛速度快于traingd,但仅用于批量训练;
  (4) trainrp,收敛速度快,用于批量训练,数据占用存储空间小;
  (5)rtaincgf,占用存储空间最小的变梯度算法,速度通常比traingdx快得多,适用于连接权的数量很多时;
  (6)traincgp,数据占用的存储空间较rtaincgf略大,但对有些问题有较快的收敛速度,性能略好于rtaincgf;
  (7)traincgb,性能略好于traincgp,但存储空间较之略大;
  (8)trainscg,比其他变梯度算法需要更多迭代次数,但无需在迭代中进行线性搜索,从而大大减少了每次迭代的计算量;
  (9)trainbfg,每次迭代过程所需的计算量和存储空间大于变梯度算法,对规模较小的网络更有效;
  (10)trainoss,变梯度与拟牛顿算法的折中;
  (11)trainlm,对中等规模的前馈网络的最快速算法;
  (12)trainbr,可是网络具有较强的泛化能力,避免了尝试的方法去决定最佳网络规模的大小。在实际运用时,通常根据输入数据规模,特点,对收敛速度、存储空间的要求进行选择。
  五、工程项目风险指标集的确定
  通常,一个工程项目要经过可行性分析,工程设计,工程施工,竣工投产,项目处置几个阶段,不同的阶段风险不同,风险的影响因素也各不相同,我们没有必要对每一个因素进行分析,重点放在影响作用大的因素上而忽略影响作用小的因素。根据对工程项目不同的影响方式来分类,我们选取五类风险、分别是政治风险、社会风险、经济风险、工程风险、环境风险。其中,政治风险包括政治法规风险和城市规划风险;经济风险包括信用风险,市场风险和金融风险;工程风险包括技术风险,资源风险,材料供应风险,经营风险和验收风险。
  六、BP神经网络的matlab实现
  东方集团目前共有九个工程投资项目,按照前面确定的风险评价指标集,其专家评测的风险数据如下表,
  
  这九组数据中,使用1~7作为训练样本,8~9作为检验样本。经过试算,当网络中隐含层的节点数为3时,网络的性能最佳,即建立12个输入节点,3个隐含层节点,1个输出节点的BP神经网络模型。由于样本的数据都集中在0~1之间,我们在隐含层传递函数选取tansig()函数,整个网络最后的输出是在一个较小的范围内,所以采用S形函数,如果说整个网络的输出可以取到任意值,我们就可以考虑采用purelin()函数,在本模型中,最后的输出值是以一个单一的数字来表示,并且该数字的值在0~1之间,所以输出层的传递函数选用s型的logsig()函数。训练算法采用traingdx,误差设定为1e-3。迭代次数这里取1000次,两次显示之间的步数取50次,初始学习率设定为0.05,学习率的增加系数为1。
  
  根据以上结果可以看出,经过训练的BP神经网络较好的仿真了各个风险因素之间隐含的内在关系,预测数值和风险的期望数值相近,经过86次迭代达到了要求的精度,效率还是比较高的,反映出BP神经网络具有出色的数据拟合效果。
  六、结论
  本文从工程项目风险出发,依据不同风险的影响方面,将风险分类,采用专家打分法来确定风险值;依据BP神经网络的基本工作原理,采用适当的传递函数和算法对构建的网络进行训练,最后根据实例证明了本文所构建的模型,因为在实例中的样本数据较少,所以训练有较大的随机性,如果增大样本数量,可以进一步提高预测的准确性。
  
  参考文献
  [1] 李存斌.项目风险元传递理论与应用[M]. 北京:中国水利水电出版社 2009.
  [2] 王瑾.政府投资工业项目风险分析与评价[D]. 北京:首都经济贸易大学 2010.
  [3] 江大庆,朱晓丽.论建设项目经济评价指标体系模式的建立[J].中国集体经济,2008(4): 41-42.
  
  作者介绍:郭欣欣(1985-),女,汉族,首都经济贸易大学,研究方向:管理科学与工程。


转载注明来源:https://www.xzbu.com/3/view-726047.htm