最新BP神经网络在项目风险识别、评估中的应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
B P神经网络在项目风险识别、评估中的应
用
BP神经网络在项目风险识别、评估中的应用
摘要
现今不断提倡改革、创新、发展的社会中,新型项目群涌而起,项目风险识别、评估作为项目管理领域中一个重要的组成部分,正在受到越来越多的重视。面临着众多的选择,我们如何挑选出投资风险最少,最稳定,最具有可行性的项目这显得极为重要,对此我们以软件项目、企业管理项目以及个人信贷风险这三个极具代表性的项目为例,提出基于 BP神经网络的项目风险评估模型。首先 ,构建相应项目风险识别的模型 ;其次 ,在识别模型基础上建立了多种风险指标在内的项目风险评估指标体系 ;再次 ,利用 BP神经网络建立了风险评估模型 ;最后 ,通过 MATLAB实例证明该风险评估模型的有效性和可行性。
关键词:软件项目风险识别与评估;企业管理项目风险识别与评估;个人信贷风险识别与评估; BP神经网络;
自评分:85
目录
摘要 (2)
1 引言 (3)
2 三种项目风险的识别与评估 (5)
2.1软件项目风险识别与评估 (5)
2.2企业项目风险识别与评估.................................. 错误!未定义书签。
2.3个人消费信贷风险识别与评估.............................. 错误!未定义书签。小结 (8)
参考文献 (9)
致谢 (9)
1 引言
一个典型的BP网络主要由输入层、隐层和输出层组成。BP网络具备任意精
度的函数逼近能力,所以,神经元网络为项目风险评估模型提供了一个可行的构造
和表达方式。BP网络学习过程是由信号的正向传播与误差的反向传播两个过程组成。正向传播时,把用于项目风险评估的各项指标属性值归一化处理后作为输入
样本从输入层传入,经各隐层逐层处理后传向输出层,若输出层的实际输出与期望
输出不符,则转入误差的反向传播阶段。误差反传是将输出误差以某种形式通过
隐层向输入层逐层反传,并将误差分摊给各层的所有单元,从而获得各层单元的误
差信号,此误差信号即作为修正各单元权值的依据。信号正向传播与误差反向传
播的各层权值调整是周而复始的,权值不断调整的过程,也是网络的学习训练过
程。此过程一直训练到网络输出的误差减少到可以接受的程度,或进行到预先设
定的学习次数为止,最终以系统的输出作为评价的目标。
风险评估过程从方案阶段的中期开始, 并在其后续诸阶段一直持续下去; 随
着软件开发项目的进展, 评估会不断地深化。风险评估的过程(图一) 主要包括
两个阶段:
a) 项目风险识别。它是指对项目各个方面和各个关键性过程进行考察研究, 从
而识别并记录有关风险的过程。风险识别是风险评估过程的第一步, 它的基本任
务就是搜寻整个项目, 找出那些会妨碍项目实现其目标的风险事件。
b) 项目风险分析。它是指对已辨识出的各类风险事件进行考察研究以进一步细
化风险描述, 从而找出风险致因并确定影响。其目的是搜集这些风险的足够信息, 以判断各类风险发生概率以及各类风险一旦发生将对项目性能、进度、费用造成
的后果。当有了这些信息后, 就可以根据项目自身的准则确定风险等级。
图一
2三种项目风险与评估
2.1软件项目风险识别与评估
软件项目是生活中更新最快,量最多,风险最大的项目之一,在现今信息社会项目风险识别与评估中极具代表性,他的整个过程不是一次性行为,而是有规律地贯穿整个项目中。任何能进行潜在问题识别的信息源都可用于风险识别,信息源有主观和客观两种。客观的信息源包括过去项目中记录的经验及表示当前项目进行情况的文件;主观信息源是基于有经验的专家的经验判断。
根据需要, 本文在以往的软件开发项目中选取10 个已有结果的项目作为样本, 如表1 所示, 每个项目的17 种风险指标已经计算得到, 表2 表示4 个测试项目的17 种风险指标。在模拟实验中, 本文采用MATLAB 7.0 作为软件平台。
将表1 中的10 个训练样本输入神经网络模型, 其模型输出结果与实际结果间的误差随训练次数的增加而减小, 误差变化如图2 所示。
图二网络训练误差变化曲线图
当训练次数达到500 次时, 图二显示训练样本项目风险的误差达到10 - 3 , 此时BP 神经网络模型达到预设精度。用该模型来测试表2 的项目风险, 将表2 中的数据输入网络模型, 经过运算后, 输出结果为[ 0. 0100 0. 4504 0. 1801 0. 1601] , 与风险实际结果[ 0. 01 0. 45 0. 18 0. 16] 相比较, 其准确率也达到了10 - 3 的预定水平。
假设某软件开发项目风险预测的各个指标值为[ 0. 1, 0. 3, 0. 3, 0. 3, 0. 1, 0. 1, 0. 5, 0. 3, 0. 5, 0. 3, 0. 1, 0.1, 0. 3, 0. 1, 0. 3, 0. 1] , 经过该BP 神经网络模型预测此项目的风险水平为Ⅱ级。因此, 在得到某软件开发项目的17 种风险指标值之后, 利用本文的基于BP神经网络的风险评估模型可以预测项目总风险水平属于低风险、中等风险还是高风险, 给项目决策者提供一个较客观评价指标, 进而提高软件项目应对风险的科学性。
2.2 企业项目风险识别与评估
企业项目风险管理作为项目管理九个领域中一个重要的组成部分,之所以重要,显然是由于项目管理所必然面临的不确定因素。根据对项目的定义,任何项目都有其某种程度的唯一性或特殊性。项目管理区别于企业一般运营管理的关键一点,在于项目管理所面临的各种变化因素。内部和外部的变化,主动和被动的变化,可以预见的和不可预见的变化,为项目带来风险,为项目管理带来难度,迫使企业管理层和项目经理增强风险意识、预先制定或临时采取应对措施。
我们认为项目管理的最终风险值是由生产成本超过预算、管理费用超过预算,意外支出、工期延误、产品质量、技术风险、士气低落、骨干人员流失等若干事件的风险值综合求得,并据此构筑项目风险BP神经网络。
BP神经网络风险识别模型将沿以下流程进行计算:
1)权值和阈值初始化。随机给出权值|W[i][j]|、|V[j][t]|和|Q[j]|、|R[t]|的初始值,计算器归零。
2)给定输入信号A[k],(k=1,2,……,m)和期望输出信号T[k](k=1,2,……,q)。
3)计算神经网络前向传播信号。
隐节点的输入输出:
S[j]= ∑W[i][j]Y[j] – Q[j]
B[j] = f(S[j]) (j = 1,…,p)
输出节点的输入输出:
L[j] = ∑V[j][t] – R[t]
Z[t] = f (L[t]) (t = 1,…,q)
实际输出节点和目标值之间的误差:
E = e[t] = 0.5 * ∑( A[t] – Z[t]) (A[t] – Z[t])
4)各层次权值和阈值的修正。如果误差不能满足误差精度要求,从输出层开始,误差信号将沿连接通路反向传播,以修正权值和阈值。
5)随机抽取一个学习模式(样本)提供给网络,返回第3)步,直至n个模式(训练样本)全部训练完毕。
6)重新从n个模式中随机选取一个模式返回第3)步进行训练,直至训练误差达到误差精度(ε)要求,训练结束。
7)把模型输出风险进行分类。
具体等级分为三级:无警示、轻警示、重警示,并用绿、黄、红三种颜色表示。绿灯区表示项目运营综合指标所反映的实际运行值与目标值基本一致,运行良好;黄灯区表示项目运营综合指标所反映的实际运行值与目标值偏离较大,要引起企业的警惕。若采取一定的措施可转为绿灯区,若不重视可在短期内转为红灯区;红灯区则表示这种偏离超过企业接受的可能,并给企业带来整体性的重大损失。