基於粗集的神經網路的專案風險的評估

才智咖 人氣:9.04K

[摘 要] 本篇論文我們介紹了基於粗集的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);對隱結點來說,因其輸出無法比較,所以經過反向推算;σpj=ypj(1-ypj)(ypwj)

基於粗集的神經網路的專案風險的評估

(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專案的風險極大,重大損失出現的概率很高,建議重新考慮對於專案的投資決策。
  總之,有許多因素影響著專案風險的各個物件,我們使用了使用者評級的方式,從風險評估單元中獲得評價係數五個等級。給出各風險指標的評價係數,衡量相關風險的大小。係數越低,專案風險越低;反之,係數越高,專案風險越高。
  二、實證:以軟體開發風險因素為主要依據
  這裡我們從影響專案風險諸多因素中,經專案風險係數計算,作出決策表,利用粗集約簡,抽取出最核心的特徵屬性 (中間大量複雜的計算過程省略)。總共抽取出六個主要的指標(Personnel Management/Training,Schedule,Product Control,Safety,Project Organization,Communication)確定了6個輸入神經元,根據需求網路隱含層神經元選為13個,一個取值在0到1的輸出三層神經元的BP網路結構。將前十個季度的指標資料作為訓練樣本資料,對這些訓練樣本進行數值化和歸一化處理,給定學習率η=0.0001,動量因子α=0.01,非線性函式引數β=1.05,誤差閉值ε=0.01,經過多次迭代學習後訓練次數N=1800網路趨於收斂,以確定神經網路的權值。最後將後二個季度的指標資料作為測試資料,輸入到訓練好的神經網路中,利用神經網路系統進行識別和分類,以判斷軟體是否會發生危機。實驗結果表明,使用神經網路方法進行風險預警工作是有效的,運用神經網路方法對後二個季度的指標資料進行處理和計算,最後神經網路的實際輸出值為r=0.57和r=0.77,該軟體開發風險處於中等和較大狀態,與用專家效績評價方法評價出的結果基本吻合。
  參考文獻:
  [1]王國胤 “Rough:集理論與知識獲取”[M].西安交通大學出版社,2001
  [2]Taghi M. Khoshgoftaar, and J . C. Munson, “predicting Software Development Errors Using Complexity Metrics”, IEEE Journal of Selected Areas in Communications, vol. 8, no. 2, pp. 253~261, February 1990
  [3]徐麗娜:“神經網路控制”[M].北京:電子工業出版社,5,18 ,2003年2月