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