基于粗集的神经网络的项目风险评估
[摘 要] 本篇论文我们介绍了基于粗集的BP神经网络识别项目的风险并评估项目风险。粗集(RS)与神经网络的集成反映了人类正常的思维机制。它融合了定性和定量的,精确和非确定的,连续和平行的方法。我们建立了粗集的神经网络并进行属性约简的混合模型,给出了软件项目风险在实际中的早期预警模型即评估模型,提出了有效的方法。[关键词] 软件项目风险管理 神经网络 粗集
本篇论文的中心是基于粗集的人工神经网络(ANN)技术的高风险识别,这样在制定开发计划中,最大的减少风险发生的概率,形成对高风险的管理。
一、模型结构的建立
本文基于粗集的BP 神经网络的风险分析模型,对项目的风险进行评估,为项目进行中的风险管理提供决策支持。在这个模型中主要是粗糙集预处理神经网络系统,即用RS理论对ANN输入端的样本约简,寻找属性间关系,约简掉与决策无关的属性。简化输入信息的表达空间维数,简化ANN结构。本论文在此理论基础上,建立一种风险评估的模型结构。这个模型由三部分组成即:风险辨识单元库、神经网络单元、风险预警单元。
1.风险辨识单元库。由三个部分功能组成:历史数据的输入,属性约简和初始化数据. 这里用户需提供历史的项目风险系数。所谓项目风险系数,是在项目评价中根据各种客观定量指标加权推算出的一种评价项目风险程度的客观指标。计算的方法:根据项目完成时间、项目费用和效益投入比三个客观指标,结合项目对各种资源的要求,确定三个指标的权值。项目风险系数可以表述成:r=f(w1,w2,w3,T,T/T0,S/S0,U/U0),R<1;式中: r 为风险系数;T 、T0分别为实际时间和计划时间;S、S0分别为实际费用和计划费用;U、U0分别为实际效能和预计效能;w1、w2、w3分别是时间、费用和效能的加权系数,而且应满足w1+w2+w3=1的条件。
2.神经网络单元。完成风险辨识单元的输入后,神经网络单元需要先载入经初始化的核心风险因素的历史数据,进行网络中权值的训练,可以得到输入层与隐含层、隐含层与输出层之间的权值和阀值。
(1)选取核心特征数据作为输入,模式对xp=[xp1,xp2,.,xpn ]T,dp(网络期望输出) 提供给网络。用输入模式xp,连接权系数wij及阈值hj计算各隐含单元的输出。
m
Ypj=1/{1+exp[-(∑wijxpi-hj)]},i =1,2,.,m;j=1,2,Λ,n ,
i=1
(2)用隐含层输出ypj,连接权系数wij及阈值h计算输出单元的输出
m
Yp=1/{1+exp[-(∑wjxpi-hj)]},i=1,2,.,m;j=1,2,Λ,n,
i=1
Yp=[y1,y2,……,yn]T
(3)比较已知输出与计算输出, 计算下一次的隐含各层和输出层之间新的连接权值及输出神经元阈值。
wj(k+1)=wj(k)+η(k)σpσpj+α[wj(k)-wj(k-1)]
h(k+1)=h(k)+η(k)σp+α[h(k)-h(k-1)]
η(k)=η0(1-t/(T+M))
η0是初始步长;t是学习次数;T是总的迭代次数;M是一个正数,α∈(0,1)是动量系数。σp是一个与偏差有关的值,对输出结点来说;σp=yp(1-yp)(dp-yp);对隐结点来说,因其输出无法比较,所以经过反向推算;(4)用σpj、xpj、wij和h计算下一次的输入层和隐含层之间新的连接权值及隐含神经元阈值。wij(k+1)=wij(k)+η(t)σpjxpi+α[wij(k)-wij(k-1)]
3.风险预警单元
根据风险评价系数的取值,可以将项目的风险状况分为若干个区间。本文提出的划分方法是按照5 个区间来划分的:
r<0.2项目的风险很低,损失发生的概率或者额度很小;
0.2≤r<0.4项目的风险较低,但仍存在一定风险;
0.4≤r<0.6项目的风险处于中等水平,有出现重大损失的可能;
0.6≤r<0.8项目的风险较大,必须加强风险管理,采取避险措施;
0.8≤r<1项目的风险极大,重大损失出现的概率很高,建议重新考虑对于项目的投资决策。
总之,有许多因素影响着项目风险的各个对象,我们使用了用户评级的方式,从风险评估单元中获得评价系数五个等级。给出各风险指标的评价系数,衡量相关风险的大小。系数越低,项目风险越低;反之,系数越高,项目风险越高。