四川虹美智能科技有限公司 何 艷
隨著家電的物聯(lián)網(wǎng)化,原來僅能提供功能的家電設(shè)備,在擁有了物聯(lián)網(wǎng)功能后,能將設(shè)備運行的狀態(tài)上報到云端,對這些數(shù)據(jù)進(jìn)行處理和分析后能用于設(shè)備健康狀態(tài)的判定,對故障進(jìn)行診斷甚至是預(yù)判。
在故障診斷和預(yù)判的領(lǐng)域,多數(shù)人都將重心放在了算法方面,忽略了數(shù)據(jù)采集對模型預(yù)測的影響。目前圖像識別發(fā)展較快也相對比較成熟,但圖像識別是基于圖片清晰度和像素屬性規(guī)范的數(shù)據(jù)輸入的基礎(chǔ)上做出來的,輸入?yún)?shù)是豐富而完整的。而家電產(chǎn)品的故障自動診斷中,哪些參數(shù)與故障診斷相關(guān)性較強(qiáng),這些數(shù)據(jù)又如何獲取,這會是決定算法模型好壞的最根本因素。
本文主要討論為做家電產(chǎn)品故障自動診斷而采集數(shù)據(jù)和處理數(shù)據(jù)的方法。
基于PHM思想,參考美國機(jī)械信息管理開放標(biāo)準(zhǔn)聯(lián)盟提出的OSA/CBM體系結(jié)構(gòu),狀態(tài)監(jiān)測部分和故障預(yù)測部分是系統(tǒng)實現(xiàn)的關(guān)鍵。其中,狀態(tài)監(jiān)測子系統(tǒng)主要包括數(shù)據(jù)采集(Data Acquire)和數(shù)據(jù)處理(Data Processing)兩個模塊。
數(shù)據(jù)采集模塊中,借助傳感器、自動測試設(shè)備、傳統(tǒng)測試工具或者人工目測,采集被測對相關(guān)的各種紅參數(shù)和相關(guān)信息。
在家電產(chǎn)品中,由于產(chǎn)品數(shù)量多,且受硬件成本的限制,數(shù)據(jù)采集無法采用離線人工采集的方式,也無法應(yīng)用傳統(tǒng)測試工具或者專業(yè)自動測試設(shè)備采集相關(guān)數(shù)據(jù),數(shù)據(jù)采集的來源范圍受限制。
輸入數(shù)據(jù)維度:家電設(shè)備運行過程中可采集的數(shù)據(jù)主要有三類:設(shè)備運行設(shè)定參數(shù)、設(shè)備運行狀態(tài)數(shù)據(jù)、傳感器采集的數(shù)據(jù)。在數(shù)據(jù)采集時,對這些數(shù)據(jù)加上設(shè)備ID、時間戳等一起上傳到云端。
輸入數(shù)據(jù)精度:對于每一維度的輸入數(shù)據(jù),最初都按照業(yè)務(wù)解釋數(shù)據(jù)進(jìn)行采集和上傳,比如溫度數(shù)據(jù)為兩位整數(shù)和小數(shù)點后一位,狀態(tài)數(shù)據(jù)則是0或者1。
輸入數(shù)據(jù)采集頻度:數(shù)據(jù)上報主要考慮設(shè)備運行過程的狀態(tài)變化快慢,數(shù)據(jù)采集頻度對故障診斷和預(yù)判的影響,考慮在線設(shè)備數(shù)量的多少,消息服務(wù)器的承載能力,存儲服務(wù)器的需求,設(shè)備持續(xù)增加帶來的服務(wù)器負(fù)載和容量的增加等因素,綜合設(shè)定。
數(shù)據(jù)采集需要論證和驗證。數(shù)據(jù)采集的論證是指根據(jù)設(shè)備運行狀態(tài)的機(jī)理建立模型,分析健康設(shè)備運行的參數(shù)特征,在逐漸運行至發(fā)生故障的過程中參數(shù)的特征,直至故障導(dǎo)致設(shè)備無法正常運行的臨界點數(shù)據(jù)的特征。
一般來說,設(shè)備運行機(jī)理的模型建立,需要對設(shè)備系統(tǒng)非常專業(yè)的人來建立,這對人員的專業(yè)性和經(jīng)驗有著相當(dāng)高的要求,這時我們可以采取另外一種方式,驗證方法。主要的原理是先采集目前可獲取的數(shù)據(jù),訓(xùn)練模型,再用同樣的方法采集數(shù)據(jù),但增加相應(yīng)的采集維度,再訓(xùn)練模型,在不同的輸入數(shù)據(jù)維度上訓(xùn)練模型的判斷準(zhǔn)確率有所不同,從而驗證輸入?yún)?shù)對于算法的影響程度。
原始采集的數(shù)據(jù)是不均衡數(shù)據(jù)集,即絕大部分?jǐn)?shù)據(jù)都是健康設(shè)備正常工作的瞬時狀態(tài)數(shù)據(jù),很小部分?jǐn)?shù)據(jù)是出現(xiàn)故障的狀態(tài)數(shù)據(jù),還有一部分是設(shè)備從正常狀態(tài)逐步過渡到故障狀態(tài)的狀態(tài)數(shù)據(jù)。
從機(jī)器學(xué)習(xí)角度出發(fā),對于不均衡數(shù)據(jù)集通常會進(jìn)行一些數(shù)據(jù)處理,比如,從數(shù)據(jù)的角度出發(fā),主要方法為采樣,分為欠采樣和過采樣以及對應(yīng)的一些改進(jìn)方法。從算法角度出發(fā),考慮不同誤分類情況代價的差異性對算法進(jìn)行優(yōu)化,主要是基于代價敏感學(xué)習(xí)算法,代表的算法有adacost。另外可以將不平衡數(shù)據(jù)集的問題考慮為一分類(One Class Learning)或者異常檢測(Novelty Detection)問題,代表的算法有One-class SVM。
在這里,我們從數(shù)據(jù)業(yè)務(wù)的角度出發(fā),考慮故障機(jī)理,首先選取所有故障的數(shù)據(jù),再從正常運行數(shù)據(jù)中抽取與故障數(shù)據(jù)一定比例的正常數(shù)據(jù),組成數(shù)據(jù)樣本。下面以空調(diào)數(shù)據(jù)處理為例,討論數(shù)據(jù)處理過程:
(1)數(shù)據(jù)解析:對數(shù)據(jù)進(jìn)行全狀態(tài)數(shù)據(jù)解析。
(2)標(biāo)簽的標(biāo)定:以特征‘室內(nèi)機(jī)故障’的取值為依據(jù),對樣本進(jìn)行分類。其中將存在室內(nèi)機(jī)故障的樣本標(biāo)為‘0’類(反例),反之標(biāo)為‘1’類(正例)。‘1’類樣本共計1087個,‘0’類樣本共計709個。
(3)數(shù)據(jù)預(yù)處理:
●對缺失值、異常值的處理。異常值采用當(dāng)前特征列的3*(標(biāo)準(zhǔn)差)原則進(jìn)行識別。特征‘空調(diào)實際運行溫度’含有102個異常值,其中最大的異常值為29,最小的異常值為21(取整數(shù)部分)。對缺失嚴(yán)重的特征列及缺失嚴(yán)重的樣本行、含有較多異常值的樣本行進(jìn)行刪除操作;對于特征缺失數(shù)較少的樣本行,采用樣條插值法進(jìn)行插值補(bǔ)充。
●對關(guān)鍵特征的篩選:因在所訓(xùn)練的深度神經(jīng)網(wǎng)絡(luò)中加入了對各個參數(shù)的L1正則懲罰項,所以在訓(xùn)練的過程中,模型會自動篩選關(guān)鍵特征。故在數(shù)據(jù)的預(yù)處理過程中可省略該步驟。
●對離散型特征的處理。該數(shù)據(jù)集中的離散特征含有有序型離散特征和無序型離散特征兩種。對這兩種特征均進(jìn)行了獨熱編碼。為防止在進(jìn)行獨熱編碼的過程中,測試集中的特征值在訓(xùn)練集中從未出現(xiàn)過,因此首先使用‘CategoricalDtype’模塊將這些特征列轉(zhuǎn)換為全狀態(tài)的類型(即補(bǔ)充所有可能的取值),再對其進(jìn)行編碼。對于轉(zhuǎn)化為全狀態(tài)的無序型離散特征,例如‘開關(guān)機(jī)狀態(tài)’、‘電加熱實際狀態(tài)’等,直接對其進(jìn)行獨熱編碼,處理為多維的二元啞變量。有序型離散特征列如‘空調(diào)當(dāng)前設(shè)定風(fēng)速’、‘濾網(wǎng)清潔程度’等,因特征值之間具有強(qiáng)弱關(guān)系,因此不同強(qiáng)度的特征值用不同大小的數(shù)字來表示強(qiáng)弱關(guān)系。例如特征‘空調(diào)污染程度’,取值有0級污染、1級污染、2級污染,三個取值由強(qiáng)到弱,分別用數(shù)字1,2,3來代替。原取值之間的強(qiáng)弱關(guān)系用數(shù)字的大小關(guān)系來傳給模型
●對連續(xù)性特征的處理:對連續(xù)型特征列,例如‘當(dāng)前室溫’、‘空調(diào)運行電流’等,共做了兩種處理,然后根據(jù)模型效果進(jìn)行擇優(yōu)。其一是直接將連續(xù)型數(shù)據(jù)使用標(biāo)準(zhǔn)差法標(biāo)準(zhǔn)化;標(biāo)準(zhǔn)化的作用是,不同的連續(xù)性特征,其量綱是不同的,有的大有的小,例如要研究某地區(qū)居民的年齡與收入的關(guān)系,年齡量綱在1—100,收入量綱遠(yuǎn)大于年齡量綱,一般量綱較大的特征會導(dǎo)致模型在該特征的偏重增大,降低模型的精度。其二,首先使用聚類法確定對應(yīng)連續(xù)型的特征的最優(yōu)劃分區(qū)間,根據(jù)最優(yōu)劃分區(qū)間將連續(xù)型特征進(jìn)行離散化,并用不同大小的數(shù)字表示不同區(qū)間的權(quán)重。該方法存在的Bug是最優(yōu)劃分區(qū)間有時不能覆蓋所有取值不為空的樣本,用該區(qū)間離散化后,易增加當(dāng)前列的空值。將這兩種方法用于建模,實驗顯示用前者處理過的模型精度較高。
概括來說,不管是離散特征的獨熱編碼還是連續(xù)特征的離散化,都實現(xiàn)了數(shù)據(jù)的數(shù)字化。
●數(shù)據(jù)集的劃分:隨機(jī)抽取70%的數(shù)據(jù)作為訓(xùn)練集、30%的數(shù)據(jù)集做為測試集建模。其中訓(xùn)練數(shù)據(jù)集的維度為(1257,139),測試數(shù)據(jù)集(539,139)(第二維度包括標(biāo)簽列)。訓(xùn)練集中0類樣本數(shù)為499,占比為0.4;測試集中0類樣本數(shù)為210,占比約為0.38。
方法介紹:
3*(標(biāo)準(zhǔn)差)原則:假定數(shù)據(jù)分布符合正態(tài)分布,計算出數(shù)據(jù)的均值與標(biāo)準(zhǔn)差,根據(jù)該原則,數(shù)值分布幾乎全部集中在(均值-3*標(biāo)準(zhǔn)差,均值+3*標(biāo)準(zhǔn)差)區(qū)間,超出這個范圍分布的概率不到0.3%,根據(jù)小概率原理,認(rèn)為這是不可能發(fā)生的,因此分布在該區(qū)間外的數(shù)據(jù)即為異常值。
樣條插值法:根據(jù)缺失值所在位置上下相鄰的幾個值進(jìn)行預(yù)測。一般取值的數(shù)值分布不是線性關(guān)系,樣條插值的擬合效果較好。
L1正則懲罰項:訓(xùn)練神經(jīng)網(wǎng)絡(luò)的過程就是在訓(xùn)練一系列的參數(shù),每一輪訓(xùn)練的出的參數(shù),有的比較有用,有的不太有用,L1正則的作用就是過濾掉那些不太有用的參數(shù)。拘役的實現(xiàn)方法是加大那些貢獻(xiàn)值較大的參數(shù)的權(quán)重,而減小貢獻(xiàn)值較小的參數(shù)的權(quán)重,甚至讓這些參數(shù)的權(quán)重為0,這個參數(shù)也就不存在了。
將數(shù)據(jù)取值轉(zhuǎn)為全狀態(tài)、獨熱編碼:獨熱編碼簡單說就是給某一特征的所有可能取值進(jìn)行編碼,所有可能取值有幾個就有幾維,每一維的取值不是1就是0。例如,特征‘當(dāng)前運行模式’的所有可能取值有‘制冷’、‘制熱’、‘除濕’、‘送風(fēng)’四個值,那么編碼后,這個特征的取值就變成了長度為4的數(shù)組,用這個數(shù)組的第一位表示制冷,……,以此類推。放到集合中,這四位對應(yīng)的就是四個子特征,分別是‘當(dāng)前運行模式-制熱’,……以此類推。
最終會把數(shù)據(jù)集劃分為訓(xùn)練集和測試集,在這兩部分中,對于同一個特征,兩部分內(nèi)的數(shù)據(jù)的取值是不相同的,也就是說在測試集中的取值有可能在訓(xùn)練集中從未出現(xiàn)過,這會造成在獨熱編碼后,訓(xùn)練集測試集的維度不一樣。所以用這個模塊,現(xiàn)將這兩部分中的所有數(shù)據(jù)的取值都轉(zhuǎn)換為全狀態(tài),統(tǒng)一了維度后再進(jìn)行編碼,即可避免維度不一的問題。
經(jīng)過數(shù)據(jù)采集、數(shù)據(jù)處理以后再選擇相應(yīng)合適的算法模型進(jìn)行訓(xùn)練和測試。
結(jié)束語:家電產(chǎn)品的數(shù)據(jù)采集策略會對故障診斷和預(yù)判產(chǎn)生重要影響,在實際工作中需要結(jié)合產(chǎn)品系統(tǒng)運行機(jī)理和數(shù)據(jù)采集分析實驗,綜合尋找最合適的數(shù)據(jù)采集和處理方案。