帥 勇,宋太亮3,鄭玉杰,鄭雪松,唐 浩
(1.重慶賽寶工業(yè)技術(shù)研究院,重慶 401332; 2.重慶市電子信息產(chǎn)品可靠性工程技術(shù)研究中心,重慶 401132; 3.中國國防科技信息中心,北京 100142)
隨著信息技術(shù)的快速發(fā)展和高技術(shù)戰(zhàn)爭作戰(zhàn)方式多樣化程度的不斷加劇,軟件在作戰(zhàn)、訓(xùn)練和管理等軍事活動中發(fā)揮著越來越重要的作用。軟件過時(shí)淘汰特性[1]是軟件的重要特性之一,是確定軟件生命終止的重要標(biāo)志,在軟件的使用與維護(hù)過程中,發(fā)揮著與軟件可靠性、安全性、可行性等特性同等重要的作用。開展軟件過時(shí)淘汰研究,對于提升軟件的性能,充分發(fā)揮軟件的作用,具有重要的軍事價(jià)值和經(jīng)濟(jì)價(jià)值。然而,當(dāng)前軍方還沒有確定軟件過時(shí)淘汰的相關(guān)方法和措施,不利于有效控制軟件的成本和生命周期。
論文針對軟件過時(shí)淘汰的原理和相關(guān)數(shù)據(jù)的基本特性,按照機(jī)器學(xué)習(xí)分析的基本思路建立軍用軟件過時(shí)淘汰評估模型。首先采集相關(guān)特征的數(shù)據(jù),使用MinMaxScaler算法對樣本數(shù)據(jù)進(jìn)行預(yù)處理,然后利用主成分分析(Principe Component Analysis, PCA)模型進(jìn)行特征提取和降維,消除數(shù)據(jù)中的噪音值并選擇重要的軍用軟件過時(shí)淘汰特征和數(shù)據(jù),使用改進(jìn)的支持向量機(jī)(Support Vector Machine, SVM)模型進(jìn)行分類和評估建模,最后使用混淆矩陣對評估結(jié)果進(jìn)行判斷,證明模型的有效性和科學(xué)性。軟件過時(shí)淘汰評估機(jī)器學(xué)習(xí)建??傮w思路如圖1所示。
圖1 軟件過時(shí)淘汰評估機(jī)器學(xué)習(xí)建模總體思路
美軍早在2014就開始了對軟件過時(shí)淘汰技術(shù)的研究,其報(bào)告《Software obsolescence in defence》[2]中指出,盡管已經(jīng)對軟件過時(shí)淘汰進(jìn)行了各種分析和研究,并開發(fā)了用于降低軟件和組件成本的工具,但沒有開發(fā)用于評估軟件過時(shí)淘汰成本的框架。即使軟件功能完整,但如果無法使用,軟件也會被過時(shí)淘汰。如果不主動檢查和控制,將會造成巨大的成本負(fù)擔(dān)。
當(dāng)前對于軟件過時(shí)淘汰的研究主要分為以下四個(gè)方面:
一是對過時(shí)淘汰機(jī)理分析研究。如文獻(xiàn)[3]將軟件過時(shí)淘汰的原因歸納為平臺過時(shí)、技術(shù)過時(shí)和介質(zhì)過時(shí),文獻(xiàn)[4]從正反兩方面論述了軟件過時(shí)淘汰的標(biāo)志和未達(dá)到過時(shí)淘汰的標(biāo)志,文獻(xiàn)[5-6]將軟件過時(shí)淘汰的原因解釋為技術(shù)過時(shí)、功能過時(shí)和后勤保障過時(shí),并分析了軟件過時(shí)淘汰的重要性。
二是過時(shí)淘汰分析與評估模型建立。如文獻(xiàn)[7]通過設(shè)計(jì)分析、技術(shù)開發(fā)分析和成本分析對是否需要軟件過時(shí)淘汰進(jìn)行評估;文獻(xiàn)[6]提出使用軟件生命周期的瀑布圖,并將螺旋迭代和增量生命周期映射到CADMID生命周期圖中來評估軟件過時(shí)淘汰;文獻(xiàn)[1]采用模糊貝葉斯網(wǎng)路算法評估軟件過時(shí)淘汰的影響,并輔助管理者進(jìn)行決策。
三是過時(shí)淘汰對策分析。如文獻(xiàn)[8]開發(fā)了過時(shí)淘汰地圖軟件來確定軟件過時(shí)的范圍和驅(qū)動因素,用以監(jiān)控和管理軟件過時(shí)淘汰,減少過時(shí)淘汰并避免業(yè)務(wù)中斷;文獻(xiàn)[9]開發(fā)了一個(gè)軟件過時(shí)淘汰測試模塊接收器,用于判斷何種狀態(tài)下應(yīng)該進(jìn)行軟件過時(shí)淘汰;文獻(xiàn)[10]指出應(yīng)對軟件過時(shí)淘汰的策略是確定舊版本產(chǎn)品的第三方供應(yīng)商支持、找到備用商業(yè)應(yīng)用程序以執(zhí)行該功能、考慮為有限數(shù)量的特定軟件應(yīng)用程序提供升級策略;文獻(xiàn)[2]以關(guān)鍵的成本動因?yàn)榛A(chǔ)制定一個(gè)判斷軟件過時(shí)淘汰的框架,以輔助管理者制定正確的軟件過時(shí)淘汰決策。
四是過時(shí)淘汰理論與技術(shù)的行業(yè)應(yīng)用。如文獻(xiàn)[11]中,美國航空航天局采用低成本可擴(kuò)展平臺和自適應(yīng)維護(hù)策略來解決航空航天軟件的過時(shí)淘汰問題;文獻(xiàn)[12]為了減輕石油和天然氣行業(yè)軟件過時(shí)的風(fēng)險(xiǎn),使用一種新框架來評估軟件類型,并識別和量化軟件過時(shí)淘汰的影響;文獻(xiàn)[13]針對航空航天企業(yè)在軟件過時(shí)淘汰上面臨的問題和挑戰(zhàn),提出一種航空航天工業(yè)軟件過時(shí)淘汰觸發(fā)圖,用以增強(qiáng)航空航天公司管理軟件應(yīng)用程序的綜合能力,避免業(yè)務(wù)中斷并優(yōu)化維護(hù)成本;文獻(xiàn)[14]針對衛(wèi)星地面控制軟件中常見的軟件過時(shí)及缺乏理想的功能和靈活性等問題,開發(fā)了基于衛(wèi)星地面控制軟件對象處理方法輪模型和處理軟件過時(shí)淘汰指導(dǎo)方針系統(tǒng),利用數(shù)據(jù)庫驅(qū)動的應(yīng)用程序以及對象過程方向和模塊化的概念,輔助衛(wèi)星運(yùn)營商靈活地創(chuàng)建新功能,并使軟件開發(fā)人員能夠更快地發(fā)現(xiàn)錯(cuò)誤并更有效地修復(fù)錯(cuò)誤。
以上對于軟件過時(shí)淘汰的研究大部分來源于軍方開展的工作,雖然解決了當(dāng)前存在的部分問題,但是仍然過度依賴于專家知識和機(jī)理分析,并限定在特定的行業(yè)中,其科學(xué)性、適用性和可行性較差。本文從數(shù)據(jù)的角度出發(fā),基于多個(gè)機(jī)器學(xué)習(xí)算法構(gòu)建綜合模型,對軟件過時(shí)淘汰相關(guān)特征數(shù)據(jù)進(jìn)行處理,并且從中提取出其背后的因素,從而發(fā)現(xiàn)評估軍用軟件過時(shí)淘汰的方法,更具有科學(xué)性和適用性。
由于PCA和SVM模型對于樣本數(shù)據(jù)非常敏感,因此,對于采集的軟件過時(shí)淘汰相關(guān)特征數(shù)據(jù)進(jìn)行預(yù)處理和縮放,可以使特征數(shù)據(jù)更加適用于PCA和SVM算法,提高算法的精度。
對于定量的數(shù)據(jù),scikit-learn提供了四的數(shù)據(jù)預(yù)處理的方式,如表1所示。
表1 數(shù)據(jù)預(yù)處理方法概述
考慮到SVM和PCA算法的特性,論文采用MinMaxScaler函數(shù)對數(shù)據(jù)預(yù)處理與縮放,例如對維護(hù)費(fèi)效值特征縮放后與縮放前數(shù)據(jù)比較如圖2、圖3所示。對于定性數(shù)據(jù),按照其定性表述的值,由人工確定在[0,1]之間取值。如對于特征“功能適應(yīng)性”,其評估值可能是包括“優(yōu)、良、中、差”四個(gè)等級,則定義其取值為0.9、0.7、0.5、0。
圖2 縮放前數(shù)據(jù)
圖3 縮放后數(shù)據(jù)
主成分分析是一種旋轉(zhuǎn)數(shù)據(jù)集的方法,旋轉(zhuǎn)后的特征在統(tǒng)計(jì)上不相關(guān),旋轉(zhuǎn)后根據(jù)新特征對解釋數(shù)據(jù)的重要性來選擇子集。[15]使用PCA保留一部分主成分來使用并進(jìn)行降維,可以去除數(shù)據(jù)中的噪音,并找到影響軍用軟件過時(shí)淘汰的關(guān)鍵參數(shù)。主成分分析的基本思路如圖4至圖7所示。
圖4 原始數(shù)據(jù)的主成分
圖5 數(shù)據(jù)轉(zhuǎn)換后的主成分
圖6 特征縮減后的主成分
圖7 還原后的主成分
由于SVM在結(jié)構(gòu)、性能、學(xué)習(xí)速度、泛化能力、數(shù)據(jù)處理和維度免災(zāi)等方面具有顯著的優(yōu)勢,且可以推廣到更復(fù)雜的無法被輸入空間的超平面定義的模型的擴(kuò)展,SVM模型已廣泛應(yīng)用于分類和回歸。[16]考慮到軍用軟件過時(shí)淘汰評估的結(jié)論是淘汰或不淘汰,因此可以將此類問題歸納為一個(gè)二分類問題進(jìn)行處理,從而建立軟件過時(shí)淘汰的評估模型。
SVM算法建模步驟如下[18]:
第一步:構(gòu)建SVM估計(jì)函數(shù)。
假設(shè)有一樣本集為{(y1,x1),(y2,x2),…,(yi,xi)},且y∈R。支持向量機(jī)線性方程表示如下,其估計(jì)函數(shù)為:
f(x)=WTφ(x)+b
(1)
第二步:最優(yōu)問題的轉(zhuǎn)化。
基于線性可分定理,利用ε不敏感損失函數(shù)將估計(jì)函數(shù)轉(zhuǎn)化為優(yōu)化問題:
(2)
(3)
上式的約束條件為:
第三步:采用對偶理論將上式轉(zhuǎn)化為二次規(guī)劃求解,則約束表達(dá)式的對偶式為:
(4)
其約束條件為:
(5)
第四步:通過二次規(guī)劃算法計(jì)算SVM模型。SVM模型為:
(6)
式中,K(xi,x)稱為核函數(shù),需要滿足Mercer條件,且需要滿足:
Qij=K(xi,xj)=φ(xi)Tφ(xj)
(7)
論文采用徑向基函數(shù)(Radial Basis Function,RBF)作為SVM的核函數(shù),其計(jì)算方法見5-8。
(8)
SVM訓(xùn)練的優(yōu)化主要針對核函數(shù)、懲罰系數(shù)C和不敏感損失系數(shù)gamma。C和Gamma可通過粒子群優(yōu)化算法(particle swarm optimization,PSO)進(jìn)行優(yōu)化,相關(guān)算法參見文獻(xiàn)[19]。通過對訓(xùn)練集的優(yōu)化,得到SVM的最佳參數(shù)組合,將該參數(shù)組合應(yīng)用到支持向量機(jī)分類模型中,計(jì)算出基于現(xiàn)有參數(shù)集的軍用軟件過時(shí)淘汰結(jié)果,并與實(shí)際的過時(shí)淘汰結(jié)果進(jìn)行比較。
混淆矩陣是用N×N的矩陣形式來評估機(jī)器學(xué)習(xí)精度的一種方式。[15]對于二分類問題,混淆矩陣是一種最全面的表示方法,使用混淆矩陣輸出一個(gè)2×2的數(shù)據(jù),其中行對應(yīng)于真實(shí)的類別,列對應(yīng)于預(yù)測的類別?;煜仃囍鲗蔷€上的元素對應(yīng)于正確的分類,而其他元素則表示一個(gè)類別中有多少樣本被錯(cuò)誤地劃分到其他類別中。觀察混淆矩陣,可以發(fā)現(xiàn)不同模型的問題,如較差的模型總是預(yù)測同一個(gè)類別,或者其真正例和真反例很少,而較好的模型其真正例和真反例更多,而假正例和假反例數(shù)量很少。
混淆矩陣的評估方法包括精度、準(zhǔn)確率、召回率和f-分?jǐn)?shù)。[15]論文采用精度來評估混淆矩陣,其計(jì)算公式如下:
(9)
其中:TP表示被判定為負(fù)樣本,事實(shí)上也是負(fù)樣本的樣本數(shù);TN表示被判定為正樣本的樣本數(shù),事實(shí)上也是正樣本;FP表示被判定為正樣本,但事實(shí)上是負(fù)樣本的樣本數(shù);FN表示被判定為負(fù)樣本,但事實(shí)上是正樣本的樣本數(shù)。
論文使用某裝甲機(jī)械化部隊(duì)裝備管理方面使用的34個(gè)軟件系統(tǒng)在2010~2015年間的過時(shí)淘汰相關(guān)特征數(shù)據(jù)及評估數(shù)據(jù)進(jìn)行案例分析,并驗(yàn)證模型的有效性,建模環(huán)境為python3.5,機(jī)器學(xué)習(xí)庫為scikit-learn,深度學(xué)習(xí)庫為TensorFlow。
基于論文的建模思路,首先采集軟件過時(shí)淘汰數(shù)據(jù)集??紤]到軍用軟件過時(shí)淘汰的特性,為了減少專家決策對樣本數(shù)據(jù)的影響,論文的樣本特征采集使用基于文本挖掘[17]的特征獲取方法,采集公開發(fā)表的相關(guān)論文中涉及到軟件過時(shí)淘汰的20個(gè)高頻特征參數(shù),包括:維護(hù)費(fèi)效值、硬件匹配度、滿負(fù)荷運(yùn)轉(zhuǎn)率、軟件平臺兼容性、功能適應(yīng)度、客戶滿意度、環(huán)境適應(yīng)度、任務(wù)完成度、風(fēng)險(xiǎn)管理能力、平均響應(yīng)時(shí)間、最長響應(yīng)時(shí)間、滿負(fù)荷每小時(shí)處理請求數(shù)目、功能實(shí)現(xiàn)程度、平均維護(hù)時(shí)間、平均維護(hù)金額、維護(hù)服務(wù)是是否提供、關(guān)鍵容錯(cuò)率、自修復(fù)率、致命性故障間隔時(shí)間、平均無故障時(shí)間。依據(jù)上述特征參數(shù),獲取34個(gè)樣本軟件中上述特征對應(yīng)的數(shù)據(jù)并進(jìn)行評估建模。
步驟1:對于采集的樣本特征數(shù)據(jù),使用MinMaxScaler算法歸一化處理定量數(shù)據(jù)和定性數(shù)據(jù),使得所有樣本值都位于|0~1|之間。為了保證訓(xùn)練集、驗(yàn)證集和測試集的獨(dú)立性和可信性,使用sklearn的train_test_split函數(shù)對數(shù)據(jù)集進(jìn)行兩次劃,第一次將樣本數(shù)據(jù)集劃分訓(xùn)練集和測試集,第二次將訓(xùn)練集劃分為用于構(gòu)建模型的訓(xùn)練數(shù)據(jù)集和用于選擇模型參數(shù)的驗(yàn)證數(shù)據(jù)集。
步驟2:使用PCA進(jìn)行建模,選擇與軍用軟件過時(shí)淘汰關(guān)聯(lián)性強(qiáng)的特征參數(shù),并以前兩個(gè)特征為例,生成對于訓(xùn)練數(shù)據(jù)的熱圖和特征間的關(guān)聯(lián)結(jié)果,如圖8所示。從圖中可以發(fā)現(xiàn),第一特征的值較大,距離1更近,這意味著其他測量值接近于1的可能性也較大,所有特征之間存在普遍的相關(guān)性;第二個(gè)主成分的值較小,距離0更近,說明該特征與其他特征的相關(guān)性不如特征1明顯。這種情況下,優(yōu)先選擇第一個(gè)主成分作為下一步SVM建模的特征參數(shù)?;诖艘?guī)則進(jìn)行降維,選擇特征相關(guān)性最強(qiáng)的8個(gè)特征參數(shù)進(jìn)行下一步的評估建模,相關(guān)參數(shù)為維護(hù)費(fèi)效值、環(huán)境適應(yīng)度、平均響應(yīng)時(shí)間、風(fēng)險(xiǎn)管理能力、滿負(fù)荷每小時(shí)處理請求數(shù)目、自修復(fù)率、致命性故障間隔時(shí)間、平均無故障時(shí)間。
圖8 基于PCA的特征系數(shù)可視化熱圖
步驟3:使用SVM進(jìn)行分類與評估,建立軟件過時(shí)淘汰評估模型。對于評估結(jié)果,以0.5為閾值?;谏鲜霭藗€(gè)特征對軟件的過時(shí)淘汰特性進(jìn)行評估,當(dāng)某個(gè)軟件的評估值低于0.5時(shí),認(rèn)定其需要進(jìn)行過時(shí)淘汰;當(dāng)其評估值大于等于0.5時(shí),認(rèn)定其不需要進(jìn)行過時(shí)淘汰。
利用SVM建立評估模型,首先使用PSO算法[14]對SVM的C和gamma進(jìn)行化,并選擇典型的C和gamma進(jìn)行熱圖比較,可以發(fā)現(xiàn),當(dāng)C=100,gamma=0.01時(shí),訓(xùn)練精度最高,為0.97。SVM中C和gamma訓(xùn)練值比較如圖9所示。
圖9 SVM中C和gamma訓(xùn)練值比較
SVM模型使用最優(yōu)的C和gamma值對測試集進(jìn)行運(yùn)算,得到模型的評估值與真實(shí)值的比較結(jié)果,并使用KNN、樸素貝葉斯和邏輯回歸法進(jìn)行運(yùn)算并比較評估結(jié)果。使用混淆矩陣比較各算法混淆矩陣的訓(xùn)練精度和測試精度,結(jié)果如表2所示。
表2 各模型訓(xùn)練精度與測試精度比較
通過案例分析可以發(fā)現(xiàn),論文使用的機(jī)器學(xué)習(xí)綜合模型不僅可以在訓(xùn)練過程中達(dá)到最優(yōu)的效果,對于測試集的評估精度同樣有效,說明論文的機(jī)器學(xué)習(xí)模型具有較好的適應(yīng)性;同時(shí),由于建模過程中沒有采用專家學(xué)習(xí)等主觀性較強(qiáng)的方法,保證了結(jié)論不受人為影響,體現(xiàn)了模型的科學(xué)性和客觀性。
機(jī)器學(xué)習(xí)是從數(shù)據(jù)中提取知識,是統(tǒng)計(jì)學(xué)、人工智能和計(jì)算機(jī)學(xué)科的交叉研究領(lǐng)域。[15]針對機(jī)器學(xué)習(xí)算法的高效性和科學(xué)性,論文利用機(jī)器學(xué)習(xí)預(yù)處理與縮放、PCA、SVM等算法構(gòu)建軟件過時(shí)淘汰評估模型,并通過案例進(jìn)行了分析建模,結(jié)果顯示機(jī)器學(xué)習(xí)模型具有更高的測試精度,更強(qiáng)的客觀性和科學(xué)性。