劉天松,吳永明,b,c,盛曉靜,陳琳升
(貴州大學 a.現代制造技術教育部重點實驗室;b.公共大數據國家重點實驗室;c.機械工程學院,貴陽 550025)
隨著大數據時代的迅速崛起,工業數據安全預警問題正在逐步成為人民重點的關注對象[1]。周志方等[2]采用基于支持向量機(SVM)模型對企業風險進行預警并對重污染企業管控提出指導意見。張丁[3]采用Apriori算法進行關聯規則數據挖掘預警,得到的關聯關系可以作為煤礦安全的重要依據。Jo B W等[4]利用基于RSS范圍的加權質心定位算法提高煤礦井下安全管理水平,預防煤礦井下事故的發生。因此,數據監測與預警在工業應用中的地位較高。
在工業生產中常用聚類算法來實現數據的預警與控制。Duan Haiyang等[5]利用k-均值聚類和動態時間規整(DTW)相結合,研究開發了一種有效的漏鋼預警方法。宋杰鯤等[6]采用PCA-AR和K均值聚類構等建煤炭安全預警模型,利用K均值將煤炭安全劃分為不同的安全等級。
在聚類算法預警中大多是采用歐式距離進行劃分,但是沒有對聚類對象區別對待,使預警機制對重要的聚類對象不夠敏感。因此本文提出一種加權歐式距離與GNG算法相結合的增量學習模型,通過改變每個聚類對象的權重使聚類結果更加準確,同時通過構建閾值機制對工業數據進行實時監督和預警。
GNG算法是一種自適應聚類算法,聚類是數據挖掘中常用的算法之一,主要用于把大量的數據集合成若干簇[7],同一簇內數據相似程度較大,不同簇之間相似程度較小[8]。聚類算法劃分方法大多是基于距離的,有K-means算法[9],K-modes算法,GNG(Growing Neural Gas)算法[10]等。雷小鋒等[11]提出一種改進K-means算法解決了局部最優問題,提高了聚類效率。Bulent Tutmez等[12]提出用K-modes算法快速實現,不做數據分布處理進行火災的檢測與識別。
最早的無監督生長神經網絡之一生長細胞結構(GCS)是由1994年Fritzke B[13]提出。在一年后Fritzke再次提出一種無監督的生長神經氣(GNG)具有競爭特性的算法。GNG網絡拓撲結構是自由變化的,當有數據輸入時其拓撲結構是最活躍的。GNG會動態增減網絡節點,鏈接相關性大的點和刪除老化以及邊界點。曾鋒等[14]利用GNG算法對點云三角網格的拓撲結構進一步優化更接近于三角形。吳永明等[15]通過控制節點生成機制的GNG對燃煤鍋爐數據動態特征分析與控制,實現了新生節點生成機制和節點淘汰機制。仲朝亮等[16]提出將GNG與A*算法結合用于機器人的路徑規劃方法,實現快速收斂于采樣空間。但GNG算法在前人不斷研究的過程中也有部分缺陷:通常采用歐氏距離計算獲勝節點,而忽略了數據之間的內在聯系,導致有時候GNG在聚類時會達不到動態數據變化的預警。如圖1所示。

圖1 GNG的數據漂移
當t=100時,數據本身分布是比較穩定的,因此可以形成穩定的拓撲結構,在t=1000時,由于迭代次數的增加,數據開始出現了漂移。并且在數據的漂移過程中經典的GNG無法形成明顯的簇,使之間依然有聯系。雖然Mohamed-Rafik Bouguelia等[17]提出了改進的GNG—A自適應增量無監督學習方法對數據漂移有所改善,但是沒有注意其數據內部關系。本文提出采用加權歐氏距離的GNG算法,即克服了數據內部沒有關系的缺點,同時保存了經典GNG算法良好收斂性的特點。
GNG在輸入新的數據時,轉化神經元來刺激神經元之間的相互競爭,其競爭模式一般采用歐式距離,其競爭公式為:

(1)
但是由于考慮對象內部之間的關系,本文應用加權歐式距離,其競爭公式為:

(2)
其中,i=(X1,X2,…,Xp)和j=(W1,W2,…,Wp)分別表示p維的數據,λp表示每個變量的權重。在實際的應用中λp的大小要根據工業背景計算或者選取。
改進的GNG算法主要擁有對新輸入數據的權重歐式距離計算,新節點的生成和淘汰機制,具體實驗步驟如下:
步驟1:初始化數據,對必要參數進行設置,獲取具有時間序列的數據,并獲取維度。
步驟2:輸入樣本向量X,計算其加權歐式距離,利用公式(2)。權重根據實際情況選取。
步驟3:在輸入新向量時會對所有節點進行求加權歐式距離,得到獲勝節點Sn,并且更新該節點的局部誤差ESn:
Esn=Esn+‖X-Sn‖2
(3)

Wn=Wn+α1×(X-Wn)
(4)
(5)

步驟6:在判斷獲勝節點Sn的年齡,若:
t(Sn)>Tmax
(6)
那么神經元Sn被移除。并且存在單獨的獲勝節點也會被移除。
步驟7:增添新的節點Snewnode
Snewnode=0.5×(Serrmax+Serrmax2)
(7)
Enewnode=0.5×Emax
(8)
步驟8:Q,P是判斷閾值,一旦超過閾值便給予報警。在獲勝節點處進行預警判斷:若獲勝節點坐標滿足:
XSn>QorYSn>P
(9)
步驟9:一次循環結束,返回步驟2。
實驗對象選擇的是貴陽市某造鋁廠半年內其中一個槽的數據(118號電解槽)。鋁液中Fe和Si的含量對鋁純度有著非常大的影響,鋁液純度的下降,會使鋁的耐磨性,韌性,剛性都會發生改變。基于改進GNG算法對具有時間序列的Fe和Si含量數據進行聚類,并進行預警同時也對數據進行了實時跟蹤,為監管者提供了良好的理論支持。實驗數據如表1所示。

表1 實驗數據

圖2 數據動態時序分布圖
鋁電解中Fe和Si含量的數據是具有時間序列特性的。其動態時序分布圖如圖2所示。在118電解槽連續6個月的時間產生的Fe和Si在鋁液中的含量。時間序列聚類是指數據通過客觀組成同一特性的數據來識別未標記時間序列的數據結構,在同質組中,簇與簇對象之間的相似度較小,簇內的對象之間的相似度較大。同時還可以看出,鋁液中Fe和Si含量的數據具有數據漂移的現象,說明此數據在一個范圍內是穩定的,超過了這個范圍就會使數據變得活躍起來,進而使這一類數據變得不穩定,在此利用聚類算法將數據進行預警分析。
在第2節中的實驗模型參數如表2所示。

表2 實驗參數
λ1和λ2分別表示Fe含量和Si含量在電解鋁溶液時Fe和Si含量雜質對鋁的純度的影響是的權重大小。α1和α2表示調節系數,獲勝節點的權重。Tmax是最大年齡。Q和P分別表示Fe含量和Si含量的閾值。
實驗是用對比的方法,采用了經典K-means算法,經典GNG算法和改進GNG算法的網絡拓撲圖進行比較與分析。實驗結果如圖3所示:

(a) k-means實驗結果

(b) 經典GNG實驗結果

(c) 改進GNG實驗結果圖3 實驗結果
在圖3中可以看出鋁電解過程中產生的雜質Fe與Si的含量是發生了明顯的數據漂移,數據被分成了兩塊區域。圖3a聚類出的結果可以看出一簇內Fe含量增長的過程中沒有區分含量的多少,造成這種情況的原因是數據漂移后,k-means算法無法及時的檢測到數據的變化。在圖3b聚類出的結果中圓形的圈為神經節點,線條相互連接神經節點的線路,數據漂移的過程中GNG算法的連接線條無法及時的發現新的神經元和移除舊的神經元。在圖3c可以看出神經元已經遍及所有的數據,并且設置閾值,當神經元到達閾值的時候報警裝置立刻就會觸發。在每次輸入數據時網絡拓撲圖中都會產生相應的獲勝節點,并且會把新輸入數據形成的節點與關聯節點的誤差更新,但隨著網絡對新輸入數據的適應性的增強,誤差將會逐步減小。
如圖4所示,鋁液中Fe和Si含量的數據在不同算法中可以看出其聚類的特性是不同的。

圖4 實驗對比結果
在K-means算法中由于K-means的特性需要首先給定K的取值,一旦K值給定其聚類中心得個數也就確定了,在迭代的過程中只是在不斷的更新其獲勝節點的位置。經典GNG和改進GNG算法可以從圖中看出在迭代次數不斷增多的過程中聚類中心個數有明顯差別。在數據具有時序性和漂移特性的情況下,改進的GNG在加權歐式距離的計算其相似度的情況下,會根據其每個樣本的特性進行給出權重,每個樣本在不同的權重下得到的獲勝節點并在獲勝節點的淘汰機制下,確定了聚類中心。在經典的GNG中的聚類中會在數據發生漂移的過程中無法及時的監測到。這就是本文所提出的改進GNG算法的對動態時間序列數據進行實時的監督與跟隨,在聚類的過程中及時向工作人員反映。
對Fe和Si含量數據的預警分析主要是為了控制鋁液純度。影響鋁液純度的主要因素有:料量,次數,氟化鹽,電壓以及電解質水平和NB設定。下面給出某鋁廠連續一周沒有調整前的數據和連續一周調整后的數據:
如表3和表4所示在電解鋁的過程中產生的Fe和Si的百分比受多個因素影響,其中Fe對于鋁純度的影響最大,所以控制Fe的濃度,就可以有效的提高鋁的純度。在表3中可以看出Fe含量最大是0.308%在調節氟化鹽的加入量之后在表4中可以看出最大Fe含量是0.172%。綜合表3和表4可以看出氟化鹽對Fe的含量影響比較大,在加入氟化鹽后Fe的含量明顯降低。在以提高鋁液含量為目標時,為了降低Fe的含量,即在加料中要加入適當的氟化鹽,便可提高鋁的純度。由此可見,氟化鹽是在眾多影響因素中最重要的。所以在電解鋁的過程中為了控制鋁液純度,要在投料時加入適當的氟化鹽。

表3 控制調整前

表4 控制調整后
為了實現對生產工業中時序數據的實時監督與控制,本文對無監督GNG的原理以及特性進行分析和研究,采用一種基于加權歐式距離的改進GNG算法實現了對時間序列數據的實時監督預警。以電解鋁廠動態數據監督控制為例,通過電解槽雜質含量進行聚類分析并且以K-means、經典GNG算法為參照進行了實驗比對。結果表明本文改進GNG算法在跟蹤與監督雜質含量數據更具有優勢,能夠提高動態異常數據預警的有效性和精確性,進而為工廠管理者提供理論技術支持。