張懷峰,江 婧,張香燕,皮德常
(1. 南京航空航天大學計算機科學與技術學院,南京 211106;2. 北京空間飛行器總體設計部,北京 100094)
衛星電源系統的主要功能包括產生、儲存、變換、調節和分配電能,是衛星系統的重要組成部分。由于外太空環境復雜,衛星電源系統在軌運行期間不可避免地會出現一些異常,影響衛星的正常運行,及時有效地檢測衛星電源系統的異常,對保障衛星正常運行具有重要意義。
近年來,相關學者提出了一些基于傳統機器學習方法的衛星電源系統異常檢測算法。Pan等[1]利用關聯規則挖掘的方法發現電源系統各個零部件之間的關聯規則,然后使用核PCA(Principal components analysis)進行異常檢測,該方法充分利用了衛星分系統各個零部件產生的數據;康旭等[2]針對遙測數據維度過高,首先計算某一屬性和該屬性方向平行線的余弦值,通過度量余弦值,篩選出異常相關屬性,然后使用篩選出的屬性進行異常檢測;李楠等[3]針對自旋穩定衛星提出了一種數據驅動的異常檢測方法,該方法使用衛星姿態與傳感器之間的冗余關系作為判斷異常的依據,并用主成分分析量化這種冗余關系,通過比較主成分子空間的特征值和殘差子空間的特征值來判定異常,通過仿真試驗驗證了方法的有效性;金洋等[4]針對傳統的定性模型診斷方法推理規模過大,不能達到航天器異常檢測的實時性要求的困難,提出了解析冗余計算方法和擴展候選產生算法,通過控制規模降低計算量,提高異常檢測效率。
由于衛星電源系統具有眾多零部件,每個零部件都包含一個或多個參數,并且衛星運行過程中會周期性地經過地球的向陽面和背陰面,電源系統會做出相應的充放電動作。因此其產生的數據具有維度高、周期性明顯的特點。針對該系統某一個或多個特定參數進行異常檢測,往往不能反映出系統的真實狀態,而使用所有參數進行異常檢測,傳統的機器學習算法又面臨著“維度詛咒”的困難,用于異常檢測時往往檢測速度慢且效果不佳。
近年來深度學習在計算機視覺、語音識別和自然語言處理等領域都取得了優秀的成果。在異常檢測領域,采用基于深度學習的堆疊自編碼器(Stacked auto encoders,SAE)實現異常檢測愈來愈受同行學者的關注。Sun等[5]提出了一種基于深度神經網絡的發動機異常檢測方法,其首先使用稀疏自編碼器進行特征提取,然后使用提取到的特征訓練神經網絡進行異常檢測,該方法取得了較好的檢測效果;Wang等[6]為了檢測變壓器異常,提出了一種自編碼器-連續稀疏自編碼器(Continuous sparse auto encoder,CSAE)用來學習特征,CSAE在激活函數部分加入高斯隨機單元來學習非線性數據的特征,然后使用學習到的特征進行異常檢測。當前已有的基于自編碼器的異常檢測方法通常在使用自編碼器進行降噪濾波和特征提取,對提取到的特征使用其他分類算法進行分類,這種方式通過少量數據訓練就可以得到較好的異常檢測效果,充分發揮了堆疊自編碼器強大的特征提取能力。
衛星電源系統產生的數據具有維度高的特點,直接將SAE用于衛星電源異常檢測面臨著如下困難:
1)若直接使用電源系統產生的高維數據訓練SAE,即將每個時刻產生的數據作為訓練樣本輸入SAE,這樣雖然充分利用了電源系統各個參數的數據,但是將每個樣本當做了孤立的樣本,丟失了時間維度上的信息,割裂了數據的相關性。
2)若針對某一個具體參數,采用固定長度的數據作為訓練數據輸入到SAE,則沒有充分利用電源系統的其他參數,并不能反映出電源系統的真實狀態,且無法準確地檢測出異常發生的時刻。
針對上述困難,本文通過改進SAE的損失函數和訓練算法,提出了一種新的代表性特征自編碼器(Representative feature auto-encoder,RFAE),用來對衛星電源系統進行無監督的異常檢測。本文主要貢獻如下:
1)SAE的損失函數一般只衡量重構樣本和原始樣本之間的誤差,本文提出了一種既能衡量SAE重構樣本和原始樣本之間的誤差,又能衡量SAE重構樣本之間誤差的損失函數,稱之為差異函數(Difference function, DF)。
2)提出了一種面向周期性時序數據的訓練算法(Periodic data training algorithm, PDTA)。該算法根據相位對時序數據進行分組,相位相同的樣本劃分為同一組,保留了時序數據的周期信息,并通過核密度估計解決每個分組內數據量少的問題。
3)結合本文提出的損失函數DF和訓練算法PDTA,然后又提出了代表性特征自編碼器(Representative feature auto encoder, RFAE)并用于衛星電源系統異常檢測。相比SAE,RFAE能夠提取到相位相同樣本的代表性特征,根據代表性特征重構樣本,通過衡量重構樣本和原始樣本之間的誤差檢測異常。相比于目前的異常檢測算法,RFAE不限制輸入數據的維度,充分利用了電源系統各個參數的數據,并且PDTA訓練算法保留了時序數據的周期性信息。通過模擬數據和真實數據分別進行了對比試驗,RFAE均優于目前最新的相關算法。

圖1 RFAE異常檢測流程Fig.1 RFAE anomaly detection process
RFAE異常檢測的整體流程如圖1所示。其中損失函數使用了前文提出的差異函數DF,差異函數綜合了原始樣本和重構樣本之間的誤差以及重構樣本之間的誤差,使RFAE學習能到代表正常樣本的特征,稱之為代表性特征。
圖1中的虛線部分為訓練過程。RFAE的訓練算法使用了前文提出的周期性數據訓練算法PDTA。PDTA首先將周期性時序數據按相位進行分組,相位相同的樣本劃分為同一組,如圖1中原始數據長度為n,周期為p,按相位進行劃分后得到p組數據,每組約有n/p條數據。為了用更多的數據訓練RFAE,PDTA使用核密度估計算法估計每組內的樣本分布,根據估計的樣本分布生成新的樣本,從而達到增加每組樣本數量的目的。在訓練階段,PDTA每次從同一組內選擇數量為b的樣本,然后使用反向傳播和Adam算法[7]使DF最小化,從而可以學習相位相同樣本的代表性特征。
圖1中的實線部分展示了異常檢測過程。RFAE根據代表性特征重構樣本,計算重構樣本和原始樣本之間的誤差,若誤差大于閾值則判定樣本為異常,從而達到異常檢測的目的。
RFAE是基于堆疊自編碼器的異常檢測模型,且PDTA算法需要核密度估計來生成新的數據,下面簡要介紹堆疊自編碼器和核密度估計。
自編碼器是一種神經網絡,經過訓練后能嘗試將輸入復制到輸出。自編碼器內部有一個隱藏層,可以產生編碼h來表示輸入。該網絡由兩部分組成:一個由函數h=f(x)表示的編碼器和一個生成重構樣本的解碼器r=g(h)[8]。堆疊自編碼器由若干自編碼器堆疊而成,包含有多個隱藏層。
堆疊自編碼器在學習過程通過調整網絡參數W和b,最小化損失函數L(x,r)。損失函數L懲罰r與x的差異,如均方誤差:
(1)
通常為了使自編碼器學習到的特征更加魯棒,可對損失函數加入權值衰減約束和稀疏性約束。
密度估計是一種根據觀察到的樣本,對整個數據集分布做出估計,進而得到整個數據集的概率密度函數的方法[9]。Rosenblatt[10]和Parzen[11]提出了一種非參數估計方法,稱為核密度估計。由于核密度估計不利用有關數據分布的先驗知識,對數據分布不附加任何假定,是一種從樣本本身出發研究數據分布特征的方法,在統計學領域均得到了廣泛使用。
核密度估計將直方圖估計的思想做了推廣。如果根據樣本X1,X2,…,Xn,做出帶寬為h的直方圖,則對于點x處的密度估計可以寫成
(2)
其中,k是區間(x-h,x+h)內的樣本數目,這個估計可以寫成
(3)

核密度估計將權重函數ω(t)替換為其他函數K(·),K(·)稱為核函數,且

(4)
假設K(·)是一個原點為中心的對稱概率密度分布,那么有
(5)

h=0.9min(S,Q/1.34)n-0.2
(6)
本節介紹RFAE的異常檢測過程,分3小節分別介紹差異函數DF、訓練算法PDTA和RFAE的異常檢測算法。
為了方便表述,首先引入物理學中相位的概念。相位是對于一個波,某一時刻這個波在循環中的位置。在周期性時序數據中,不同周期的數據相對于這個周期起點的位置,稱為相位。易知,在周期性時序數據中,如果兩條數據的相位相同,那么這兩條數據的值也相同。
衛星電源系統產生的是周期性高維時序數據X=x0x1,…,xn-1,記時間序列X的周期為p,xi是在時間為i時產生的數據,含有d個參數,總時長為n,不妨設X共有k個周期,即n=kp。將衛星電源系統正常狀態產生的數據稱為正常樣本數據,簡稱正常樣本。異常狀態產生的數據稱為異常樣本數據,簡稱異常樣本,檢測衛星電源系統異常也即是檢測出X中的異常樣本。
由于X具有周期性,若xi和xi+cp,c=0,1,…,k-1都是正常樣本,則xi和xi+cp相等。即相位相同的正常樣本,樣本的值也相等。由于實際上樣本會受到噪聲的影響,因此有
(7)
將xi和xi+cp劃分為同一組,則X可劃分為p組,如式(8)。
(8)
其中,Si組內的數據具有相同的相位,稱Si為一個分組。如果分組Si內的樣本都是正常樣本,則Si內的樣本應該是近似相等的;若Si內有異常樣本,則由于異常樣本相比于正常樣本數量較少,因此Si內的大多數樣本也都是正常樣本,而只有少量異常樣本。研究要求自編碼器學習到Si中可以表示大多數正常樣本的特征h,而忽略其中的數量較少的異常樣本,稱h為代表性特征。將重構樣本與原始樣本之間的誤差稱為重構誤差,根據同一個分組Si內的樣本生成的重構樣本之間的誤差稱為組內誤差。根據h重構的正常樣本r具有如下特點:(1) 重構樣本與原始樣本差異較小,即重構誤差較??;(2) 同一分組重構樣本之間的差異較小,即組內誤差較小。重構誤差可以用式(1)來衡量。對于組內誤差,首先計算重構樣本兩兩之間的距離
D={d00,d01,…,di(k-1),d(i+1)0,…,d(k-2)(k-1)}
(9)
其中,dij是重構樣本ri和rj之間的距離。為了衡量重構樣本之間的差異,有
R=μ(D)+σ(D)
(10)
其中,
(11)
(12)
式(11)計算D的均值,式(12)計算D的標準差。從而可知,R越小則重構樣本之間的差異越小,即組內誤差越小,反之則反。
經過上述分析,得到用來提取代表性特征的損失函數
L(x,r)=μE+νR
(13)
其中,E用以衡量重構誤差,R用以衡量組內誤差,稱上式為差異函數DF,其中系數μ,ν取值范圍為[0,1],當μ/ν→0時,重構誤差可忽略不計,堆疊自編碼器僅最小化組內誤差;當μ/ν→∞時,組內誤差可忽略不計,堆疊自編碼器僅最小化重構誤差。
如3.1節所述,在使用DF作為損失函數時,為了使堆疊自編碼器可以學習相同相位樣本的代表性特征,需要對訓練數據按相位進行分組,相位相同的樣本劃分為同一組。為了提高每個分組內數據的數量,對每個分組內的數據進行核密度估計。然后從估計的概率分布中采樣出一部分樣本,并把它們加入到相應的分組,作為對原始數據的補充。然后從每個分組內選出若干樣本進行訓練,使用梯度下降和Adam算法最小化損失函數,即DF函數。稱該算法為周期性數據訓練算法PDTA。

圖2 算法流程圖Fig.2 Flow chart of the algorithms
PDTA算法流程如圖2(a)所示。PDTA首先對原始的高維時序數據X按相位進行分組,然后對每個分組內的數據進行核密度估計,得到相應的概率分布P,從P中采樣出一定數量的樣本,加入到對應的分組中。在訓練階段,算法隨機選取一個分組,然后從這個分組中選出b條訓練數據,使用反向傳播和Adam算法訓練RFAE。
以DF為損失函數,并且使用PDTA算法進行訓練的堆疊自編碼器可以提取到高維周期性數據的代表性特征,研究把這種堆疊自編碼器稱之為代表性特征自編碼器RFAE。
RFAE提取到的是代表性特征,該特征表示的是每個分組內的正常樣本。根據該特征重構樣本時,若原始樣本是正常樣本,則重構樣本和原始樣本差異較小,即重構誤差較??;若原始樣本是異常樣本,由于代表性特征并不能準確的表示異常樣本,因此重構樣本和原始樣本差異較大,即重構誤差較大。基于這一點,通過重構誤差來檢測異常。檢測算法流程如圖2(b)所示。對于每個樣本xi,通過訓練好的RFAE模型M生成其重構樣本,然后根據式(1)計算重構誤差,若重構誤差大于某一個閾值ε,則該樣本被判定為異常樣本,否則為正常樣本。
首先通過模擬數據檢驗RFAE模型的有效性。模擬數據集含有100個參數,共有100000條數據。為了生成和衛星電源系統遙測數據相似的高維周期性數據,從正弦函數y=0.5(sin(a(x+b))+1)中產生每一個參數的100000條數據。其中a=π/50,b=0,1,2,…,99,每個參數都對應著一個b的值。由此可知,模擬數據的周期為100。對于生成的模擬數據,添加均值為0,方差為0.01的高斯噪聲。從模擬數據中隨機選取1000條數據,其中每條數據隨機選取4個參數,將這4個參數對應的值增加或減少10%,將這1000條數據作為異常數據。最后,將所有數據進行歸一化處理。
為了檢驗DF損失函數和PDTA算法的有效性,首先在模擬數據上進行對比試驗。試驗參數設置如表1所示。三個模型的結構相同,包含7個隱藏層,每個隱藏層神經元的數目為[50,20,10,5,10,20,50]。SAE1和SAE2采用了相同的損失函數,都是均方誤差函數;但是訓練算法不同,其中SAE1采用了神經網絡常用的訓練算法,即從訓練數據中隨機選取批量數據進行訓練;SAE2采用了本文提出的PDTA算法。SAE2和RFAE均采用PDTA作為訓練算法,但SAE2采用均方誤差作為損失函數,RFAE采用DF作為損失函數。其中訓練輪數設為15,學習率l=0.005,批量大小b=15,u=1,ν=0.00001。在異常檢測階段,將樣本按重構誤差從大到小排序,前1000個樣本被預測為異常樣本。三個模型準確率隨訓練輪數的變化如圖3所示。

表1 模擬數據實驗模型設置Table 1 Model setting of synthetic data experiment
圖3中SAE1的準確率變化始終在0~0.2范圍內波動,并不能準確地檢測出異常數據;SAE2相較于SAE1,準確率有所提升,但并不穩定;RFAE檢測效果最佳,最終準確率達到了1并且穩定在這一水平。由SAE1和SAE2的準確率曲線對比可知,PDTA算法對于異常檢測效果有一定的提升;由SAE2和RFAE的準確率變化曲線可知,DF損失函數相較于MSE損失函數,對異常檢測效果也有提升。即RFAE對于異常樣本的重構誤差大于SAE對于異常樣本的重構誤差。根據重構誤差,將正常樣本和異常樣本分開,進而達到異常檢測的效果。詳細分析將在下一節真實數據實驗中介紹。

圖3 準確率變化曲線Fig.3 Accuracy curve
本試驗采用的數據是2014年1月1日至2014年12月31日某在軌衛星電源系統76個參數的數據。電源系統每隔一定時間段下傳一次各個參數的數據,12個月大約有2.33×107條數據。本試驗使用RFAE分析這些數據,并檢測衛星電源系統發生的異常。
衛星遙測數據不可避免地會受到天地傳輸網絡的影響,從而產生野值。如果保留野值,算法會認為是異常導致誤報,因此需要剔除野值。實際中衛星異常通常會持續一段時間,而野值通常只出現在某一時刻,然后采用中值濾波過濾野值。
為了便于算法檢驗異常,需要將各參數的數據采樣頻率統一化,通過使用降采樣,將各個參數采樣頻率降為1 min,數據壓縮為525600條,其中異常數據約有1700條,使用這些數據來檢測電源出現的異常。通過統計了異常數據的條數(如代號為2143的參數分別在2014年7月26日00:42-01:50、2014年8月17日22:07-22:53出現了異常,該異常共持續114 min,對應著114條遙測數據),得到的異常詳細信息如表2所示。

表2 異常信息Table 2 Anomaly information
為了檢驗RFAE模型使用DF損失函數具有提取代表性特征的能力,將RFAE和SAE進行了對比試驗。表3給出了SAE和RFAE模型的結構和損失函數。二者的網絡結構相同,包含7個隱藏層,每個隱藏層神經元的數量為[40,20,10,5,10,20,40];SAE采用普通的神經網絡訓練算法,每個訓練批次的數據從全體訓練數據中隨機選取,RFAE采用PDTA作為訓練算法,每個訓練批次的數據來自于同一個分組;SAE采樣均方誤差MSE作為損失函數,RFAE采用差異函數DF作為損失函數。

表3真實數據實驗模型設置Table 3 Model setting of real data experiment
模型訓練學習率設為0.005,訓練輪數設為10,每個訓練批次樣本個數為15。在訓練時,由于缺乏先驗知識,無法準確地確定閾值。為了計算準確率,將訓練中重構誤差最大的前1700個樣本預測為異常樣本,然后計算訓練過程中異常樣本檢測的準確率。訓練過程中的準確率變化曲線如圖4所示。訓練完成后,最終RFAE檢測異常準確率為97.9%,高于SAE的29.6%。這是由于SAE最終學習到的是所有樣本的特征,無論是正常樣本還是異常樣本,SAE都可以比較準確地生成重構樣本,導致異常樣本和正常樣本的重構誤差相差不大,無法根據重構誤差區分出正常樣本和異常樣本。相反,RFAE模型學習到的是代表性特征,僅能夠比較準確地重構出正常樣本,但是無法準確地重構出異常樣本,即正常樣本重構誤差較小,異常樣本重構誤差較大,可以根據重構誤差有效地區分出正常樣本和異常樣本。因此而導致RFAE模型準確率遠遠高于SAE。

圖4 準確率變化曲線Fig.4 Accuracy curve
重構誤差是檢測異常樣本的重要指標。圖5和圖6分別展示了SAE和RFAE正常樣本和異常樣本的重構誤差分布直方圖。由圖5可知,SAE對正常樣本和異常樣本的重構誤差分布情況基本一致,分布在[0,1]區間,并且隨著重構誤差的增大,樣本頻數減少,并不能通過重構誤差明顯地區分正常樣本和異常樣本。由圖6可知,RFAE對正常樣本和異常樣本的重構誤差分布情況明顯不同,正常樣本的重構誤差分布在[0,2]區間內,而異常樣本的重構誤差大多集中在[3,8]區間內。根據重構誤差的大小可以明顯的區分出異常樣本和正常樣本,這再次證明了RFAE具有學習代表性特征的能力,從而提高了RFAE檢測異常的能力。
為檢驗RFAE的有效性,根據訓練后的模型,設置不同的ε值,根據ROC曲線(Receiver operating characteristic curve)確定最佳閾值約為ε=2.0053,此時假正率為0.38%,真正率為97.61%。確定閾值ε后,將RFAE和其他常用的無監督異常檢測算法進行對比:
1) iForest,基于樣本孤立性的異常檢測方法[13]。
2) OCSVM,基于支持向量機的異常檢測方法[14]。
3) PCA,基于主成分分析的異常檢測方法[15]。
4) BoostSelect,基于集成技術的異常檢測方法[16]。


圖5 SAE的正常樣本和異常樣本重構誤差分布直方圖Fig.5 Histogram of reconstructed error in SAE

圖6 RFAE正常樣本和異常樣本重構誤差分布直方圖Fig.6 Histogram of reconstructed error in RFAE
由表5可知,其他算法由于數據維度較高,導致準確率低于RFAE。由于異常樣本的數量遠遠低于正常樣本,導致類別不平衡,從而預測為假正的樣本數量較多。其他算法雖然召回率較高,但是精確率比較低。F值綜合了召回率和精確率來衡量模型的優劣,由表5可知,RFAE算法的檢測效果明顯優于其他算法。此外,表5的最后一行展示了每個算法在預測階段的運行時間,RFAE模型的運行時間最短,略低于PCA的運行時間,這是由于RFAE模型在訓練完成后直接調用訓練好的模型進行檢測。綜上所述,RFAE模型在預測效果和運行時間上均優于當前主流的異常檢測算法。

(14)

表5 異常檢測結果對照表Table 5 Table of anomaly detection results
本文針對衛星電源遙測數據維度高、周期性明顯的特點,提出了一種新穎的代表性特征自編碼器RFAE模型,并用于異常檢測。RFAE通過改進SAE的損失函數和訓練算法,使得模型可以提取每個周期正常樣本的代表性特征。通過代表性特征重構樣本,根據重構誤差來判斷樣本是否異常。相較于其他異常檢測算法,一方面,RFAE不限制輸入數據的維度,充分利用了電源系統遙測數據各個參數的信息,使得模型能夠反映出電源系統的真實狀態;另一方面,RFAE通過PDTA算法進行訓練,保留了時序數據的周期性信息,從而能夠反映電源系統隨時間的變化情況。通過模擬數據和真實遙測數據分別進行了對比實驗,RFAE均取得了優于當前主流異常檢測算法的效果。此外,也為解決高維周期性時序數據的異常檢測提供了一種新的解決思路。
未來將進一步研究下列問題:(1)RFAE異常檢測閾值ε需要根據經驗設置,在以后的工作中,將研究如何根據重構誤差的分布情況由算法自動確定閾值,研究參數的自適應性;(2)電源系統會隨著時間發生緩慢的性能退化,根據歷史數據訓練得到的模型是靜態的,具有時效性,這和當前電源系統的狀態有一定的偏差,這個偏差會隨時間越來越大,從而導致模型檢測效果變差。因此,在以后的工作中,團隊將進一步研究如何降低衛星電源系統退化對異常檢測效果造成的不良影響。