趙永亮,于倩,鄧博,韓麗君,高紅梅
(西安九天數(shù)智信息科技有限公司,陜西西安 710086)
近年來(lái),科技的進(jìn)步促使各種精密設(shè)備小型化、多功能化,相關(guān)的設(shè)計(jì)文件和圖紙也越來(lái)越多[1-2]。如何快速分析設(shè)備故障發(fā)生的原因、制定故障解決對(duì)策成為一個(gè)熱點(diǎn)問(wèn)題。傳統(tǒng)設(shè)備故障診斷主要依靠人工故障排除法,過(guò)于依靠經(jīng)驗(yàn)豐富的專(zhuān)家且缺少對(duì)故障發(fā)生原因、位置、模式進(jìn)行系統(tǒng)性的描述,故障解決過(guò)程相對(duì)較慢[3-5]。
目前,人工智能領(lǐng)域中機(jī)器學(xué)習(xí)發(fā)展迅速。作為一個(gè)重要的分支,深度學(xué)習(xí)因其出色的數(shù)據(jù)特征提取能力被廣泛應(yīng)用在目標(biāo)識(shí)別等領(lǐng)域[6-8]。然而,隨著人們對(duì)深度學(xué)習(xí)網(wǎng)絡(luò)模型訓(xùn)練速度和數(shù)據(jù)處理能力要求的不斷提升,基于單機(jī)模式的訓(xùn)練過(guò)程難以滿(mǎn)足需求,分布式深度學(xué)習(xí)訓(xùn)練方法成為提升計(jì)算能力的有效途徑[9-16]。
針對(duì)以上問(wèn)題,該文提出基于博弈論及機(jī)器學(xué)習(xí)的最優(yōu)化算法來(lái)實(shí)現(xiàn)設(shè)備故障診斷的快速響應(yīng)。其利用海量、多類(lèi)型數(shù)據(jù)作為故障診斷的樣本數(shù)據(jù),實(shí)現(xiàn)故障智能識(shí)別。
故障分析診斷系統(tǒng)的目的在于通過(guò)數(shù)據(jù)和知識(shí)驅(qū)動(dòng),實(shí)現(xiàn)設(shè)備故障的產(chǎn)生機(jī)理分析與故障預(yù)警等功能,達(dá)到資源與能源利用效率最高的目的。而優(yōu)化算法則是提升海量數(shù)據(jù)、案例內(nèi)容數(shù)據(jù)處理能力的重要技術(shù),關(guān)系到故障分析診斷的速度和精度。文中通過(guò)對(duì)設(shè)備設(shè)計(jì)原理、關(guān)鍵元器件、故障事件信息、故障維護(hù)信息以及設(shè)備日常監(jiān)測(cè)數(shù)據(jù)等核心信息的梳理,構(gòu)建了設(shè)備知識(shí)圖譜,并以此為故障診斷模型的訓(xùn)練樣本;利用深度學(xué)習(xí)網(wǎng)絡(luò)構(gòu)建故障診斷模型,提高對(duì)知識(shí)圖譜的數(shù)據(jù)挖掘能力;最后將博弈論(GT)引入到分布式深度學(xué)習(xí)網(wǎng)絡(luò)計(jì)算資源的分配策略中,提高了深度學(xué)習(xí)網(wǎng)絡(luò)模型的計(jì)算能力。具體流程如圖1 所示。
圖1 故障診斷流程示意圖
深度學(xué)習(xí)是機(jī)器學(xué)習(xí)的一個(gè)重要分支,通過(guò)模擬人類(lèi)大腦神經(jīng)元之間傳遞、處理數(shù)據(jù)的模式,進(jìn)行海量數(shù)據(jù)潛在邏輯關(guān)系的分析挖掘。與人類(lèi)神經(jīng)網(wǎng)絡(luò)不同的是,深度學(xué)習(xí)是一種多層神經(jīng)網(wǎng)絡(luò),具有輸入層、隱藏層和輸出層,具體結(jié)構(gòu)如圖2 所示。其中,為了達(dá)到最佳的“學(xué)習(xí)”效果,通常需要有多層隱藏層。但是隱藏層的增多,層與層之間的網(wǎng)絡(luò)參數(shù)也隨之增多,訓(xùn)練過(guò)程將變得復(fù)雜。因此,合適的隱藏層層數(shù)和神經(jīng)元個(gè)數(shù)決定著故障診斷的精準(zhǔn)度,也影響著診斷時(shí)間的長(zhǎng)短。文中引入博弈論來(lái)確定隱藏層層數(shù)和神經(jīng)元的個(gè)數(shù),來(lái)實(shí)現(xiàn)最佳的故障診斷優(yōu)化算法。
圖2 深度學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu)示意圖
利用深度學(xué)習(xí)網(wǎng)絡(luò)來(lái)進(jìn)行設(shè)備故障的快速診斷需要其具有一定的計(jì)算資源,通常由于計(jì)算能力和能源、資源的限制,導(dǎo)致無(wú)法較好地執(zhí)行密集型計(jì)算任務(wù)。針對(duì)這種現(xiàn)象,文中采用分布式深度學(xué)習(xí)模型進(jìn)行模型的訓(xùn)練,并將博弈論和移動(dòng)邊緣的卸載策略相結(jié)合,將不同計(jì)算節(jié)點(diǎn)有策略地納入訓(xùn)練中,實(shí)現(xiàn)訓(xùn)練效率的提升。分布式深度學(xué)習(xí)網(wǎng)絡(luò)的最佳訓(xùn)練卸載問(wèn)題是一個(gè)具有多種約束條件(時(shí)延小、能耗?。┑膬?yōu)化問(wèn)題,基于此可將優(yōu)化算法的目標(biāo)函數(shù)設(shè)置為能量消耗最低、時(shí)間延遲最小的訓(xùn)練數(shù)據(jù)卸載策略問(wèn)題。圖3 為針對(duì)上述優(yōu)化問(wèn)題設(shè)計(jì)的算法流程。
圖3 分布式深度學(xué)習(xí)模型訓(xùn)練數(shù)據(jù)卸載算法流程圖
為了快速響應(yīng)對(duì)故障原因、模式等情況的分析,需要構(gòu)建各個(gè)設(shè)備的知識(shí)圖譜,如圖4所示。第一步,在相關(guān)專(zhuān)家的指導(dǎo)下圍繞該設(shè)備進(jìn)行概念建模,包含了設(shè)備設(shè)計(jì)原理、關(guān)鍵元器件、故障事件信息、故障維護(hù)信息等核心概念,并輸出Schema定義。第二步,根據(jù)Schema 定義將相關(guān)內(nèi)容劃分為結(jié)構(gòu)化、半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù),并進(jìn)行知識(shí)抽取。第三步,利用抽取的結(jié)果進(jìn)行知識(shí)融合。依據(jù)實(shí)體對(duì)齊、類(lèi)型對(duì)齊以及合計(jì)屬性對(duì)齊的原則,建立知識(shí)之間的關(guān)聯(lián)關(guān)系。為了保證融合的有效性,將相關(guān)領(lǐng)域的專(zhuān)業(yè)術(shù)語(yǔ)、技術(shù)規(guī)范作為參照標(biāo)準(zhǔn)。第四步,將融合后的知識(shí)圖譜按照應(yīng)用功能、場(chǎng)景進(jìn)行分類(lèi)存儲(chǔ),形成全方位的故障知識(shí)庫(kù)。
圖4 設(shè)備故障知識(shí)圖譜構(gòu)建流程示意圖
圖5 為基于知識(shí)圖譜的故障診斷推理框架示意圖,將海量的知識(shí)圖譜作為深度學(xué)習(xí)網(wǎng)絡(luò)的樣本數(shù)據(jù),參與故障診斷模型的訓(xùn)練。由于知識(shí)圖譜中數(shù)據(jù)量較大,且當(dāng)設(shè)備發(fā)生故障時(shí),需要較快地診斷響應(yīng)速度。因此文中采用分布式深度學(xué)習(xí)網(wǎng)絡(luò)進(jìn)行故障診斷模型的構(gòu)建,并將博弈論引入到分布式計(jì)算資源的分配,實(shí)現(xiàn)深度學(xué)習(xí)網(wǎng)絡(luò)模型的優(yōu)化。
圖5 基于知識(shí)圖譜的故障診斷推理框架示意圖
如圖6 所示,深度學(xué)習(xí)網(wǎng)絡(luò)的基本結(jié)構(gòu)為RBM,RBM 為兩層結(jié)構(gòu):輸入層、輸出層。在進(jìn)行深度學(xué)習(xí)網(wǎng)絡(luò)模型訓(xùn)練時(shí),需要對(duì)網(wǎng)絡(luò)參數(shù)進(jìn)行初始化。這些參數(shù)有輸入層、輸出層的偏置參數(shù)a、b和RBM網(wǎng)絡(luò)結(jié)構(gòu)中神經(jīng)元之間的連接權(quán)重w。合理且合適的初始化參數(shù)可以避免模型訓(xùn)練時(shí)出現(xiàn)梯度消失或梯度爆炸的情況,進(jìn)而提高故障診斷的識(shí)別率。文中采用極小值隨機(jī)初始化的方式,并在Matlab 軟件環(huán)境中進(jìn)行上述參數(shù)的初始化,公式如下:
圖6 基于深度學(xué)習(xí)網(wǎng)絡(luò)的故障診斷模型示意圖
式中,n、m分別代表可視層和隱藏層中神經(jīng)元的個(gè)數(shù)。zeros(m,1)函數(shù)代表產(chǎn)生向量元素全部為0的n×1 階矩陣。normrnd(0,0.01,[m,n])函數(shù)可生成服從正態(tài)分布(0,0.01)的隨機(jī)m×n階矩陣。
確定參數(shù)初始化數(shù)值后,需要確定隱藏層層數(shù)和每層隱藏層的神經(jīng)元個(gè)數(shù),文中引入博弈論進(jìn)行隱藏層和神經(jīng)元個(gè)數(shù)的選擇。在博弈論中,需要形成一種所有參與者均滿(mǎn)意的方案,這種策略組合被稱(chēng)為納什均衡。因?yàn)闈撛诓┺闹辽儆幸粋€(gè)NE解,NE的確定可以等價(jià)表示為所有計(jì)算節(jié)點(diǎn)的單個(gè)函數(shù)的優(yōu)化。文中定義了一種非合作博弈,具體形式為h(N,M,A,G)。其中,N為隱藏層層數(shù),M為神經(jīng)元個(gè)數(shù),A為深度學(xué)習(xí)網(wǎng)絡(luò)執(zhí)行策略,G為收益函數(shù)。文中采用數(shù)據(jù)并行的分布式深度學(xué)習(xí)并行策略,即每次模型訓(xùn)練時(shí),隨機(jī)選擇多個(gè)小批量的訓(xùn)練數(shù)據(jù)在不同的計(jì)算節(jié)點(diǎn)上進(jìn)行模型訓(xùn)練。其具體訓(xùn)練流程為:
1)每個(gè)計(jì)算節(jié)點(diǎn)分別從通信網(wǎng)絡(luò)上或者硬盤(pán)上讀取一定容量的數(shù)據(jù),并發(fā)送至內(nèi)存中;
2)將數(shù)據(jù)從CPU 內(nèi)存轉(zhuǎn)移到GPU 內(nèi)存中,并加載CPU kernel,使得深度學(xué)習(xí)網(wǎng)絡(luò)模型由前向后逐層進(jìn)行計(jì)算;
3)計(jì)算損失函數(shù),并啟動(dòng)反向傳播,逐層計(jì)算梯度值;
4)更新各個(gè)計(jì)算節(jié)點(diǎn)的梯度值,并基于新的梯度值更新神經(jīng)網(wǎng)絡(luò)參數(shù)。
以上過(guò)程即為深度學(xué)習(xí)網(wǎng)絡(luò)模型的一次訓(xùn)練過(guò)程,又被稱(chēng)為一次迭代。將數(shù)據(jù)保存在不同計(jì)算節(jié)點(diǎn)內(nèi)存的過(guò)程分為本地執(zhí)行和卸載到異地執(zhí)行。本地執(zhí)行的成本函數(shù)僅受到設(shè)備CPU 頻率Flocal的影響,本地執(zhí)行計(jì)算任務(wù)Ci的時(shí)間和能量消耗為:
式中,elocal為每個(gè)CPU 在單個(gè)計(jì)算周期內(nèi)消耗能量的系數(shù)。卸載到異地執(zhí)行即將計(jì)算任務(wù)卸載到相鄰計(jì)算節(jié)點(diǎn),該方式下的時(shí)間延遲和能量成本分別為:
該節(jié)基于Matlab 軟件,通過(guò)數(shù)值仿真來(lái)驗(yàn)證文中基于博弈論和深度學(xué)習(xí)的最優(yōu)化算法的有效性。文中使用的軟硬件環(huán)境配置如表1 所示。
表1 計(jì)算機(jī)軟硬件配置
Matlab 仿真環(huán)境的設(shè)置如下:模擬分布式深度學(xué)習(xí)網(wǎng)絡(luò)訓(xùn)練任務(wù)的卸載數(shù)據(jù)量大小為[100,800]kbits,每計(jì)算1 bit所花費(fèi)的周期為476 cycles/bit。隱藏層層數(shù)和神經(jīng)元個(gè)數(shù)對(duì)故障診斷準(zhǔn)確度的影響如圖7 所示。
圖7 隱藏層層數(shù)和神經(jīng)元個(gè)數(shù)對(duì)故障診斷準(zhǔn)確度的影響
從圖7 中可以看出,隱藏層層數(shù)和神經(jīng)元個(gè)數(shù)的增加均會(huì)提高故障診斷的準(zhǔn)確度,并且不同的隱藏層層數(shù)條件下,診斷準(zhǔn)確度均會(huì)穩(wěn)定在一定的數(shù)值。這表明分布式深度學(xué)習(xí)網(wǎng)絡(luò)模型是穩(wěn)定的。值得注意的是,隱藏層層數(shù)的增加可使分布式深度學(xué)習(xí)網(wǎng)絡(luò)模型更快地達(dá)到收斂值。因此,文中深度學(xué)習(xí)網(wǎng)絡(luò)被設(shè)置為4 層隱藏層、每層各40 個(gè)神經(jīng)元。
在進(jìn)行博弈論非合作博弈策略驗(yàn)證時(shí),假定每個(gè)計(jì)算任務(wù)的最大時(shí)延服從均勻分布U[2,10],其時(shí)延單位為s,每個(gè)計(jì)算節(jié)點(diǎn)最初均為本地執(zhí)行任務(wù)狀態(tài)。當(dāng)有密集型訓(xùn)練任務(wù)時(shí),每次均可以選擇最優(yōu)計(jì)算卸載策略作為優(yōu)化算法中下一次決策迭代的唯一更新。圖8 為求解NE解的分布式深度學(xué)習(xí)網(wǎng)絡(luò)的性能評(píng)估情況。從圖中可以看出,在經(jīng)歷了有限次迭代后,分布式深度學(xué)習(xí)網(wǎng)絡(luò)優(yōu)化算法會(huì)逐漸收斂到某個(gè)值,該值為博弈的平衡點(diǎn),證明了NE解的存在。
圖8 GT的收斂性
圖9 為不同優(yōu)化策略系統(tǒng)總消耗的比較,TOS 為總卸載方案,GOS 為基于深度學(xué)習(xí)的卸載方案,GT為基于博弈論的分布式深度學(xué)習(xí)卸載方案。其中,TOS 是將所有的計(jì)算任務(wù)均下發(fā)至系統(tǒng)服務(wù)器;GOS 利用深度網(wǎng)絡(luò)考慮了傳輸數(shù)據(jù)量的大小和網(wǎng)絡(luò)條件,但并未考慮數(shù)據(jù)傳輸所造成的系統(tǒng)延遲和能量消耗。從圖中可以看出,隨著任務(wù)數(shù)據(jù)量的增多,3 種優(yōu)化算法的總消耗均有所上升,但是基于GT 的優(yōu)化策略顯著低于另外兩種優(yōu)化算法。與對(duì)照組相比,文中方案將系統(tǒng)總消耗降低了18.9%。
圖9 不同優(yōu)化策略算法下系統(tǒng)總消耗的比較
文中針對(duì)精密設(shè)備故障診斷響應(yīng)速度慢的問(wèn)題,通過(guò)將深度學(xué)習(xí)、博弈論和移動(dòng)邊緣計(jì)算相結(jié)合,以時(shí)間消耗與能量消耗為優(yōu)化目標(biāo),提出了基于博弈論及深度學(xué)習(xí)網(wǎng)絡(luò)的故障診斷最優(yōu)化算法。經(jīng)測(cè)試,文中所述方案與其他優(yōu)化算法相比,顯著降低了系統(tǒng)能量的消耗。