李紹宗
摘 要:針對機器學(xué)習(xí)(Machine Learning,ML)模型訓(xùn)練困難和數(shù)據(jù)量大,難以在傳統(tǒng)故障決策系統(tǒng)中同步進行訓(xùn)練與診斷問題,提出分布式服務(wù)型層次結(jié)構(gòu)的軟件體系結(jié)構(gòu)。通過改進軟件體系結(jié)構(gòu),不僅能夠?qū)崿F(xiàn)訓(xùn)練與診斷的完全分離,提高系統(tǒng)實時性,而且能進一步解除不同組件之間的耦合性,更加便于系統(tǒng)維護。提出訓(xùn)練機概念,專門對機器學(xué)習(xí)模型進行訓(xùn)練,以提高模型訓(xùn)練效率。使用Web Service技術(shù)作為系統(tǒng)連接子連接系統(tǒng)構(gòu)件,為在線決策系統(tǒng)提供服務(wù),能夠滿足實際應(yīng)用需求。通過優(yōu)化軟件體系結(jié)構(gòu),優(yōu)化系統(tǒng)物理架構(gòu),有效提高故障決策系統(tǒng)的適應(yīng)性和實時性。
關(guān)鍵詞:機器學(xué)習(xí);故障決策系統(tǒng);分布式服務(wù)型層次結(jié)構(gòu);訓(xùn)練機;連接子
DOIDOI:10.11907/rjdk.181142
中圖分類號:TP303
文獻標(biāo)識碼:A 文章編號:1672-7800(2018)010-0032-04
英文摘要Abstract:In machine learning,there exists model training difficulties and large amount of data,and it is difficult to train and diagnose traditional fault decision system at the same time.We propose the software architecture of distributed service hierarchy by improving the software architecture,which can not only achieve a separation in the training and diagnosing and increase the real-time performance of system,but also can further remove the coupling between different components and it is more convenient for system maintenance.At the same time,we put forward the concept of training machine which is used to train machine learning model specially and improve the model training efficiency.In practice,the system uses the Web Service technology as the system connector to connect the system components,provides the service for the online decision system,and can meet the practical application requirements.Therefore,the adaptability and real-time performance of the fault decision system are achieved by optimizing the software architecture and the physical architecture of the system.
英文關(guān)鍵詞Key Words:machine learning; fault decision system; distributed service hierarchy; training machine; connector
0 引言
在工業(yè)4.0時代浪潮下,有關(guān)機器學(xué)習(xí)的故障決策系統(tǒng)研究日益受到重視。之前機器學(xué)習(xí)一直作為輔助決策應(yīng)用于專家決策系統(tǒng),結(jié)合專家系統(tǒng)的邏輯推理能力和機器學(xué)習(xí)的魯棒性、學(xué)習(xí)能力[1],決策系統(tǒng)無法擺脫現(xiàn)有知識理論約束,無法挖掘數(shù)據(jù)中的隱性知識。為此,本文設(shè)計了一種完全基于機器學(xué)習(xí)的故障決策系統(tǒng)。
實時故障決策系統(tǒng)在生產(chǎn)中能夠起到降低維護成本、提高生產(chǎn)效率、減小財產(chǎn)損失、提高可靠性、避免事故等作用。傳統(tǒng)的故障決策系統(tǒng)是基于故障本體的,也就是說必須了解本體的工作原理才能開發(fā)出該本體的故障分析系統(tǒng)[2]。隨著生產(chǎn)工藝的提高、生產(chǎn)材料的更換,傳統(tǒng)決策系統(tǒng)不能很好滿足生產(chǎn)的更新?lián)Q代,軟件適應(yīng)性(software flexibility)[3]差。
大數(shù)據(jù)時代,傳統(tǒng)決策系統(tǒng)難以處理爆炸性增長的數(shù)據(jù)。使用機器學(xué)習(xí)模型進行故障決策,能夠解決大數(shù)據(jù)給故障決策系統(tǒng)帶來的建模困難問題。但由于機器學(xué)習(xí)模型甚多,過程復(fù)雜,訓(xùn)練困難,導(dǎo)致系統(tǒng)實時性差。
基于以上兩點,在保證系統(tǒng)可用、穩(wěn)定、準(zhǔn)確的基礎(chǔ)上,利用分布式服務(wù)對系統(tǒng)的實時性以及擴展性進行改進,以保證系統(tǒng)實用性。
1 機器學(xué)習(xí)模型
1.1 機器學(xué)習(xí)模型種類
作為人工智能的最前沿技術(shù),機器學(xué)習(xí)以強大的擬合、分類、預(yù)測能力在設(shè)備故障分析中嶄露頭角,并且取得了不凡成績。機器學(xué)習(xí)就是通過假設(shè)、迭代更新參數(shù),擬合數(shù)據(jù)集中存在的線性或非線性關(guān)系,建立數(shù)據(jù)空間與故障空間的一種對應(yīng)關(guān)系,從而做到故障分析以及基于數(shù)據(jù)的故障決策。
機器學(xué)習(xí)模型根據(jù)需要解決問題的種類可劃分為[4]:
(1)監(jiān)督學(xué)習(xí)。指給定一組樣本輸入X與它們的結(jié)果Y,監(jiān)督學(xué)習(xí)的目標(biāo)是產(chǎn)生一個通用映射函數(shù)f,使每個輸入都有確定的輸出,即Y=f(x)。
(2)無監(jiān)督學(xué)習(xí)。指學(xué)習(xí)不知道結(jié)果的樣本數(shù)據(jù),即Y未知。所以主要是學(xué)習(xí)樣本輸入數(shù)據(jù)的結(jié)構(gòu),發(fā)現(xiàn)數(shù)據(jù)中隱含的關(guān)聯(lián)。
(3)強化學(xué)習(xí)。指算法對不同的環(huán)境作出不同的反應(yīng),然后通過收益函數(shù)不斷對算法進行優(yōu)化,直至模型達到近似最優(yōu)。
將機器學(xué)習(xí)應(yīng)用到故障決策系統(tǒng)基于以下3點[5]:①數(shù)據(jù)的爆炸性增長完全依靠人工處理不現(xiàn)實;②機器學(xué)習(xí)算法能夠發(fā)現(xiàn)人尚未了解的隱性知識;③機器學(xué)習(xí)能夠很大程度上擺脫個人因素影響,使結(jié)果更加客觀。
1.2 機器學(xué)習(xí)流程
從系統(tǒng)概念設(shè)計角度出發(fā),機器學(xué)習(xí)組成如圖1所示,其中展示了機器學(xué)習(xí)流程,從數(shù)據(jù)獲取到得到模型并部署到生產(chǎn)系統(tǒng)中。
2 決策系統(tǒng)設(shè)計
2.1 分布式服務(wù)型層次結(jié)構(gòu)
作為控制軟件復(fù)雜性、提高軟件系統(tǒng)質(zhì)量、支持軟件開發(fā)和復(fù)用的重要手段之一,軟件體系結(jié)構(gòu)(software architecture,簡稱SA)自提出以來,日益受到軟件行業(yè)關(guān)注,并發(fā)展成為軟件工程的一個重要研究領(lǐng)域[6]。
在層次結(jié)構(gòu)上提出服務(wù)型層次結(jié)構(gòu)體系。所謂分布式服務(wù)型層次結(jié)構(gòu)體系指分布式環(huán)境下在系統(tǒng)層次結(jié)構(gòu)的基礎(chǔ)上解除層次之間的直接依賴關(guān)系,將構(gòu)件之間的互聯(lián)機制作為一階實體(first-class entity)[7]獨立出來,稱為連接子,服務(wù)分布在不同的服務(wù)器上,如圖2所示[8]。在全測試環(huán)境人工智能交換與服務(wù)標(biāo)準(zhǔn)(artificial intelligence exchange and service tie to all test environments,AI-ESTATE,即IEEE1232[9])提出的診斷模型層級關(guān)系基礎(chǔ)上,本文提出改進模型及服務(wù)方式。
分布式結(jié)構(gòu)從層次上將應(yīng)用系統(tǒng)分為客戶端應(yīng)用程序、應(yīng)用程序服務(wù)器和數(shù)據(jù)庫服務(wù)器3個部分,每部分在邏輯上相互獨立。組件技術(shù)從功能上將應(yīng)用系統(tǒng)分解成若干顆粒,彼此通過接口相互通信[10]。在分布式服務(wù)型層次結(jié)構(gòu)中采用服務(wù)列表作為連接子,將服務(wù)注冊到服務(wù)列表中,服務(wù)存在于不同的服務(wù)器上,但邏輯上仍是一個集合。服務(wù)列表記錄了服務(wù)的名稱、位置、參數(shù)、返回結(jié)果等信息,由系統(tǒng)統(tǒng)一管理。技術(shù)上采用Json或XML,使用時直接引用服務(wù)列表中的服務(wù),并將參數(shù)進行傳遞,直接獲取結(jié)果。與層次結(jié)構(gòu)相比,服務(wù)型層次結(jié)構(gòu)更具有泛型能力,功能更具一般性,比如在層次結(jié)構(gòu)中底層開發(fā)可能是針對上層某一功能開發(fā)的,所以傳遞的參數(shù)和返回的結(jié)果類型更加具體。而服務(wù)型層次結(jié)構(gòu)并不了解需要為哪一部分提供服務(wù),所以傳遞的參數(shù)和返回類型更具一般性,這樣的服務(wù)更具重用性且更符合組件開發(fā)的思想。
在系統(tǒng)維護更新升級時,如果對某一具體任務(wù)需求發(fā)生變動時,則需要對其支持的服務(wù)進行修改或增加新的服務(wù),然后更改服務(wù)列表中的映射即可。系統(tǒng)提供構(gòu)建過程。所謂的構(gòu)建過程,是指遍歷服務(wù)集合,將服務(wù)名稱和服務(wù)映射寫入到服務(wù)列表,并對引用次數(shù)為零的服務(wù)進行處理。
進行上述應(yīng)用設(shè)計后,面向服務(wù)的體系結(jié)構(gòu)如圖3所示。
2.2 故障決策系統(tǒng)結(jié)構(gòu)
基于服務(wù)型層次結(jié)構(gòu)設(shè)計決策系統(tǒng)。決策系統(tǒng)需要有與外界交互的窗口,在用戶輸入待分析樣本后需要對樣本進行數(shù)據(jù)預(yù)處理以及向量化,在線決策系統(tǒng)進行故障分析后將結(jié)果返回給用戶。決策模塊是整個系統(tǒng)的核心,為了支持決策模塊需要提供諸多基礎(chǔ)服務(wù)以及工具。圖4為決策系統(tǒng)總體框架,展示了系統(tǒng)所包含的主要模塊以及模塊之間的層次關(guān)系。
人機交互模塊負責(zé)用戶與系統(tǒng)的交互,用戶輸入待分析樣本數(shù)據(jù),并將系統(tǒng)的預(yù)測結(jié)果返回給用戶。人機交互模塊是人與機器交互的“窗口”,所以要保證交互的友好、方便等特性。
故障決策模型接收用戶的輸入并對輸入數(shù)據(jù)進行分析,將預(yù)測結(jié)果返回。該部分相當(dāng)于整個系統(tǒng)的心臟,是整個決策系統(tǒng)的核心,用于保證該部分的可靠、穩(wěn)定、及時等特性。
模型訓(xùn)練、評估是診斷推理機(Diagnostic Reasoner)上的一個模塊,負責(zé)對訓(xùn)練樣本集進行模型訓(xùn)練、評估。診斷推理機在IEEE1232標(biāo)準(zhǔn)中被定義為一個利用知識庫推斷結(jié)論的系統(tǒng)[11](IEEE1232),但基于機器學(xué)習(xí)設(shè)計的故障決策系統(tǒng)將診斷推理機部署到專用于機器學(xué)習(xí)模型訓(xùn)練的服務(wù)器上,稱之為訓(xùn)練機。與普通的服務(wù)器相比,訓(xùn)練機擁有更多更強大的邏輯計算單元(GPU)。GPU具有強大的幾何運算能力,在虛擬現(xiàn)實仿真中具有極其重要的應(yīng)用[12],能大幅減少模型訓(xùn)練時間。
模型評估是對模型訓(xùn)練的一個截止條件,是對模型好壞的一個量化表示,主要用來評估模型的泛化能力以及性能。所謂泛化能力,是指模型對新樣本的判別能力。性能主要包括錯誤率、精度以及查全率等。
基礎(chǔ)組件服務(wù)支持模塊包括數(shù)據(jù)預(yù)處理、數(shù)據(jù)向量化、數(shù)據(jù)驅(qū)動及其它工具類,為模型訓(xùn)練以及決策提供基礎(chǔ)的功能支持以及服務(wù)。數(shù)據(jù)預(yù)處理包括將序列化文本離散化、缺省值處理并提供靈活的歸一化功能。數(shù)據(jù)向量化是將樣本數(shù)據(jù)轉(zhuǎn)換成系統(tǒng)訓(xùn)練使用的向量形式以方便計算。數(shù)據(jù)驅(qū)動模塊負責(zé)與數(shù)據(jù)庫交互。其它工具包括科學(xué)計算庫以及序列化工具等。
所有模塊均按照組件進行開發(fā),以降低組件之間的耦合,方便系統(tǒng)維護[13]。模型訓(xùn)練評估模塊包括各種神經(jīng)網(wǎng)絡(luò)算法或其它決策算法以及評估方法,以增強系統(tǒng)適用性。當(dāng)生產(chǎn)工具、材質(zhì)以及流程發(fā)生變化時,更新合適的決策算法并增加基礎(chǔ)服務(wù)工具即可,不需要大幅度修改系統(tǒng)。基礎(chǔ)組件服務(wù)均按照工具類型進行開發(fā),再細分具體功能。
2.3 系統(tǒng)數(shù)據(jù)處理流程
決策機制數(shù)據(jù)處理流程如圖5所示。
用戶輸入待分析數(shù)據(jù),經(jīng)過數(shù)據(jù)預(yù)處理、數(shù)據(jù)向量化后,將符合分析決策的標(biāo)準(zhǔn)格式數(shù)據(jù)輸入到?jīng)Q策模塊,通過對模型的匹配得到分析結(jié)果,并將結(jié)果傳遞給分析師。與此同時,系統(tǒng)會將輸入的樣本數(shù)據(jù)寫入到數(shù)據(jù)庫中用作訓(xùn)練機的數(shù)據(jù)集,訓(xùn)練機按照一定比例將數(shù)據(jù)集切分成訓(xùn)練集和測試集并訓(xùn)練模型,將模型作為服務(wù)提供給決策模塊。
3 系統(tǒng)實現(xiàn)
3.1 模型訓(xùn)練模塊實現(xiàn)
(1)模型選擇。對于特定的任務(wù)選擇最優(yōu)的模型,通常情況下會嘗試多種模型,選擇表現(xiàn)最好的模型。
(2)模型評估。將數(shù)據(jù)集分為訓(xùn)練集和測試集,當(dāng)模型訓(xùn)練結(jié)束后使用測試集對模型進行訓(xùn)練,測試模型的泛化能力,對通過模型評估的模型再進行部署。
(3)模型訓(xùn)練。該模塊是診斷推理機的核心,是保證診斷推理機實時性和準(zhǔn)確性的關(guān)鍵模塊,該模塊設(shè)計對整個系統(tǒng)影響重大。通過優(yōu)化系統(tǒng)體系結(jié)構(gòu)優(yōu)化并分離物理平臺以提高系統(tǒng)性能,通過優(yōu)化算法提高算法本身性能,如優(yōu)化參數(shù)更新機制、優(yōu)化數(shù)據(jù)結(jié)構(gòu)等。優(yōu)化算法不作為本文重點,在此不作贅述。
(4)模型監(jiān)控與反饋。模型監(jiān)控與反饋指模型的準(zhǔn)確率和預(yù)測結(jié)果,主要以產(chǎn)品的達標(biāo)率為體現(xiàn)形式。當(dāng)新的模型應(yīng)用之后,達標(biāo)率下降,就要更換模型,重新進行模型選擇和訓(xùn)練。
3.2 實時性解決方案
實時性是實現(xiàn)機器學(xué)習(xí)系統(tǒng)的重點和難點,解決方案如下:
(1)新數(shù)據(jù)到達立即更新模型,從而使實時系統(tǒng)成為可能,例如線性模型中的梯度下降算法,數(shù)據(jù)的傳遞以及轉(zhuǎn)換難以做到實時,但可以使用實時流處理技術(shù)做到近似實時。
(2)混合方法。數(shù)據(jù)到達不會立即更新模型,而是將數(shù)據(jù)進行收集,當(dāng)數(shù)據(jù)達到一定量時進行小批度更新模型。當(dāng)小批度更新達到一定次數(shù),或者模型準(zhǔn)確率降低時,觸發(fā)全局批度更新。
(3)周期批度更新。指數(shù)據(jù)到達不進行模型更新,對數(shù)據(jù)進行收集,當(dāng)數(shù)據(jù)量到達一定量或到達時間周期時再進行全局批度更新。
3.3 連接子實現(xiàn)方案
連接子作為構(gòu)件之間的連接一階實體,對系統(tǒng)性能、系統(tǒng)結(jié)構(gòu)起到關(guān)鍵作用。結(jié)合分布式服務(wù)型層次結(jié)構(gòu),對于連接子實現(xiàn)方案采用面向服務(wù)的Web Service技術(shù)。
Web Service是一個平臺獨立、低耦合、自包含、可編程的應(yīng)用程序,可使用開放的XML標(biāo)準(zhǔn)來描述、發(fā)布、發(fā)現(xiàn)、協(xié)調(diào)和配置,用于開發(fā)分布式的互操作應(yīng)用程序[14]。
Web Service技術(shù)能使運行在不同機器上的不同應(yīng)用無須借助附加的、專門的第三方軟件或硬件, 就可相互交換數(shù)據(jù)或集成。依據(jù)Web Service規(guī)范實施的應(yīng)用,無論其使用的語言、平臺或內(nèi)部協(xié)議是什么,都可相互交換數(shù)據(jù)。Web Service是自描述、自包含的可用網(wǎng)絡(luò)模塊,可執(zhí)行具體的業(yè)務(wù)功能。Web Service也很容易部署,因為它們基于一些常規(guī)的產(chǎn)業(yè)標(biāo)準(zhǔn)以及已有的一些技術(shù),諸如通用標(biāo)記語言下的子集XML、HTTP等。Web Service減少了應(yīng)用接口花費,為整個企業(yè)甚至多個組織之間的業(yè)務(wù)流程集成提供了一個通用機制。
簡單對象訪問協(xié)議SOAP、Web服務(wù)描述語言WSDL,統(tǒng)一描述、發(fā)現(xiàn)和集成協(xié)議UDDI構(gòu)成了Web服務(wù)最基本的技術(shù)規(guī)范,WSDL是程序員描述Web Service的編程接口。Web Service可通過UDDI注冊自己的特性,其它應(yīng)用程序可通過UDDI找到需要的Web服務(wù)。SOAP則提供了應(yīng)用程序和Web服務(wù)之間的通信手段,WSDL、SOAP和UDDI都建立在XML基礎(chǔ)之上。
在系統(tǒng)安全訪問控制方面,程序依賴于系統(tǒng)平臺服務(wù)提供安全保證,即服務(wù)器中配置必要的安全認證和授權(quán)機制,對Web Service的訪問受到系統(tǒng)平臺安全服務(wù)限制;在應(yīng)用程序安全訪問控制方面,應(yīng)用程序執(zhí)行相關(guān)代碼認證用戶身份和授權(quán)用戶,要求將授權(quán)用戶信息保存在數(shù)據(jù)庫,并由應(yīng)用程序維護數(shù)據(jù)庫,保證系統(tǒng)安全[15]。
4 結(jié)語
在未來工業(yè)生產(chǎn)中,數(shù)據(jù)量會不斷增加,數(shù)據(jù)維度也會不斷擴大,通過分布式服務(wù)型故障決策系統(tǒng)能夠?qū)崟r發(fā)現(xiàn)設(shè)備或產(chǎn)品故障,發(fā)掘數(shù)據(jù)中的隱性知識,及時分析設(shè)備或產(chǎn)品故障,提高生產(chǎn)效率。本設(shè)計能保證系統(tǒng)的及時性、穩(wěn)定性、可靠性及可擴展性。
參考文獻:
[1] 祝世虎,董朝陽,張金鵬,等.基于神經(jīng)網(wǎng)絡(luò)與專家系統(tǒng)的智能決策支持系統(tǒng)[J].電光與控制,2006,13(1):8-11.
[2] 李梅.基于本體的故障診斷知識庫系統(tǒng)的構(gòu)建[J].電腦開發(fā)與應(yīng)用,2010,23(8):32-34.
[3] IEEE STANDARDS BOARD.IEEE standard glossary of software engineering terminology 610.12-1990[S].Los Vol.1.Los Alamitos:IEEE Press,1999.
[4] 周志華,楊強.機器學(xué)習(xí)及其應(yīng)用[M].北京:清華大學(xué)出版社,2011.
[5] PENTREATH N.Spark機器學(xué)習(xí)[M].南京:東南大學(xué)出版社,2016.
[6] 梅宏,申峻嶸.軟件體系結(jié)構(gòu)研究進展[J].軟件學(xué)報,2006,17(6):1257-1275.
[7] SHAW M.Procedure calls are the assembly language of software interconnection:connectors deserve first-class status[J].LNCS,1996(1078):17-32.
[8] 孫小進,郭恩全.基于IEEE1232的故障診斷系統(tǒng)的軟件架構(gòu)設(shè)計[J].電子測量與儀器學(xué)報,2014,28(1):36-42.
[9] IEEE Std 1232-2010[S]:IEEE standard for artificial intelligence exchange and service tie to all test environments.
[10] 李志軍.分布式結(jié)構(gòu)與組件技術(shù)的應(yīng)用研究[D].南京:南京理工大學(xué),2004.
[11] IEEE STD 1232-2002[S]. IEEE standard for artificial intelligence exchange and service tie to all test environments.
[12] 顧欽.基于GPU計算的虛擬現(xiàn)實仿真系統(tǒng)設(shè)計模型[J].微處理機,2005,26(2):41-43.
[13] 戴敏,宋燕平.組件開發(fā)與軟件重用[J].南開大學(xué)學(xué)報:自然科學(xué)版,2001,34(3):24-27.
[14] DEBETTENCOURT J,LARA M,YAMANE S,et al.Web service:US,US6279001[P].2001.
[15] 王楠,劉心雄,陳和平.Web Service技術(shù)研究[J].計算機與數(shù)字工程,2006,34(7):88-90.
(責(zé)任編輯:杜能鋼)