畢忠勤, 李歡峰, 張偉娜*, 董真
(1.上海電力大學計算機科學與技術學院, 上海 201306; 2.國網上海市電力公司電力科學研究院, 上海 200437)
近幾年,針對工業設備的狀態維護和故障檢測[1-5]已成為企業一項必不可少的重要內容,異常事件不僅會影響產品的質量、降低流程的連續性,還可能會危及工人的安全。因此,異常檢測問題被頻繁研究。而基于聲音的系統因其價格低廉、安裝速度快、能夠覆蓋攝像頭盲區等優點,在機器學習領域逐漸引起廣泛關注。目前已被應用在不同類型的場景中,如面向電力人員的智能調度[1],對真實電機的實時音頻監控[4],或對滾動軸承的故障診斷[6]。該任務也常被稱為異常聲音檢測(anomalous sound detection, ASD)[7]或聲學機器狀態監測(machine condition monitoring,MCM)[8]。
然而,在實際工業中,訓練集包含的目標域數據的樣本通常很少或沒有,并且由于周圍機器和設備在各種模式和條件下運行,聲音信號往往會容易發生域轉移[9]。域轉移的發生往往因為運行速度、機器負載和環境噪聲等因素變化造成訓練數據和測試數據之間聲學特性差異。因此,在這種情況下,通常考慮使用域泛化技術[11-13]。域泛化技術主要利用源域數據學習不同領域的共同特征,使模型在測試數據中既可以泛化到源域,也可以泛化到目標域。Li等[11]通過對抗訓練的方式,對自動編碼器進行聯合優化,來學習跨域的特征表示。Gou等[10]利用多級殘差連接神經網絡,從頻譜中提取特征,并利用局部異常因子(local outlier factor, LOF)估計特征分布以計算不同領域間各類聲音片段的異常強度。域泛化技術主要適用于由以下四種差異引起的域轉移場景[13]:機器物理參數差異、環境條件差異、維護差異和記錄設備差異。
近年來,將深度學習模型用于工業設備無監督異常聲音檢測已經取得了一些成果。如Wang等[14]提出了一種利用自監督分類器模型、自編碼器和任務無關異常值作為偽異常數據的二元分類模型,并集成了一種基于距離度量的模型。黃健豪等[3]提出了一種基于遷移學習(transfer learning,TL)的無監督結構優化卷積網絡模型,結合快速批量核范數最大化,對不同工況的軸承故障檢測效果有明顯提升。Ramachandra等[15]提出了最近鄰位置相關的異常檢測方案,使用人工制作的距離測量方法,通過從訓練數據中構建一個簡潔的具有代表性的模型計算異常分數。然而音頻表示通常是高維的,隨著數據維度的增加,這些方法可能無法準確地表達模型。
而在異常聲音檢測任務中,利用域泛化技術獲取更多的特征信息已經成為研究熱點。如Liu等[16]提出了六個子系統的組合,包括三種自監督分類方法、兩種概率分類方法和一種基于生成對抗網絡(generative adversarial network, GAN)的分類方法。然而,如果測試集中的目標域數據包含太多訓練集中不包含的數據類型,分類器可能無法區分域,從而會降低模型的魯棒性。Dohi等[13]提出了兩階段的ASD系統,包括一個基于異常點曝光的特征提取器和一個基于內層建模的異常檢測器,因此,該系統模型的復雜度較高,單個階段模型無法適應異常處理任務。現階段對此類問題的研究仍缺乏針對無法適應不同域轉移場景下的有效方法。
針對上述問題,基于聯合深度學習和變分高斯混合模型的新框架(joint deep learning &variable Gaussian mixture,JDL-VGM),提出一種用于機器狀態監測域泛化下的無監督異常聲音檢測算法,學習跨域的廣義潛在特征表示。通過將深度學習與無監督聚類技術相結合,能有效地從聲音信號中提取特征并將其聚類到不同的類中。
JDL-VGM模型主要可以分為三個模塊:數據預處理模塊、嵌入提取模塊和異常評估模塊。模型架構如圖1所示。
1.1.1 音頻特征提取
為了獲得數據的低維表示,需要對音頻進行特征提取[6,17]。同時,為了更好地捕捉來自原始波形的不同機器的聲音特征,該系統利用兩種不同的特征提取方式。
首先,將原始波形轉換為log-Mel譜圖,以初步降低其維數。更具體地說,采用128個Mel濾波器、1 024個窗口大小和512個hop size計算log-Mel譜圖,得到大小為313×128維的特征。然后,所有的log-Mel譜圖通過減去所有訓練集文件的時間均值,并除以時間標準差,以獲得最終的歸一化后的特征。
第二,將原始波形轉化為幅值譜圖,即利用傅里葉分析方法(discrete fourier transform, DFT)將聲音信號從時域變換為頻域,進而得到信號的頻譜結構,以更好地捕捉發出相對靜止聲音的工業機器的聲音特征,如風扇。
1.1.2 數據增強
為了提高系統的分類性能,進一步探索將非線性方法的優點與基于線性的方法結合的可行性,并將其應用于音頻處理任務,引入了“VH-Mixup”[18]混合示例數據增強方法。
首先,考慮以下形式的廣義數據增強方法,即
(1)

VH-Mixup是通過結合“垂直連接”“水平連接”和Mixup[19](或相當于BCL+[20]),并利用其優勢,來進一步降低過擬合的風險。具體算法為:輸入樣本分別通過“垂直連接”和“水平連接”兩兩合并,再將兩者結合,輸出的兩個結果作為中間值輸入到Mixup中,每個中間值都有一個隨機混合系數λ,最后可以得到混合示例,流程如圖2所示。

圖2 VH-Mixup流程示意圖Fig.2 VH-Mixup process diagram
圖2中ai,aj∈RD為每個批量中的兩個示例樣本,左上角來自ai,右下角來自aj,左下角和右上角在兩者之間混合,混合系數λ不同。總的來說,λ1、λ2、λ3服從于Beta分布,可以得到
(2)
式(2)中:F、T分別為示例的兩個維度;a(r,c)為示例a的第r行、第c列的三維數組。

為了更好地提取預處理之后得到的嵌入信息,本文設計了一種深度聯合訓練的神經網絡。該網絡由兩個不同的子網絡組成,分別對每個輸入表示進行訓練,共同區分Machine type、Section和不同的屬性信息,總共產生342個分類。
首先,為了對應不同的分類任務,采用了多個不同的網絡或損失函數,來捕獲嵌入中存在的正常訓練數據的所有信息。由于從預處理層得到的兩種不同的輸入表示的維度差異,因此采用了兩種不同的子網絡架構。對于log-Mel譜圖特征表示,該子網絡架構稱為Mel-Resnet,是在ResNet-18模型的基礎上進行了修改,其中s為步長大小,如圖3所示;而對于幅值譜特征表示,采用3個一維卷積層和5個dense層組合的子網絡架構,稱為DFTnet。如圖4所示, 通過此網絡,可以更好地捕捉發出相對靜止聲音的工業機器的聲音特征。而在整體的網絡架構中,采用了子集群AdaCos損失函數[21],其主要思想是在每個類中使用多個集群,而不是單個集群,以便獲得嵌入學習更復雜的分布。

圖3 Mel-Resnet子網絡架構Fig.3 Mel-Resnet sub-network architecture

圖4 DFTnet子網絡架構Fig.4 DFTnet sub-network architecture
為了使模型能起到良好的泛化性能,如圖3和圖4所示,在嵌入提取模塊中,對子網絡架構進行了設計。
(1)具體來說,采取的策略是將批處理歸一化層(batch normalization, BN)應用于塊之前或flatten層之后,而不在卷積塊內部,以避免學習特定簇到超球面的簡單映射。
(2)隨機初始化子集群AdaCos損失的簇中心。由于嵌入和簇中心都處在一個相對高維的空間,因此極可能是兩兩正交的,所以不必在訓練期間調整它們。
(3)采用LeakyReLU的激活函數,有助于擴大 ReLU 函數的范圍。其中,設定步長參數α=0.1[22]作為非線性。
然后,通過連接這兩個子網絡的輸出(即嵌入),以獲得每個文件的單個嵌入,確保兩個網絡都可以捕獲到各自的特征表示,以區分類需要的所有信息。此時,嵌入對于異常聲音會更加敏感,因為對于某些特定的異常,可能只在其中一個輸入表示中表現顯著,連接后的嵌入便可以利用多個特征表示來獲得更多有用的信息。
為了得到具有更少的病理特征的解,利用變分貝葉斯高斯混合模型(variable bayesian Gaussian mixture model, VBGMM)對從嵌入提取模塊獲取的嵌入進行異常分數的計算,將其產生的對數似然值用作異常評估,流程圖如5所示。
與經典的GMM算法相比,該變分推理讓模型可以自動選擇合適的有效分量數量,更加穩定和需要更少的調優。VBGMM通過使用一種變分方法[23],將通過前端網絡得到的嵌入進行訓練,得到所有機器聲音的異常分數。
首先,假設有N個獨立同分布的數據:X={x1,x2,…,xN}。在貝葉斯學習中,所有參數都已經給定先驗分布。這里用Z={z1,z2,…,zN}和T={t1,t2,…,tN}表示模型的潛變量和參數,并用Ω={Z,T}表示兩者的集合。
對于給定的數據,邊際對數似然定義為
lnp(X)=ln?p(X,Z,T)dZdT
(3)

貝葉斯模型需要權衡擬合數據和模型的復雜度,具體流程如圖5所示。通過一組超參數{θ}對參數分布進行建模,潛變量和參數q(Z,T|X,θ)存在后驗分布。可以將邊際對數似然表示為
(4)

圖5 VBGMM模型流程圖Fig.5 Flow chart of VBGMM model

(5)
式(5)可以表示下界最大值的一組一致性條件。利用式(5)可以得到各因子的最優值q*(Z)、q*(π)、q*(μk,Λk)。由于這些數值的相互依賴性,可以用期望最大化法[23]來求解。其中,關于潛變量Z的最優值計算公式為
(6)


(7)
式(7)中:D為特征的維度;ψ為伽馬函數。
計算出q*(Z)之后,再分別計算混合權值π、均值向量μk和協方差矩陣Λk的最優值。
q*(π)=Dir(π|α)
(8)
q*(μk,Λk)=N(μk|mk,(βkΛk)-1)W(Λk|Wk,υk)
(9)

在這個過程中,對參數進行更新,更新公式為
(10)
βk=β0+Nk,υk=υ0+Nk
(11)
(12)
對給定測試數據的預測可以通過對式(3)中的參數進行積分來實現。對于VBGMM模型,后驗分布混合系數的期望值為
(13)
在這個方程中,Kα0的值相對于N可以忽略不計。因此,當Nk?0時混合系數的期望消失。通過設置先驗α0的值,來最優化該模型的復雜度。
為了進一步提高GMM的域泛化能力,本文中還采用了一種稱為域混合的技術。對于機器類型和section的每個組合,通過取兩個嵌入的平均值,將與源域內的正常訓練樣本對應的每個嵌入和目標域的隨機樣本混合。因此,可以生成既不屬于源域,也不屬于目標域的附加訓練樣本。然后,用這些混合樣本和源域的原始樣本訓練每個GMM,來學習到更獨立于域的嵌入分布。
為了量化分析JDL-VGM方法中引入VBGMM模型、聯合訓練的網絡架構、子集群AdaCos、VH-Mixup等方法對于工業設備異常聲音檢測性能的影響,本節針對Fan、Bearing和Valve三種不同的工業機器類型的異常聲音檢測問題進行了消融實驗和對比實驗。實驗模擬的異常包括工廠噪聲、閥門異常、機器噪聲混合等。
本實驗使用的聲音數據均來源于DCASE-2022 Task2數據。這里選取其中三種工業機器類型,包括Fan、Bearing和Valve。該數據集分成訓練集與評估集,每種機器類型的數據集中均包含6個不同的子集,對應不同類型的域轉移,其數據構成如表1和表2所示。此外,還增加了正常訓練樣本的域和屬性信息來定義機器的狀態或不同類型的噪聲。聲音素材時長均為10 s且為單通道音頻,采樣率為16 kHz,包括真實的工廠噪聲和目標機器聲音。

表1 訓練集的統計信息Table 1 Statistics for the development datasets

表2 附加的訓練集&評估集的統計信息Table 2 Statistics for the additional development datasets &evaluation datasets
本算法的網絡采用Tensorflow2.3框架,訓練的迭代次數均設置為400個epoch,訓練集的batch size設置為64,測試集的batch size設置為32。并通過設置決策閾值,將在該閾值以上的屬于同一種機器類型的測試樣本的所有異常分數標記為異常樣本,反之,標記為正常樣本。其中,設置所有正常訓練樣本的異常分數的分位數為第90百分位。
本實驗通過AUC(ROC曲線下的面積)、F1分數和諧波平均值,三種指標對模型進行評估。AUC和F1分數均為異常檢測中最為常用的指標。其中,AUC可以理解為模型將正常聲音樣本識別正確的概率大于將異常聲音樣本識別錯誤的可能性。因此,AUC越大,說明模型的準確率越高;反之,準確率越低。
每個域的平均AUC可以表示為
(14)
這里諧波平均值表示為hmean,具體計算公式為
hmean=h{AUCm,n,d,pAUCm,n,d|m∈M,n∈ζ(m),
d∈{source,target}}
(15)
式(15)中:h(·)為調和平均值(所有機器類型、section和領域);source為源域,target為目標域;M為機器類型集;ζ(m)為機器類型m的段集;pAUC為偏AUC。
F1分數是每個域的準確率和召回率的調和平均值。F1分數越大,說明模型的準確率越高;反之,準確率越低。具體計算公式為
(16)
式(16)中:P為準確率;R為召回率。
由于域泛化場景的識別異常的過程難以檢測域轉移的發生,因此,實驗使用相同的指標對不同領域的不同機器類型進行評估。
2.4.1 探究JDL-VGM的聚類性能
為了驗證系統中提出的VBGMM模型的聚類性能,進行了消融實驗。圖6所示為采用變分方法的VBGMM模型和具有固定分量的GMM聚類效果的比較。其中,選用的機器類型設定為“Fan”,section ID為0~5,包括了11 940條數據。結果是一個多元正態分布矩陣,使用不同的顏色表示生成的簇,橫縱坐標為正態分布的分位數。從圖6所示實驗結果可以看出,高斯混合模型為經典模型,被指定由6個簇組成;變分貝葉斯高斯混合模型被較明顯分成7個簇,更符合Fisher線性判別,在聚類性能上要優于經典的GMM模型。

圖6 聚類效果對比圖Fig.6 Comparison of clustering effect
2.4.2 探究各組成模塊的有效性
為驗證提出的模型中不同模塊對三種不同機器類型的有效性,在上述數據集上進行了消融實驗,實驗結果如表3所示。本實驗以hmean為評價指標。

表3 探究不同模塊對整個模型的影響Table 3 Explores the impact of different modules on the whole model
JDL-VGM-1:作為對照組,方便與其他實驗進行結果的對比。如表3所示,與其他幾組實驗結果相較,VH-Mixup數據增強方法和VBGMM模塊對整體模型的檢測精度都有顯著提升;較兩種基線模型,提出的模塊在三種不同的機器類型上均表現出更好的性能。
JDL-VGM-2:VBGMM對從JDL-VGM模型的神經網絡中取得的嵌入進行聚類分析,為了展示VBGMM模型對JDL-VGM性能的影響,在JDL-VGM基礎上將VBGMM模型替換為不含變分模塊的GMM模型。如表3所示,相較JDL-VGM-3,JDL-VGM-2在機器類型fan和bearing上取得更優的h-mean值,在機器類型valve上性能較低。從整體上看,VH-Mixup數據增強方法和VBGMM模塊對模型的提升效果相近。
JDL-VGM-3:即無VH-Mixup模塊的JDL-VGM。由表3中的結果可知,與JDL-VGM相比,JDL-VGM在3個不同機器類型的數據集上均取得了更優的hmean,驗證了JDL-VGM算法的有效性。
本小節將提出的方法與其他算法進行比較,進一步驗證提出算法的有效性。其中所采用的基線模型分別為Base-AE和Base-MobV2。前者將異常評分作為觀測聲音的重構誤差計算,為了獲得正常聲音的小異常值,對自動編碼器進行訓練,使正常訓練數據的重構誤差最小化;后者使用了基于機器檢測的異常評分計算器,通過訓練MobileNetV2分類器[24],以確定觀察到的信號是從哪個部分產生的。
表4所示為在評估集上所獲得的ASD結果,并與兩種基線模型進行了對比。對于所有的機器類型和領域,所提出的系統在AUC和F1分數評分方面都顯著優于基線系統(其一),且在絕大部分情況下目標域的性能都接近甚至超越在源域獲得的性能,并且要遠高于隨機猜測。然而,兩個基線模型在預測某些目標域的異常聲音時都表現較差,在某些情況下,AUC處在50%以下。但從結果上來看,所提出的系統的在域泛化場景下的性能都要遠遠優于基線。

表4 評估集上不同機器類型的平均AUC&F1 scoreTable 4 Average AUC&F1 score of different machine types in the evaluation dataset
為進一步驗證本文提出的算法有效性,對比測試了其他涉及域泛化場景下工業設備的異常檢測算法模型[13]。本文與Gou_UESTC、Liu_BUPT、PENG_NJUPT、Li_CTRI和Cohen_Technion等幾個經典的模型進行了比較。
Gou_UESTC[10]:這是一種由多級殘差神經網絡組成的網絡,用于從片段的頻譜中提取特征,并通過LOF估計特征的分布。
Liu_BUPT[25]:這是一種可以捕獲分布密度的基于掩蔽自回歸流的密度估計概率分布模型,利用MADE進行分布估計。
Peng_NJUPT[26]:該模型結合光譜相干性、log-Mel譜和小波包能量譜進行特征融合。
Li_CTRI[27]:該模型提出了一種集成基于CNN的特征和自動編碼器的方法。
Cohen_Technion[28]:該模型基于黎曼距離,在每個聚類的中心訓練一個支持向量機 (support vector machine,SVM)模型,用于檢測異常。
訓練結果如圖7所示,列出了在評估集上不同方法在三種機器類型上的平均AUC對比。從結果上來看,所提出的系統在三種機器類型上都要優于其他算法。

圖7 評估集上在三種機器類型上的平均AUC的算法對比Fig.7 Comparison of average AUC of different methods on three machine types in the evaluation dataset
總體而言,消融實驗和對比實驗均驗證了提出模型的各組成模塊能有效提升異常聲音檢測的性能。
本文提出了一種具有較強的域泛化能力的無監督異常聲音檢測系統。該系統基于一個經過子集群的AdaCos損失訓練的神經網絡來提取嵌入,由兩個精心設計的子系統組成,利用log-Mel譜圖和幅值譜作為特征表示,分別輸入兩個神經網絡進行聯合訓練。同時提出了一種新的混合示例數據增強技術,該技術將源域和目標域的樣本用多種方式相結合的替代方法生成示例,以提高模型的域泛化能力;最后,用VBGMM估計嵌入的分布以獲得異常分數。實驗結果表明,所提出的系統在源域和目標域上都顯著優于基準系統,且高于大部分已提出的系統。在未來的工作中可以進一步借助外部信息(如屬性信息)獲得更有意義的合成表示,從而優化系統的整體性能。