亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種差分小波神經(jīng)網(wǎng)絡(luò)軟件故障預(yù)測技術(shù)的構(gòu)建方法與流程

文檔序號(hào):11386447閱讀:368來源:國知局
一種差分小波神經(jīng)網(wǎng)絡(luò)軟件故障預(yù)測技術(shù)的構(gòu)建方法與流程

本發(fā)明提供一種差分小波神經(jīng)網(wǎng)絡(luò)軟件故障預(yù)測技術(shù)的構(gòu)建方法,它涉及一種差分小波神經(jīng)網(wǎng)絡(luò)軟件故障預(yù)測技術(shù)的實(shí)現(xiàn),屬于軟件可信性、軟件故障預(yù)測領(lǐng)域。



背景技術(shù):

神經(jīng)網(wǎng)絡(luò)是由具有適應(yīng)性的簡單單元組成的廣泛并行互連的網(wǎng)絡(luò),它的組織能夠模擬生物神經(jīng)系統(tǒng)對真實(shí)世界物體所作出的交互反應(yīng)。它具有大規(guī)模并行處理和分布式存儲(chǔ)各類圖像信息的功能,有很強(qiáng)的容錯(cuò)性、聯(lián)想和記憶能力,因而被廣泛地應(yīng)用于故障診斷、故障預(yù)測、模式識(shí)別、聯(lián)想記憶、復(fù)雜優(yōu)化、圖像處理以及計(jì)算機(jī)領(lǐng)域。小波神經(jīng)網(wǎng)絡(luò)是基于小波分析理論所構(gòu)造的一種分層的、多分辨率的新型人工神經(jīng)網(wǎng)絡(luò),即用非線性小波基函數(shù)取代了通常的非線性sigmoid函數(shù)。小波神經(jīng)網(wǎng)絡(luò)有以下優(yōu)點(diǎn):可避免bp神經(jīng)網(wǎng)絡(luò)等結(jié)構(gòu)設(shè)計(jì)上的盲目性;可避免局部最優(yōu)等非線性優(yōu)化問題;有較強(qiáng)的函數(shù)學(xué)習(xí)能力。

差分則是一種常見的數(shù)據(jù)預(yù)處理方法,又名差分函數(shù)或差分運(yùn)算,差分的結(jié)果反映了離散量之間的一種變化,是研究離散數(shù)學(xué)的一種工具,它將原函數(shù)f(x)映射到f(x+a)-f(x+b)。

近年來,基于神經(jīng)網(wǎng)絡(luò)的混沌時(shí)間序列預(yù)測技術(shù)表現(xiàn)出較快的發(fā)展勢頭,每一種新的神經(jīng)網(wǎng)絡(luò)方法都促進(jìn)了混沌預(yù)測技術(shù)的豐富和改進(jìn)。一般來說,如果將預(yù)測任務(wù)當(dāng)作一個(gè)靜態(tài)函數(shù)逼近問題,則可通過非線性回歸方法來解決,比如使用多層前向網(wǎng)絡(luò)、支持向量機(jī)等。另一方面,混沌時(shí)間序列本身源自動(dòng)態(tài)系統(tǒng),因此可使用遞歸神經(jīng)網(wǎng)絡(luò)來模擬動(dòng)態(tài)系統(tǒng)。作為動(dòng)態(tài)系統(tǒng)的遞歸神經(jīng)網(wǎng)絡(luò)常常比靜態(tài)的多層前向網(wǎng)絡(luò)更有效。

由于軟件變得越來越復(fù)雜,規(guī)模越來越大,軟件發(fā)生故障的次數(shù)與時(shí)機(jī)也越來越難以預(yù)計(jì)。將一個(gè)軟件的故障發(fā)生時(shí)間間隔作為一個(gè)時(shí)間序列,那么它可能具有強(qiáng)烈的非平穩(wěn)性,甚至可能是一個(gè)統(tǒng)計(jì)意義上的白噪聲序列,這也讓軟件故障發(fā)生時(shí)間的預(yù)測變得愈加困難?,F(xiàn)有的諸如bp神經(jīng)網(wǎng)絡(luò)、rbf神經(jīng)網(wǎng)絡(luò)、小波神經(jīng)網(wǎng)絡(luò)、esn神經(jīng)網(wǎng)絡(luò)等的單一使用也難以對軟件故障的發(fā)生時(shí)間進(jìn)行準(zhǔn)確的預(yù)測。針對這一狀況,我們將提出一種差分小波神經(jīng)網(wǎng)絡(luò)軟件故障預(yù)測技術(shù)的構(gòu)建方法,在這項(xiàng)技術(shù)中,對于已有的原始?xì)v史軟件故障時(shí)間序列進(jìn)行差分預(yù)處理,使其變得平穩(wěn)化,再將差分后的時(shí)間序列作為小波神經(jīng)網(wǎng)絡(luò)的輸入和輸出,以此進(jìn)行訓(xùn)練,再使用訓(xùn)練好的網(wǎng)絡(luò)來進(jìn)行預(yù)測,最后將預(yù)測出的時(shí)間序列進(jìn)行差分還原,即可得所需要的軟件故障時(shí)間預(yù)測。使用這一技術(shù)可以克服單一使用神經(jīng)網(wǎng)絡(luò)進(jìn)行預(yù)測的預(yù)測誤差過大的問題,可以得出較為準(zhǔn)確的預(yù)測值。

該故障預(yù)測技術(shù)結(jié)合差分?jǐn)?shù)據(jù)預(yù)處理方法和小波神經(jīng)網(wǎng)絡(luò)技術(shù)進(jìn)行構(gòu)建,形成較為準(zhǔn)確的差分小波神經(jīng)網(wǎng)絡(luò)軟件故障預(yù)測技術(shù),在提高軟件故障時(shí)間預(yù)測精度的同時(shí),達(dá)到提高軟件可信性、安全性、可用性的目的。



技術(shù)實(shí)現(xiàn)要素:

(一)本發(fā)明目的:依據(jù)基礎(chǔ)理論的不同,目前主要的預(yù)測方法包括3種:基于線性理論的預(yù)測方法、基于知識(shí)發(fā)現(xiàn)的智能模型預(yù)測方法、基于非線性理論的預(yù)測方法。由于軟件規(guī)模和復(fù)雜度的急劇擴(kuò)大,軟件故障發(fā)生時(shí)間的時(shí)間序列逐漸稱為概率意義上的白噪聲序列。已有的諸如arima線性預(yù)測方法和神經(jīng)網(wǎng)絡(luò)非線性預(yù)測方法的直接使用已經(jīng)不能準(zhǔn)確的預(yù)測現(xiàn)有的故障發(fā)生時(shí)間。因此本發(fā)明將克服現(xiàn)有技術(shù)的不足,提供一種差分小波神經(jīng)網(wǎng)絡(luò)軟件故障預(yù)測技術(shù)的構(gòu)建方法對上述問題進(jìn)行解決。在這項(xiàng)技術(shù)中,首先將已有的歷史軟件故障時(shí)間序列進(jìn)行差分預(yù)處理,再將差分后的時(shí)間序列作為小波神經(jīng)網(wǎng)絡(luò)的輸入和輸出,以此進(jìn)行訓(xùn)練,再使用訓(xùn)練好的網(wǎng)絡(luò)來進(jìn)行預(yù)測,最后將預(yù)測出的時(shí)間序列進(jìn)行差分還原,即可得所需要的軟件故障時(shí)間預(yù)測。可以看出該技術(shù)的構(gòu)建對現(xiàn)有的神經(jīng)網(wǎng)絡(luò)預(yù)測方法進(jìn)行了整合與創(chuàng)新,形成了差分小波神經(jīng)網(wǎng)絡(luò)軟件故障預(yù)測技術(shù)。

(二)技術(shù)方案

本發(fā)明技術(shù)方案:差分小波神經(jīng)網(wǎng)絡(luò)軟件故障預(yù)測技術(shù)的構(gòu)建方法過程如下:

本發(fā)明所述方法中,引用dwnn來表述基于差分(即“difference”)與小波神經(jīng)網(wǎng)絡(luò)(即“wnn”)相結(jié)合的技術(shù)。

本發(fā)明一種差分小波神經(jīng)網(wǎng)絡(luò)軟件故障預(yù)測技術(shù)的構(gòu)建方法,其步驟如下:

步驟1、搜集大量被診斷軟件的歷史故障案例,針對被診斷軟件系統(tǒng)的特點(diǎn),依據(jù)故障信息相關(guān)、完整、非重復(fù)、非人為錯(cuò)誤操作四原則,篩選有效故障案例,按照故障發(fā)生時(shí)間的順序加入至創(chuàng)建的故障知識(shí)案例庫;

步驟2、計(jì)算故障間隔時(shí)間,按照故障知識(shí)案例庫中的排序,構(gòu)建原始混沌間隔時(shí)間序列;

步驟3、結(jié)合拓展后的多維時(shí)間序列,構(gòu)建故障間隔時(shí)間預(yù)測信息的訓(xùn)練樣本和預(yù)測樣本;

步驟4、對訓(xùn)練樣本和預(yù)測樣本進(jìn)行差分預(yù)處理,構(gòu)建訓(xùn)練差分時(shí)間序列和預(yù)測差分時(shí)間序列;

步驟5、通過相空間重構(gòu)法獲得多維差分時(shí)間序列。構(gòu)建訓(xùn)練網(wǎng)絡(luò)的輸入矩陣和預(yù)期輸出矩陣,該輸出矩陣會(huì)根據(jù)與網(wǎng)絡(luò)實(shí)際輸出的差別來調(diào)整連接權(quán)值,完成訓(xùn)練的過程;

步驟6、構(gòu)建基于差分小波神經(jīng)網(wǎng)絡(luò)的故障預(yù)測算法。首先要實(shí)現(xiàn)其核心技術(shù),即基于故障知識(shí)案例庫數(shù)據(jù)的網(wǎng)絡(luò)函數(shù)初始化,結(jié)合樣本分類和預(yù)測輸出,實(shí)現(xiàn)網(wǎng)絡(luò)權(quán)值修正和網(wǎng)絡(luò)參數(shù)數(shù)據(jù)的自動(dòng)學(xué)習(xí),并以此為依據(jù)判斷算法是否結(jié)束。算法結(jié)束后,即意味著網(wǎng)絡(luò)訓(xùn)練結(jié)束,然后使用訓(xùn)練好的網(wǎng)絡(luò)進(jìn)行預(yù)測;

步驟7、結(jié)合差分小波神經(jīng)網(wǎng)絡(luò)算法訓(xùn)練樣本和預(yù)期輸出的多維時(shí)間序列拓展方法,完成差分小波神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程,構(gòu)建基于故障時(shí)間信息的軟件故障預(yù)測系統(tǒng);

步驟8、在軟件故障預(yù)測系統(tǒng)中輸入預(yù)測差分時(shí)間序列,預(yù)測軟件最新的故障差分間隔時(shí)間信息;

步驟9、結(jié)合多維時(shí)間序列預(yù)測樣本,通過差分還原法將輸出的預(yù)測值轉(zhuǎn)換成軟件最新的故障間隔時(shí)間預(yù)測數(shù)據(jù);

步驟10、將上一輪故障差分間隔的預(yù)測時(shí)間信息視為已知預(yù)測差分序列,運(yùn)用迭代法實(shí)現(xiàn)多步故障預(yù)測技術(shù)指南,構(gòu)建軟件故障間隔時(shí)間信息數(shù)據(jù)庫。

其中,在步驟1中所述的“篩選有效故障案例”的做法,主要有以下幾點(diǎn):

(1)判斷故障報(bào)告信息是否相關(guān);

(2)判斷故障報(bào)告信息是否完整;

(3)判斷故障報(bào)告是否重復(fù);

(4)判斷故障是否是由人員的錯(cuò)誤操作造成;

若故障信息相關(guān)、完整、不重復(fù)、不是人員的錯(cuò)誤操作造成,那么可以認(rèn)為故障是由軟件代碼本身固有的缺陷被觸發(fā)而導(dǎo)致的故障,即有效故障。其中故障信息相關(guān)表示故障報(bào)告是因?yàn)檐浖旧戆l(fā)生故障而提出,而不是因?yàn)樾枨笮碌墓δ芏岢觥?/p>

其中,在步驟2中所述的“構(gòu)建原始混沌間隔時(shí)間序列”的做法如下:假設(shè)共收集了m個(gè)故障發(fā)生時(shí)間數(shù)據(jù),構(gòu)成原始混沌時(shí)間序列{t1,t2,...,tm},計(jì)算故障間隔時(shí)間ti=ti+1-ti,(i=1,2,...m-1)后,共m-1個(gè)故障間隔時(shí)間數(shù)據(jù),構(gòu)成m-1維時(shí)間序列{t1,t2,...,tm-1}。

其中,在步驟3中所述的“訓(xùn)練樣本和預(yù)測樣本”,是指拓展的多維時(shí)間序列,將其分為差分小波神經(jīng)網(wǎng)絡(luò)的訓(xùn)練部分和預(yù)測部分;令k=n-1,對于m-1個(gè)故障間隔時(shí)間數(shù)據(jù),我們規(guī)定訓(xùn)練部分m-k-2個(gè)故障間隔時(shí)間數(shù)據(jù),用于差分小波神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,預(yù)測部分k+1個(gè)數(shù)據(jù),用于故障間隔時(shí)間的預(yù)測。

其中,在步驟4中所述的“進(jìn)行差分預(yù)處理”的做法如下:根據(jù)差分公式有訓(xùn)練樣本差分故障間隔時(shí)間t(i-1)=ti-ti-1(i=2,3,...m-k-2),其中t(i-1)即為差分,{tt(1),tt(2),...,tt(m-k-3)}即構(gòu)成訓(xùn)練差分序列,共m-k-3個(gè)差分?jǐn)?shù)據(jù);對于預(yù)測樣本,則有tp(i-1)=ti-ti-1(i=m-k,m-k+1,...,m-1),將預(yù)測部分的k+1個(gè)故障間隔時(shí)間序列值轉(zhuǎn)化為差分序列{tp(m-k-1),tp(m-k),...,tp(m-2)},共k個(gè)差分?jǐn)?shù)據(jù);所以對總體樣本來說,共有m-3個(gè)故障間隔差分?jǐn)?shù)據(jù);差分?jǐn)?shù)據(jù)的下標(biāo)t和p分別代表訓(xùn)練和預(yù)測。

其中,在步驟5中所述的“通過相空間重構(gòu)法獲得多維差分時(shí)間序列”的做法如下:選定一個(gè)延遲時(shí)間t,將原來的混沌差分時(shí)間序列作漂移,從而獲得一組新的時(shí)間序列,最終得到一系列n維相空間的相點(diǎn),它們是

式中t為延遲時(shí)間,t為采樣時(shí)間,n<m-3。

“選定一個(gè)延遲時(shí)間t”的做法如下:求故障間隔時(shí)間序列的自相關(guān)、偏相關(guān)數(shù),繪制自相關(guān)和偏相關(guān)圖。依據(jù)自相關(guān)、偏相關(guān)系數(shù)的截尾、拖尾性,采用ar(p)、ma(q)或者arma(p,q)模型,求得模型階數(shù),即為延遲時(shí)間t。為簡化流程,本發(fā)明中默認(rèn)t=1。

其中,在步驟5中所述的“構(gòu)建訓(xùn)練網(wǎng)絡(luò)的輸入矩陣和預(yù)期輸出矩陣”,其做法如下:n作為時(shí)間序列延遲坐標(biāo)的維數(shù),表示可預(yù)測的最大時(shí)間維度。這里k=n-1,取多維差分時(shí)間序列的前k列作為訓(xùn)練樣本輸入層,第k+1列作為輸出層的期望輸出。即使用前k個(gè)差分{tt(1),tt(2),...,tt(k)}作為輸入,去預(yù)測第k+1個(gè)差分tt(k+1)。同理,使用{tt(2),tt(3),...,tt(k+1)}去預(yù)測tt(k+2),如此,直到預(yù)測到最后一個(gè)差分tt(m-k-3)為止。如此即可形成訓(xùn)練網(wǎng)絡(luò)輸入矩陣input和預(yù)期輸出矩陣output,可表示為:

其中,n可根據(jù)混沌動(dòng)力系統(tǒng)k熵值和關(guān)聯(lián)維數(shù)d確定,k=n-1。

其中,在步驟6中所述的“構(gòu)建基于差分小波神經(jīng)網(wǎng)絡(luò)的故障預(yù)測算法”,其做法如下:

(1)網(wǎng)絡(luò)初始化。隨機(jī)初始化小波函數(shù)伸縮因子ak、平移因子bk以及網(wǎng)絡(luò)連接權(quán)值ωij,ωjk,設(shè)置網(wǎng)絡(luò)學(xué)習(xí)速率η;

(2)樣本分類。把樣本分為訓(xùn)練樣本和測試樣本,訓(xùn)練樣本用于訓(xùn)練網(wǎng)絡(luò),測試樣本用于測試網(wǎng)絡(luò)預(yù)測精度;

(3)預(yù)期輸出。把訓(xùn)練樣本輸入網(wǎng)絡(luò),計(jì)算網(wǎng)絡(luò)預(yù)測輸出并計(jì)算網(wǎng)絡(luò)輸出和期望輸出的誤差ε;

(4)權(quán)值修正。根據(jù)誤差ε修正網(wǎng)絡(luò)權(quán)值和小波函數(shù)參數(shù),使網(wǎng)絡(luò)預(yù)測值逼近期望值;

(5)判斷算法是否結(jié)束,如沒有結(jié)束,返回(3);

(6)訓(xùn)練算法結(jié)束后,使用訓(xùn)練好的網(wǎng)絡(luò)進(jìn)行預(yù)測。

其中,在步驟7中所述的“構(gòu)建基于故障時(shí)間信息的軟件故障預(yù)測系統(tǒng)”,其做法如下:指將訓(xùn)練網(wǎng)絡(luò)已經(jīng)完成的輸入矩陣input和預(yù)期輸出矩陣output導(dǎo)入差分小波神經(jīng)網(wǎng)絡(luò)仿真環(huán)境中接受教師學(xué)習(xí)。使得軟件故障預(yù)測系統(tǒng)的網(wǎng)絡(luò)結(jié)構(gòu)逼近算法網(wǎng)絡(luò),提高系統(tǒng)整體可靠性和預(yù)測準(zhǔn)確性。

其中,在步驟8中所述的“預(yù)測軟件最新的故障差分間隔時(shí)間信息”是指將序列{tp(m-k-1),tp(m-k),...,tp(m-2)}作為故障預(yù)測系統(tǒng)的輸入,系統(tǒng)會(huì)輸出一個(gè)差分預(yù)測值tp(m-1)。

其中,在步驟9中所述的“通過差分還原法將輸出的預(yù)測值轉(zhuǎn)換成軟件最新的故障間隔時(shí)間預(yù)測數(shù)據(jù)”,其作法如下:逆向使用差分公式,即ti=ti-1+t(i-1),使用步驟8得到的預(yù)測值tp(m-1)加上原有的已知的最后一個(gè)故障間隔時(shí)間,即第m-1個(gè)故障間隔時(shí)間tm-1,則有tm=tm-1+tpm-1,tm即為最新的軟件故障間隔時(shí)間預(yù)測數(shù)據(jù)。

其中,在步驟10中所述的“運(yùn)用迭代法實(shí)現(xiàn)多步故障預(yù)測技術(shù)指南”,其做法如下:將步驟9中得到的差分預(yù)測值tp(m-1)加入到預(yù)測差分序列{tp(m-k-1),tp(m-k),...,tp(m-2)}中并實(shí)現(xiàn)序列更新,形成新的預(yù)測差分序列{tp(m-k),...,tp(m-2),tp(m-1)},重復(fù)迭代步驟9~步驟10,即可更新差分預(yù)測值tp(m)和故障間隔時(shí)間預(yù)測值tm+1。同樣,還可以將tp(m)加入到差分預(yù)測序列,再次重復(fù)步驟9~步驟10,即可進(jìn)行多步預(yù)測,即任意時(shí)間點(diǎn),時(shí)間段,故障間隔時(shí)間信息的預(yù)測,由此構(gòu)建軟件故障間隔時(shí)間信息數(shù)據(jù)庫。

通過上述步驟,可以完成對差分小波神經(jīng)網(wǎng)絡(luò)軟件故障預(yù)測技術(shù)的構(gòu)建,將經(jīng)過差分預(yù)處理后的故障間隔時(shí)間數(shù)據(jù)作為小波神經(jīng)網(wǎng)絡(luò)的輸入,然后經(jīng)過差分還原,即可進(jìn)行軟件故障間隔時(shí)間的預(yù)測。本發(fā)明適用于解決實(shí)際問題中的軟件故障時(shí)間預(yù)測問題,可以幫助軟件開發(fā)者利用已知的軟件故障時(shí)間信息,不需要其他數(shù)據(jù),即可預(yù)知未來可能發(fā)生的故障的具體時(shí)間,以便在軟件實(shí)際發(fā)生故障前做出應(yīng)對,減小損失,具有較高的實(shí)際應(yīng)用價(jià)值。

(三)優(yōu)點(diǎn)及功效

本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點(diǎn)在于:目前,使用神經(jīng)網(wǎng)絡(luò)的進(jìn)行預(yù)測往往都是單一的使用,比如使用bp神經(jīng)網(wǎng)絡(luò)預(yù)測,或者使用其他類型的神經(jīng)網(wǎng)絡(luò)。優(yōu)化也都停留在神經(jīng)網(wǎng)絡(luò)本身的參數(shù)優(yōu)化上,這雖然很有效果,但是優(yōu)化本身是一個(gè)工作量較大的工作,同時(shí),由于來源數(shù)據(jù)的不同,最優(yōu)參數(shù)也往往不同。針對一種數(shù)據(jù)就優(yōu)化一次參數(shù),工作量很大。而差分則多應(yīng)用于傳統(tǒng)的時(shí)間序列建模,但這些模型往往又不適用于非線性的時(shí)間序列。本發(fā)明則是在使用神經(jīng)網(wǎng)絡(luò)預(yù)測前,進(jìn)行數(shù)據(jù)的差分預(yù)處理,再使用神經(jīng)網(wǎng)絡(luò)預(yù)測出差分值,再差分還原即可得到預(yù)測效果較好的軟件故障時(shí)間預(yù)測,同時(shí),這適用于不同的來源數(shù)據(jù),可以減輕工作量。

附圖說明

圖1為本發(fā)明的總體步驟流程圖。

圖2為本發(fā)明的有效故障判斷流程圖。

圖3為本發(fā)明的相空間重構(gòu)實(shí)現(xiàn)架構(gòu)圖。

圖4為本發(fā)明的小波神經(jīng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)圖。

圖5為本發(fā)明基于差分小波神經(jīng)網(wǎng)絡(luò)的故障預(yù)測算法流程圖。

圖6為本發(fā)明迭代法多步預(yù)測流程圖。

圖中序號(hào)、符號(hào)、代號(hào)說明如下:

圖1中的“步驟1~10”即技術(shù)方案中對應(yīng)的步驟;

圖1,3中的“t”即時(shí)間序列延遲時(shí)間;

圖1,3中的“n”即時(shí)間序列延遲坐標(biāo)維數(shù);

圖3中的“g-p算法”即grass-berger-procaccia算法,是計(jì)算關(guān)聯(lián)維數(shù)的主要算法;

圖3中的“k熵”即kolmogorov熵,是用來判別系統(tǒng)在相空間中混沌運(yùn)動(dòng)性質(zhì)的物理量;

圖3中的“ar模型”、“ma模型”、“arma模型”分別指自回歸模型、滑動(dòng)平均模型、自回歸滑動(dòng)平均模型;

圖4中的“ωij”即輸入層和隱含層的連接權(quán)值;

圖4中的“ωjk”即隱含層和輸出層的連接權(quán)值。

具體實(shí)施方式

為使本發(fā)明要解決的技術(shù)問題、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖進(jìn)行詳細(xì)描述。

本發(fā)明提供了一種差分小波神經(jīng)網(wǎng)絡(luò)軟件故障預(yù)測技術(shù)的構(gòu)建方法。利用該方法構(gòu)建的技術(shù)可以對現(xiàn)有的趨于混沌的軟件故障間隔時(shí)間進(jìn)行較為準(zhǔn)確的預(yù)測。在這項(xiàng)技術(shù)中,首先將已有的歷史軟件故障時(shí)間序列進(jìn)行差分預(yù)處理,再將差分后的時(shí)間序列作為小波神經(jīng)網(wǎng)絡(luò)訓(xùn)練部分代碼所需的輸入和輸出,以此進(jìn)行訓(xùn)練,再使用訓(xùn)練好的網(wǎng)絡(luò)預(yù)測新的差分值,最后將預(yù)測出的差分進(jìn)行差分還原,即可得所需要的軟件故障時(shí)間預(yù)測。同時(shí),還可以將新得的預(yù)測差分?jǐn)?shù)據(jù)結(jié)合已有數(shù)據(jù)作為輸入,進(jìn)行多步預(yù)測,滿足更長預(yù)測的需求。

本發(fā)明一種差分小波神經(jīng)網(wǎng)絡(luò)軟件故障預(yù)測技術(shù)的構(gòu)建方法,如圖1所示,其具體構(gòu)建步驟如下:

步驟一:構(gòu)建軟件故障知識(shí)案例庫。其構(gòu)建方法是:

有效軟件故障案例集的篩選。搜集大量被診斷軟件的歷史故障案例,針對被診斷軟件系統(tǒng)的特點(diǎn),依據(jù)故障信息相關(guān)、完整、非重復(fù)、非人為錯(cuò)誤操作四原則,篩選出有效的案例集。篩選有效故障案例的做法,主要包括判斷故障報(bào)告信息是否相關(guān);判斷故障報(bào)告信息是否完整;判斷故障報(bào)告是否重復(fù);判斷故障是否是由人員的錯(cuò)誤操作造成,有效故障判斷準(zhǔn)則如圖2所示。若故障信息相關(guān)、完整、不重復(fù)、不是人員的錯(cuò)誤操作造成,那么可以認(rèn)為故障是由軟件代碼本身固有的缺陷被觸發(fā)而導(dǎo)致的故障,即有效故障。其中故障信息相關(guān)表示故障報(bào)告是因?yàn)檐浖旧戆l(fā)生故障而提出,而不是因?yàn)樾枨笮碌墓δ芏岢觥?/p>

按照故障發(fā)生時(shí)間為故障案例排序,加入故障知識(shí)案例庫。

步驟二、構(gòu)建原始混沌故障間隔時(shí)間序列。其構(gòu)建方法是:

計(jì)算故障間隔時(shí)間。

假設(shè)共收集了m個(gè)故障發(fā)生時(shí)間數(shù)據(jù),構(gòu)成原始混沌時(shí)間序列{t1,t2,...,tm},計(jì)算故障間隔時(shí)間ti=ti+1-ti,(i=1,2,...m-1)。

按排序構(gòu)建原始混沌間隔時(shí)間序列。

共計(jì)m-1個(gè)故障間隔時(shí)間數(shù)據(jù),構(gòu)成m-1維時(shí)間序列{t1,t2,...,tm-1}。

步驟三:構(gòu)建故障間隔時(shí)間預(yù)測信息的訓(xùn)練樣本和預(yù)測樣本。其構(gòu)建方法是:

將原始時(shí)間序列{t1,t2,...,tm-1}分為兩部分,即訓(xùn)練部分和預(yù)測部分。訓(xùn)練部分是將差分小波神經(jīng)網(wǎng)絡(luò)的訓(xùn)練部分所需的輸入和輸出,預(yù)測部分則是程序的預(yù)測部分所需的輸入。原始時(shí)間序列共m-1個(gè)故障間隔時(shí)間數(shù)據(jù),具體的分法則是訓(xùn)練部分m-k-2個(gè),預(yù)測部分k+1個(gè)。如此,訓(xùn)練樣本部分序列為{t1,t2,...,tm-k-2},預(yù)測樣本部分序列為{tm-k-1,tm-k,...,tm-1}。

步驟四:構(gòu)建訓(xùn)練差分時(shí)間序列和預(yù)測差分時(shí)間序列。其構(gòu)建方法是:

對訓(xùn)練樣本和預(yù)測樣本進(jìn)行差分預(yù)處理。

根據(jù)差分公式有訓(xùn)練樣本差分故障間隔時(shí)間t(i-1)=ti-ti-1(i=2,3,...m-k-2),其中t(i-1)即為差分,{tt(1),tt(2),...,tt(m-k-3)}即構(gòu)成訓(xùn)練差分序列,共m-k-3個(gè)差分?jǐn)?shù)據(jù)。對于預(yù)測樣本,則有,將預(yù)測部分的k+1個(gè)故障間隔時(shí)間序列值轉(zhuǎn)化為差分序列{tp(m-k-1),tp(m-k),...,tp(m-2)},共k個(gè)差分?jǐn)?shù)據(jù)。所以對總體樣本來說,共有m-3個(gè)故障間隔差分?jǐn)?shù)據(jù)。差分?jǐn)?shù)據(jù)的下標(biāo)t和p分別代表訓(xùn)練和預(yù)測。

步驟五:構(gòu)建訓(xùn)練網(wǎng)絡(luò)的輸入矩陣和預(yù)期輸出矩陣。其構(gòu)建方法是:

(1)通過相空間重構(gòu)法獲得多維時(shí)間序列。相空間重構(gòu)理論認(rèn)為,確定任一系統(tǒng)的狀態(tài)所需要的全部動(dòng)力學(xué)信息包含在該系統(tǒng)任一變量的時(shí)間序列中,把單變量時(shí)間序列嵌入到新的坐標(biāo)系中所得的狀態(tài)軌跡保留了原空間狀態(tài)軌道的最主要的特征。所以采用延遲之后時(shí)間序列的思想,我們就能對一維原始混沌時(shí)間序列進(jìn)行相空間重構(gòu),拓展時(shí)間序列的維數(shù)信息。相空間重構(gòu)實(shí)現(xiàn)架構(gòu)如圖3所示。

a)確定延遲坐標(biāo)的維數(shù)n。n作為時(shí)間序列延遲坐標(biāo)的維數(shù),表示可預(yù)測的最大時(shí)間維度。求延遲坐標(biāo)的維數(shù)n的方法主要包括關(guān)聯(lián)維數(shù)法和kolmogorov熵,簡稱k熵法。關(guān)聯(lián)維數(shù)和k熵都是可以用來判別系統(tǒng)在相空間中混沌運(yùn)動(dòng)性質(zhì)的物理量。關(guān)聯(lián)維數(shù)d與延遲坐標(biāo)的維數(shù)n具有n≥2d+1的關(guān)系,通過takens嵌入理論和grass-berger-procaccia算法,簡稱為g-p算法,可以計(jì)算得出關(guān)聯(lián)維數(shù)d。

k熵值的倒數(shù)常常被用來估計(jì)平均可預(yù)測時(shí)間維度。其實(shí)際意義與延遲坐標(biāo)的維數(shù)相當(dāng),本發(fā)明認(rèn)為兩者近似,故而將t與n等價(jià)。常用極大似然法求解k熵。即由吸引子上初始非常接近的兩個(gè)軌道開始發(fā)散的平均時(shí)間求得熵的估計(jì)值。

考察吸引子上的兩個(gè)初始點(diǎn),它們之間的初始距離小于某一個(gè)特定的距離r0,記下它們分離至其間距大于r0所需的時(shí)間t0,根據(jù)滿足條件的所有點(diǎn)的分離時(shí)間的平均值計(jì)算k熵的大小。遍歷m維相空間,從中找到滿足條件的點(diǎn)對共n對,對每個(gè)點(diǎn)對求出相應(yīng)的t值,得到樣本(t1,t2,...tn)的概率pk,利用pk進(jìn)行極大似然估計(jì),可以得到k熵的極大似然估計(jì)值knl。

b)確定延遲時(shí)間t。首先,計(jì)算故障間隔時(shí)間序列{t1,t2,...,tm-1}的自相關(guān)、偏相關(guān)數(shù),然后繪制自相關(guān)和偏相關(guān)圖。依據(jù)自相關(guān)、偏相關(guān)系數(shù)的截尾、拖尾性進(jìn)行模型的選擇,備選模型包括ar(p)模型,ma(q)模型,arma(p,q)模型。最后求得的模型階數(shù)即為延遲時(shí)間t。本發(fā)明為簡化流程,默認(rèn)t=1。自相關(guān)函數(shù)的含義是同一時(shí)間函數(shù)在瞬時(shí)t和t+τ的兩個(gè)值相乘積的平均值作為延遲時(shí)間τ的函數(shù),它是信號(hào)與延遲后信號(hào)之間相似性的度量。ar模型、ma模型以及arma模型則是廣為人知的時(shí)間序列模型。

c)拓展多維時(shí)間序列。n作為時(shí)間序列延遲坐標(biāo)的維數(shù),表示可預(yù)測的最大時(shí)間維度。n的確定決定了多維時(shí)間序列的維度,再按延遲時(shí)間τ將原來的一維混沌時(shí)間序列(t(i))作飄移,拓展成多維時(shí)間序列,最終得到一系列n維相空間的相點(diǎn),它們是

式中t為采樣時(shí)間,n<m-3。

(2)確定訓(xùn)練樣本輸入層和輸出層的期望輸出。

取k=n-1,將多維差分時(shí)間序列的前k列作為訓(xùn)練樣本網(wǎng)絡(luò)輸入層,第k+1列作為輸出層的期望輸出。未來的工作中將用前k個(gè)差分{tt(1),tt(2),...,tt(k)}作為輸入,去預(yù)測第k+1個(gè)差分tt(k+1)。同理,使用{tt(2),tt(3),...,tt(k+1)}去預(yù)測tt(k+2),如此,直到預(yù)測到最后一個(gè)差分tt(m-k-3)為止。如此即可形成訓(xùn)練網(wǎng)絡(luò)輸入矩陣input和預(yù)期輸出矩陣output,可表示為:

并將訓(xùn)練網(wǎng)絡(luò)的輸入矩陣和預(yù)期輸出矩陣加入故障知識(shí)案例庫。

步驟六:構(gòu)建基于差分小波神經(jīng)網(wǎng)絡(luò)的故障預(yù)測算法。其構(gòu)建方法是:

實(shí)現(xiàn)其核心技術(shù),即基于故障知識(shí)案例庫數(shù)據(jù)的網(wǎng)絡(luò)函數(shù)初始化。包括隨機(jī)初始化小波函數(shù)伸縮因子ak、平移因子bk以及網(wǎng)絡(luò)連接權(quán)值ωij,ωjk,設(shè)置網(wǎng)絡(luò)學(xué)習(xí)速率η,小波神經(jīng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖4所示。完成了網(wǎng)絡(luò)函數(shù)初始化的工作,接下來就是對樣本進(jìn)行分類,即把樣本分為訓(xùn)練樣本和測試樣本,訓(xùn)練樣本用于訓(xùn)練網(wǎng)絡(luò),測試樣本用于測試網(wǎng)絡(luò)預(yù)測精度。繼而把訓(xùn)練樣本輸入網(wǎng)絡(luò),計(jì)算網(wǎng)絡(luò)預(yù)測輸出并計(jì)算網(wǎng)絡(luò)輸出和期望輸出的誤差ε。接下來的工作是權(quán)值修正,根據(jù)誤差修正網(wǎng)絡(luò)權(quán)值和小波函數(shù)參數(shù),使網(wǎng)絡(luò)預(yù)測值逼近期望值,實(shí)現(xiàn)網(wǎng)絡(luò)參數(shù)數(shù)據(jù)的自動(dòng)學(xué)習(xí)。最后的工作就是根據(jù)輸出的誤差ε判斷算法是否結(jié)束,若算法未結(jié)束,即返回輸入訓(xùn)練樣本,輸出樣本預(yù)測值,并結(jié)合預(yù)期輸出值計(jì)算輸出誤差ε的工作;若算法結(jié)束,即意味著網(wǎng)絡(luò)訓(xùn)練結(jié)束,就可以使用訓(xùn)練好的網(wǎng)絡(luò)針對未來軟件故障時(shí)間信息的進(jìn)行預(yù)測。該算法具體實(shí)現(xiàn)如下所示:

本算法流程圖如圖5所示。

步驟七:完成差分小波神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程,構(gòu)建基于時(shí)間故障信息的軟件故障預(yù)測系統(tǒng)。其構(gòu)建方法是:

結(jié)合差分小波神經(jīng)網(wǎng)絡(luò)算法訓(xùn)練樣本和預(yù)期輸出的多維時(shí)間序列拓展方法,將訓(xùn)練網(wǎng)絡(luò)已經(jīng)完成的輸入矩陣input和預(yù)期輸出矩陣output導(dǎo)入差分小波神經(jīng)網(wǎng)絡(luò)仿真環(huán)境中接受教師學(xué)習(xí)。使得軟件故障預(yù)測系統(tǒng)的網(wǎng)絡(luò)結(jié)構(gòu)逼近算法網(wǎng)絡(luò),提高系統(tǒng)整體可靠性和預(yù)測準(zhǔn)確性。

步驟八:實(shí)現(xiàn)軟件最新故障差分間隔時(shí)間信息的預(yù)測。

差分預(yù)測值的輸出。

將預(yù)測差分時(shí)間序列{tp(m-k-1),tp(m-k),...,tp(m-2)}作為故障預(yù)測系統(tǒng)的輸入,系統(tǒng)會(huì)輸出一個(gè)差分預(yù)測值tp(m-1)。

步驟九:實(shí)現(xiàn)輸出的預(yù)測值與軟件最新的故障間隔時(shí)間預(yù)測之間的數(shù)據(jù)轉(zhuǎn)換。其實(shí)現(xiàn)具體流程是:

逆向使用差分公式ti=ti-1+t(i-1),使用最新輸出的差分預(yù)測值tp(m-1)加上原有已知的最后一個(gè)故障間隔時(shí)間,即第m-1個(gè)故障間隔時(shí)間tm-1,得到tm=tm-1+tpm-1,tm即為最新的軟件故障間隔時(shí)間預(yù)測數(shù)據(jù)。

步驟十:構(gòu)建軟件故障間隔時(shí)間信息數(shù)據(jù)庫。其構(gòu)建方法是:

更新故障間隔時(shí)間信息。

將上一輪故障差分間隔的預(yù)測時(shí)間信息視為已知預(yù)測差分序列,就是將差分預(yù)測值tp(m-1)加入到預(yù)測差分序列{tp(m-k-1),tp(m-k),...,tp(m-2)}中并實(shí)現(xiàn)序列更新,形成新的預(yù)測差分序列{tp(m-k),...,tp(m-2),tp(m-1)}。

迭代法實(shí)現(xiàn)多步故障預(yù)測技術(shù)指南。

即提供使得本系統(tǒng)不僅可以實(shí)現(xiàn)對軟件故障信息同時(shí)間單步預(yù)測,還可以實(shí)現(xiàn)同時(shí)間、同次的多步預(yù)測,甚至隔步預(yù)測,具體做法就是重復(fù)迭代步驟九到步驟十,更新差分預(yù)測值tp(m)和故障間隔時(shí)間預(yù)測值tm+1。同樣,還可以將tp(m)加入到差分預(yù)測序列,再次重復(fù)步驟九到步驟十,即可進(jìn)行多步預(yù)測,即任意時(shí)間點(diǎn),時(shí)間段,故障間隔時(shí)間信息的預(yù)測,由此構(gòu)建軟件故障間隔時(shí)間信息數(shù)據(jù)庫。迭代法多步預(yù)測流程如圖6所示。

通過上述步驟,可以完成對差分小波神經(jīng)網(wǎng)絡(luò)軟件故障預(yù)測技術(shù)的構(gòu)建。在這項(xiàng)技術(shù)中,我們對于已有的原始?xì)v史軟件故障時(shí)間序列進(jìn)行差分預(yù)處理,使其變得平穩(wěn)化,再將差分后的時(shí)間序列作為小波神經(jīng)網(wǎng)絡(luò)的輸入和輸出,以此進(jìn)行訓(xùn)練,再使用訓(xùn)練好的網(wǎng)絡(luò)來進(jìn)行預(yù)測,最后將預(yù)測出的時(shí)間序列進(jìn)行差分還原,即可得所需要的軟件故障時(shí)間預(yù)測。使用這一技術(shù)可以克服單一使用神經(jīng)網(wǎng)絡(luò)進(jìn)行預(yù)測的預(yù)測誤差過大的問題,可以得出較為準(zhǔn)確的預(yù)測值。

該故障預(yù)測技術(shù)結(jié)合差分?jǐn)?shù)據(jù)預(yù)處理方法和小波神經(jīng)網(wǎng)絡(luò)技術(shù)進(jìn)行構(gòu)建,形成較為準(zhǔn)確的差分小波神經(jīng)網(wǎng)絡(luò)軟件故障預(yù)測技術(shù)。

本發(fā)明未詳細(xì)闡述部分屬于本領(lǐng)域公知技術(shù)。

以上所述,僅為本發(fā)明部分具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本領(lǐng)域的人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1