蔚來汽車深度學(xué)習(xí)算法實踐
一、NIO Power 業(yè)務(wù)背景
1、蔚來汽車能源服務(wù)體系
NIO Power 業(yè)務(wù)團隊的目標是構(gòu)建全球創(chuàng)新的智能能源服務(wù)體系,基于移動互聯(lián)網(wǎng)的加電解決方案,擁有廣泛布局的充電換電設(shè)施網(wǎng)絡(luò),依托蔚來云技術(shù),搭建“可充可換可升級”的能源服務(wù)體系,為車主提供全場景化的加電服務(wù)。
2、設(shè)備運維的挑戰(zhàn)
NIO Power 設(shè)備運維服務(wù)主要包括蔚來換電站、蔚來超充樁、7KW 家充樁 2.0、20KW 家用快充樁等設(shè)備;該服務(wù)當前面臨諸多挑戰(zhàn),主要包括:
① 保障設(shè)備無安全隱患。
② 用戶投訴:加電體驗不佳。
③ 因設(shè)備故障導(dǎo)致的充換電成功率降低。
④ 因設(shè)備故障導(dǎo)致的停機。
⑤ 運維成本較高。
二、NIO Power 設(shè)備運維解決方案
公司的 4 類主要充放電設(shè)備(換電站、超充樁、7KW 家充樁、20KW 家用快充樁)都包含大量傳感器,因此將傳感器實時采集的數(shù)據(jù)統(tǒng)一接入蔚來能源云進行統(tǒng)一存儲和管理,并引入基于 PHM(故障預(yù)測與健康管理)預(yù)測性維護技術(shù),通過一系列 AI 算法,例如:GAN(生成對抗網(wǎng)絡(luò))和 Conceptor(概念器網(wǎng)絡(luò)),得到設(shè)備的異常檢測情況以及故障診斷情況,并根據(jù)該診斷預(yù)測結(jié)果為設(shè)備提供最優(yōu)的預(yù)測性維護決策方案,并下發(fā)相關(guān)運維工單,實現(xiàn):
① 消除設(shè)備安全隱患。
② 減少用戶對于加電體驗不佳方面的投訴。
③ 提升充換電成功率。
④ 減少因設(shè)備故障導(dǎo)致的停機。
⑤ 降低運維成本。
因此,PHM 技術(shù)和算法的引入,有效地幫助公司改善了智能能源服務(wù)體系,并形成閉環(huán),從而提升和優(yōu)化 NIO Power 的服務(wù)能力。
三、PHM 技術(shù)面臨的挑戰(zhàn)
前沿的 PHM 技術(shù)都是基于數(shù)據(jù)驅(qū)動的人工智能技術(shù),“數(shù)據(jù)驅(qū)動”依賴大量樣本和標簽來構(gòu)建模型,而模型往往都是在理想的場景下構(gòu)建的,然而真實的場景往往并不理想。
從上圖可以看出,真實場景常具備以下特點:
① 故障樣本少。
② 故障樣本標注困難。
由此帶來了該場景下面臨的兩類問題:一類是無監(jiān)督學(xué)習(xí)問題,另一類是小樣本學(xué)習(xí)問題。
四、PHM 前沿技術(shù)
針對真實場景下面臨的這兩類問題,我們提出了以下幾種 PHM 前沿技術(shù),并應(yīng)用于 NIO Power 場景下。
1、基于生成對抗網(wǎng)絡(luò)(GAN)的無監(jiān)督異常檢測
(1)GAN 結(jié)構(gòu)
生成式對抗網(wǎng)絡(luò),于 2014 年提出,是一類基于深度學(xué)習(xí)的無監(jiān)督學(xué)習(xí)技術(shù),主要由生成器和判別器這兩個子網(wǎng)絡(luò)構(gòu)成。
上圖中紅色 G 網(wǎng)絡(luò)即為生成器網(wǎng)絡(luò),而藍色 D 網(wǎng)絡(luò)即為判別器網(wǎng)絡(luò)。
生成器網(wǎng)絡(luò)輸入隨機數(shù)分布(如高斯分布),輸出用戶指定的特定分布;從樣本的角度來看,將 100 個從隨機數(shù)分布中抽樣得到的數(shù)據(jù)輸入給 G 網(wǎng)絡(luò),G 網(wǎng)絡(luò)會將這 100 個樣本映射到與真實數(shù)據(jù)一樣的空間中,形成分布 G(z),并利用判別器網(wǎng)絡(luò)得到 G(z) 與真實數(shù)據(jù) X 這兩種分布的差異,隨后優(yōu)化 G 網(wǎng)絡(luò)直至 G(z) 分布接近真實數(shù)據(jù) X 分布。G 網(wǎng)絡(luò)會輸出這 100 個數(shù)據(jù)并形成一種特定的分布 G(z)。
判別器網(wǎng)絡(luò)的核心是構(gòu)建了 G(z) 分布與真實數(shù)據(jù) x 分布的近似 Jensen-Shanon 散度,以此來衡量生成的分布與真實的分布的差異。近似 Jensen-Shanon 散度通過標準的基于二項交叉熵的二分類網(wǎng)絡(luò)來實現(xiàn),判別器網(wǎng)絡(luò)輸出是個從 0 到 1 的連續(xù)值。如果輸出為 1,則認為輸入樣本 X 來源于真實的分布;如果輸出為 0,則認為輸入樣本 X 是假的,是仿造的。
在 GAN 網(wǎng)絡(luò)的訓(xùn)練形式上,生成器生成的樣本嘗試與真實樣本的分布接近,而判別器嘗試區(qū)分出生成的樣本為假的,以此為生成器提供更準確的 Jensen-Shanon 散度值的梯度,可以讓生成器朝著更優(yōu)的方向迭代。最終這兩種形成了對抗關(guān)系,生成器“拼命”生成假數(shù)據(jù),判別器“拼命”對輸入數(shù)據(jù)進行真假區(qū)分。GAN 網(wǎng)絡(luò)最終將達到一種均衡的狀態(tài):生成得到的數(shù)據(jù)分布 G(z) 剛好完整覆蓋所有的真實樣本 X 的分布。
(2)GAN 損失函數(shù)
從數(shù)學(xué)的角度理解 GAN 網(wǎng)絡(luò),可以從損失函數(shù)理解。損失函數(shù)可使用價值函數(shù) V(G,D),通過常見的 minmax 優(yōu)化,同時優(yōu)化 G 網(wǎng)絡(luò)和 D 網(wǎng)絡(luò)的參數(shù);對于給定的 G 網(wǎng)絡(luò),優(yōu)化目標就是最小化價值函數(shù),如下公式所示:
公式中 JSD 為該損失函數(shù)最核心的優(yōu)化項,是兩種分布間差異性的一種度量方式。從公式中可以看出,該優(yōu)化的本質(zhì)就是最小化 X 和 G(z) 之間的分布差異;分布差異越小,說明 G 網(wǎng)絡(luò)訓(xùn)練得越成功。
(3)Auto-Encoder aided GAN for Anomaly Detection (AE-GAN)
基于 GAN 網(wǎng)絡(luò),引入 Auto-Encoder 實現(xiàn)設(shè)備運行數(shù)據(jù)的異常檢測。
具體實現(xiàn)方式是:
第一步,搭建 GAN 模型并訓(xùn)練得到一個 G 網(wǎng)絡(luò),該網(wǎng)絡(luò)剛好重構(gòu)了設(shè)備運行數(shù)據(jù)的分布。
第二步,丟棄 GAN 網(wǎng)絡(luò)中的 D 網(wǎng)絡(luò)部分,固定 G 網(wǎng)絡(luò)參數(shù)并在 G 網(wǎng)絡(luò)之前引入Encoder網(wǎng)絡(luò);這樣,Encoder 網(wǎng)絡(luò)和 G 網(wǎng)絡(luò)組合形成一套標準的 Auto-Encoder 網(wǎng)絡(luò),該網(wǎng)絡(luò)的損失函數(shù)為重構(gòu)誤差。
這樣,我們通過優(yōu)化 Auto-Encoder 網(wǎng)絡(luò),即可完成異常檢測,其背后的原理是:不管輸入樣本如何,通過 Auto-Encoder 網(wǎng)絡(luò)輸出的樣本都會處于正常樣本區(qū)間范圍內(nèi)。因此,如果輸入樣本為正常樣本,則生成樣本和原樣本同處于相同區(qū)間內(nèi),因此重構(gòu)誤差會很小甚至接近 0;而如果輸入樣本為異常樣本,生成樣本仍在正常樣本區(qū)間范圍內(nèi),這樣會導(dǎo)致重構(gòu)誤差較大;因此,通過重構(gòu)誤差可以判斷樣本是否正常。
第三步,通過一小批正常樣本來獲得一系列重構(gòu)誤差分數(shù),并以其最大值作為異常檢測的重構(gòu)誤差閾值。
這一原理已經(jīng)被完整論述在論文中,該論文于 2022 年發(fā)表在 IEEE in Transactions on Intelligent Transportation Systems 上,論文信息如下:
M. Xu, P. Baraldi, X. Lu and E. Zio, "Generative Adversarial Networks With AdaBoost Ensemble Learning for Anomaly Detection in High-Speed Train Automatic Doors," IEEE in Transactions on Intelligent Transportation Systems, 2022.
2、基于無監(jiān)督 RNN(Conceptor)的小樣本故障診斷
我們用到的第二類技術(shù)是一種無監(jiān)督 RNN(命名為概念器網(wǎng)絡(luò):Conceptor)的小樣本故障診斷技術(shù)。
(1)無監(jiān)督 RNN
首先介紹該技術(shù)的背景——無監(jiān)督 RNN。無監(jiān)督 RNN 和普通 RNN 相比,最特別的一點在于該網(wǎng)絡(luò)輸入層神經(jīng)元的連接權(quán)重和隱藏層的連接權(quán)重是隨機初始化,并且在整個訓(xùn)練和推理的過程中是固定不變的。這就意味著,我們不需要對輸入層和隱藏層的權(quán)重參數(shù)進行訓(xùn)練;因此,相比于普通 RNN 網(wǎng)絡(luò),我們可以將隱藏層神經(jīng)元設(shè)置得非常大,這樣網(wǎng)絡(luò)的記憶周期和記憶容量會很大,對輸入的時間序列的記憶周期會更長久。這種特殊的無監(jiān)督 RNN 的隱藏層神經(jīng)元通常被稱為 Reservoir。
① Reservoir State Update
狀態(tài)更新方式和標準 RNN 更新方式相同。
② Long-term temporal dependencies representation by Conceptor
基于這種無監(jiān)督 RNN 開發(fā)一種無監(jiān)督的表征學(xué)習(xí)方式,具體來說,輸入可變長度的多維時間序列,經(jīng)過 Reservoir 得到每個時間步的 RNN 隱藏神經(jīng)元狀態(tài);使用 Conceptor 方法(上圖淺藍色方框所示),得到一個 N×N 維度的概念矩陣。用線性代數(shù)的方式去理解,該矩陣的含義是:在處理時間序列的時候,對于每個時間步,將時間序列信號投射到 N 維空間(N 對應(yīng)隱藏神經(jīng)元的尺度)。
如果有 ti 個時間步長,則該 N 維空間內(nèi)的這 ti 個點形成點云;這樣的點云橢球體可被解構(gòu)成 N 個相互正交的方向,并得到每個方向上的特征向量和特征值。
而 Conceptor 的作用就是捕捉特征值和特征向量,并對特征值進行歸一化;對于這 N 個特征向量,可理解成是在時間序列中捕捉到的 N 種性質(zhì)(如周期性、趨勢性、波動性等復(fù)雜時間序列特征),即隱式特征的提取;而所有被提取到的特征信息均被保留到這個 N 維矩陣中(即 Conceptor 矩陣,上圖右側(cè)深藍色方框部分)。
③ Similarity measure of time series with variable length
根據(jù)矩陣的基本特性,將兩個時間序列的 Conceptor 矩陣相減,并提取 Frobenius 范數(shù),即得到兩個時間序列的 Conceptor 距離;這個標量可用來表征兩個時間序列的差異性。
(2)基于 Conceptor 的小樣本故障診斷
基于 Conceptor 的上述特性,可用來進行小樣本故障診斷分析。
假如存在少量的實際故障樣本(比如只有不到 10 個故障樣本),將對應(yīng)的時間序列全部輸入到 Conceptor 網(wǎng)絡(luò)中,聚合形成相應(yīng)的概念矩陣,作為該類別故障模式的抽象表征;同樣,正常的樣本也會聚合成一個正常的概念矩陣。在測試的時候,對輸入的時間序列用相同的方法提取對應(yīng)的概念矩陣,并分別與正常樣本和異常樣本的概念矩陣進行對比分析,計算對應(yīng)的概念差異。如果輸入樣本和某一特定故障模式的概念矩陣相似度很高,則可認為該樣本屬于該種故障模式。
這一方法也被完整論述在下述論文中:
Mingjing Xu, Piero Baraldi, Zhe Yang, Enrico Zio, A two-stage estimation method based on Conceptors-aided unsupervised clustering and convolutional neural network classification for the estimation of the degradation level of industrial equipment, Expert Systems with Applications, Volume 213, Part B, 2023, 118962.
五、智能運維PHM技術(shù)應(yīng)用案例
1、換電站電池倉鏈條松動監(jiān)測
(1)背景
換電站電池倉的鏈條配合電池倉提升機,將入倉的電池提升至充電倉進行充電。鏈條如果有故障會發(fā)生松動甚至斷裂的情況,從而在運送至充電倉的過程中會導(dǎo)致卡倉、無法入倉。此外,如果鏈條斷裂將導(dǎo)致電池墜落,從而引發(fā)電池損壞甚至火災(zāi)事故的發(fā)生。
因此,需要構(gòu)建模型提前檢測鏈條的松動情況,提前杜絕相關(guān)安全事故的發(fā)生,將風(fēng)險降到最低。
(2)問題設(shè)定
和鏈條松動直接相關(guān)的變量主要是振動相關(guān)信號,然而振動數(shù)據(jù)的采集和存儲成本較高,因此大多數(shù)設(shè)備并未采集振動相關(guān)的信號。
在振動數(shù)據(jù)缺失的情況下,可以通過鏈條驅(qū)動電機的扭矩、位置、速度等信號來檢測鏈條的松動情況。
(3)工業(yè)機理分析
對比下圖中的鏈條松動數(shù)據(jù)和鏈條正常數(shù)據(jù),可以明顯看出,電池倉鏈條松動會使得扭矩信號發(fā)生明顯的周期性波動,并且波動的幅度呈現(xiàn)衰減趨勢。
該故障的實際樣本數(shù)量很少,少于 20 個樣本;然而這類故障重要性很高,因此對預(yù)測模型的準確率和召回率要求非常高。
(4)鏈條松動檢測模型設(shè)計
① 首先對原始數(shù)據(jù)進行時間序列分割,對長時間序列提取出勻速過程的扭矩數(shù)據(jù)。
② 進而進行時間序列分解,僅保留時間序列的波動特征。
③ 進一步對序列進行頻譜分析,最終得到頻譜特征。
然而,發(fā)生故障時刻的頻率波段不止一種,并且不同頻段下的振幅服從特定的分布,因此用傳統(tǒng)的方式去識別,準確率較低,會造成較多的誤報警和漏報警。因此,選擇 AE-GAN 模型,更精準地捕捉故障模式下特定的故障分布,最終得到設(shè)備異常分數(shù)。
(5)鏈條松動檢測數(shù)據(jù)與算法交互流程
松動檢測數(shù)據(jù)和算法交互主要包括以下幾層:數(shù)倉,數(shù)據(jù)層,特征層,算法層以及模型層。
其中,特征層主要就是前文所述特征工程所涉及到的算法模塊;本案例中,算法層使用 AE-GAN 算法;基于算法層的異常分數(shù)結(jié)果,以及特征層中特征表的數(shù)據(jù)記錄,在模型層中進行進一步判斷和決策;最后輸出工單下發(fā)給專員來處理。
基于上述流程,將傳統(tǒng)的專家經(jīng)驗檢測升級成 AI 算法檢測,準確率提升超過 30%。
2、超充樁槍頭劣化故障診斷
(1)工業(yè)機理分析
首先基于充電槍的充電電流、電壓、溫度等物理信號建立物理模型以得到槍頭的溫升系數(shù)物理量,并以此作為特征信號進行進一步的故障診斷。然而這種基于物理的特征工程,通常使用時間滑窗進行特征生成,最終得到一個新的時間序列作為特征結(jié)果;這樣的特征序列往往噪聲較大。
以下圖為例,該項目通常選取一周或一月的數(shù)據(jù)作為時間窗口,得到類似下圖的特征時間序列。圖中可以看出,該序列的噪聲很大,很難直接分辨劣化樣本和正常樣本。
此外,實際故障樣本中,劣化槍頭樣本數(shù)往往小于 50。
基于以上兩點原因,引入 Conceptor 模型,擺脫人工經(jīng)驗,通過模型自動捕捉劣化樣本的時間序列特征。
(2)故障診斷流程
① 收集故障樣本數(shù)據(jù)
- 公司共投產(chǎn)數(shù)千個超充樁,其中僅數(shù)十個超充樁曾更換槍頭。
- 基于槍頭更換記錄匹配對應(yīng)時段的故障樣本數(shù)據(jù),作為模型的訓(xùn)練集。
- 故障數(shù)據(jù)包含 6 維時間序列,且序列長度不一。
② 模型構(gòu)建
- 該故障背后蘊含的物理機理較為復(fù)雜,因此基于先驗知識、專家經(jīng)驗以及物理機理進行建模相對難以實現(xiàn),且模型難以泛化。
- 而本文提到的 Conceptor 模型方法,基于純數(shù)據(jù)驅(qū)動方法實現(xiàn),未引入任何先驗物理信息提取特征,可大大降低模型的復(fù)雜度,提升建模效率。
- 通過 Conceptor 模型方法,將異常時段的多維時序數(shù)據(jù)輸入模型中,得到對應(yīng)的概念表征矩陣。
a、假如輸入 50 個故障樣本,則會得到 50 個概念表征矩陣;
b、將這 50 個矩陣進行均值聚合,并乘以故障模式的表征矩陣重心,得到該故障模式下的表征矩陣;
c、模型測試階段,對輸入測試數(shù)據(jù)計算概念矩陣,將其與故障模式的表征矩陣進行對比,進而得到異常分數(shù)。
③ 模型預(yù)警
- 1)基于模型結(jié)果,根據(jù)提前劃分的 3 個不同等級的報警規(guī)則,按照不同的劣化程度進行判斷,最終實現(xiàn)分級預(yù)警。
基于上述流程,將傳統(tǒng)的機理模型檢測方法升級成機理模型結(jié)合 AI 算法檢測方法,可將模型誤報警率減少至原來的 1/5。
六、問答環(huán)節(jié)
Q1:在 AE-GAN 模型中,如何區(qū)分正常樣本和異常樣本?
A1:對于訓(xùn)練好的 AE-GAN 模型,輸入一個樣本到 Auto-Encoder 中,得到樣本的重構(gòu)誤差即異常分數(shù);如果該分數(shù)小于指定閾值,則認為該樣本正常,反之則為異常樣本。這一方法的使用前提是,訓(xùn)練數(shù)據(jù)全部為正常樣本數(shù)據(jù)。
Q2:GAN 網(wǎng)絡(luò)訓(xùn)練時候,使用的是小樣本故障數(shù)據(jù)和正常數(shù)據(jù)的混合數(shù)據(jù)嗎?兩種數(shù)據(jù)如何平衡?
A2:GAN 網(wǎng)絡(luò)訓(xùn)練時,要么使用正常數(shù)據(jù),要么使用某種特定模式下的異常數(shù)據(jù),不會使用混合數(shù)據(jù)進行訓(xùn)練,因此不會出現(xiàn)樣本不均衡這類問題。如果實際數(shù)據(jù)中兩類數(shù)據(jù)樣本懸殊,一般會針對正常樣本訓(xùn)練出一個 GAN 網(wǎng)絡(luò) 1,再針對某種固定模式異常樣本訓(xùn)練出 GAN 網(wǎng)絡(luò) 2,并基于這兩種網(wǎng)絡(luò)的重構(gòu)誤差對測試樣本進行最終判斷。
Q3:GAN 訓(xùn)練中會出現(xiàn)模式崩潰嗎?
A3:模式崩潰是 GAN 模型訓(xùn)練中遇到的最核心的問題。首先要理解模式崩潰,其次要關(guān)注 GAN 訓(xùn)練的核心任務(wù)。
模式崩潰,是生成器生成得到的數(shù)據(jù)聚焦于某個特定區(qū)域;出現(xiàn)這樣情況的原因是 GAN網(wǎng)絡(luò)中損失函數(shù)定義的忽略。GAN 網(wǎng)絡(luò)訓(xùn)練過程中,通常將 G 網(wǎng)絡(luò)的損失和 D 網(wǎng)絡(luò)的損失分開計算,而常常忽略兩個網(wǎng)絡(luò)的聯(lián)合損失函數(shù)(即公式中的 JSD 損失)。如果出現(xiàn)訓(xùn)練模式崩潰情況,往往 JSD 損失并未收斂;因此,在訓(xùn)練過程中將 JSD 損失進行可視化,可有效避免模式崩潰情況發(fā)生。這也是近期很多改進版的 GAN 模型能夠脫穎而出產(chǎn)生較好效果的原因;此外,在標準 GAN 網(wǎng)絡(luò)中引入特定 trick,也可以達到類似的效果。
Q4:RNN 隱藏層隨機固定的優(yōu)勢是什么?
A4:對于正負樣本懸殊的場景,如果使用常用的 LSTM、RNN、GRNN 等模型,往往會面臨損失函數(shù)不收斂的問題;因此這類問題的處理思路,往往是從無監(jiān)督學(xué)習(xí)出發(fā),隨機固定主網(wǎng)絡(luò)隱藏層的 weight,并使用特定方法對生成的概念矩陣的特征分量進行正則化處理;雖然 weight 參數(shù)是隨機的,但是得到的表征分量可以反映出時間序列隱藏的特性,足以對小樣本場景加以區(qū)分,以上是 RNN 隱藏層隨機固定的優(yōu)勢。
Q5:介紹下 Conceptor 模型的網(wǎng)絡(luò)形態(tài)。
A5:該模型如下圖所示。
其中,Reservior 部分和普通 RNN 網(wǎng)絡(luò)基本相同,唯一的不同是 Win 和 W 是隨機設(shè)置的(注意只隨機生成一次);后續(xù)對每個時間步長下的神經(jīng)元隱藏狀態(tài)進行計算和更新,并得到對應(yīng)的概念矩陣。以上是 Conceptor 的完整版形態(tài)。
Q6:AE-GAN 中的 Encoder 網(wǎng)絡(luò)的訓(xùn)練過程是怎樣的?輸入和輸出分別是什么?
A6:下圖是 Encoder 網(wǎng)絡(luò)的訓(xùn)練過程。
首先會訓(xùn)練一個標準 GAN,在此基礎(chǔ)上固定 G 網(wǎng)絡(luò)中隱藏層的參數(shù);然后在 G 網(wǎng)絡(luò)前插入一個 Encoder 網(wǎng)絡(luò),將兩個網(wǎng)絡(luò)連接形成 Auto-Encoder 網(wǎng)絡(luò)。Auto-Encoder 網(wǎng)絡(luò)的輸入是原始的數(shù)據(jù)樣本,輸出是重構(gòu)的數(shù)據(jù)樣本;AE-GAN 網(wǎng)絡(luò)通過構(gòu)建重構(gòu)樣本進而對異常數(shù)據(jù)進行識別。
Q7:文中所述兩種方法,是否有論文及相關(guān)開源代碼?
A7:論文詳見文章正文相關(guān)章節(jié),代碼暫未開源。
Q8:圖像領(lǐng)域可以使用 AE-GAN 進行異常檢測嗎?
A8:可以使用。不過圖像領(lǐng)域相比普通的信號,其維度更高,數(shù)據(jù)分布更復(fù)雜,訓(xùn)練所需數(shù)據(jù)量更大。因此,如果用來作圖像分類,且數(shù)據(jù)樣本較少,模型效果會打折扣;如果用作異常檢測,效果還是不錯的。
Q9:異常檢測的評價指標如何?誤報和漏報,以及兩者一并評價。
A9:評價指標最直觀的就是誤報率和漏報率,更科學(xué)的指標包括查全率、查準率、F-score 等。
Q10:如何匹配故障樣本特征?
A10:如果沒有更直接、更快捷的方法得到故障特征,一般采用純數(shù)據(jù)驅(qū)動的方法進行故障樣本特征挖掘,一般是構(gòu)建深度學(xué)習(xí)網(wǎng)絡(luò)去學(xué)習(xí)故障樣本關(guān)鍵特征,并被表征為概念矩陣。
Q11:PHM 算法如何進行模型選型?
A11:對于少量樣本,一般使用無監(jiān)督 RNN 方法勝場概念矩陣來表征數(shù)據(jù)特征;如果對于異常檢測問題,存在大量正常樣本,則可使用 AE-GAN 網(wǎng)絡(luò)來實現(xiàn)。
Q12:如何通過 RNN 輸出的兩類概念矩陣來識別異常?
A12:RNN 輸出的概念矩陣,可以理解成輸入的時間序列中所有特征的集合;由于相同狀態(tài)下數(shù)據(jù)的特征是相似的,因此將該狀態(tài)下所有樣本的概念矩陣作均值聚合,即抽象出該類狀態(tài)下的概念中心矩陣;對于未知狀態(tài)的輸入時間序列,通過計算其概念矩陣并和概念中心矩陣進行比較,相似度最高的概念中心矩陣即為輸入數(shù)據(jù)對應(yīng)的類別。
Q13:AE-GAN 網(wǎng)絡(luò)中,異常閾值如何設(shè)定?
A13:完成網(wǎng)絡(luò)訓(xùn)練后,使用小批量正常樣本數(shù)據(jù)進行重構(gòu)誤差的計算,取其中最大值作為閾值。
Q14:AE-GAN 網(wǎng)絡(luò)中的異常閾值會更新嗎?
A14:一般情況下不會更新,但是如果原始數(shù)據(jù)分布發(fā)生變化(如運行工況發(fā)生變化),則可能需要重新訓(xùn)練閾值,甚至可能將遷移學(xué)習(xí)相關(guān)方法引入 GAN 網(wǎng)絡(luò)中,對閾值進行微調(diào)。
Q15:GAN 是如何訓(xùn)練時間序列的?
A15:GAN 一般不是訓(xùn)練原始的時間序列,而是訓(xùn)練基于原始時間序列提取出的特征。
Q16:AE-GAN 和傳統(tǒng) GAN 相比,引入 GAN 的作用是什么?可獲得那些提升?
A16:傳統(tǒng) GAN 也經(jīng)常用來進行異常檢測。AE-GAN 對 GAN 的原理剖析更加深入,因此也能最大程度地避免模式坍塌等問題;而 Auto-Encoder 的引入,可確保異常檢測的原理被準確無誤地執(zhí)行,從而減少誤報率。
Q17:充電樁的時序數(shù)據(jù),是否會出現(xiàn)節(jié)假日整體抬升的情況?如何避免誤判?
A17:故障診斷模型劃分很多層級,模型層的結(jié)果僅為決策層的依據(jù)而并非最終結(jié)果,一般會結(jié)合其他業(yè)務(wù)邏輯輔助判斷。
Q18:模型上線后,無監(jiān)督異常檢測的應(yīng)用效果如何評估?
A18:一般基于異常檢測的結(jié)果,會指定技術(shù)專員到現(xiàn)場真實場景中進行確認。
Q19:是否使用文中提到的兩種方法,針對換電站中電池進行異常檢測的嘗試?
A19:正在進行相關(guān)的嘗試。
Q20:時序數(shù)據(jù)如何統(tǒng)一長度?用 0 填充會導(dǎo)致梯度不下降嗎?
A20:文中提到的 Conceptor 模型可以處理任意長度的時間序列,因此無需填充 0,同時也避免了參數(shù)“訓(xùn)練”過程,因此可以規(guī)避這類問題。
Q21:GAN 會出現(xiàn)過擬合的情況嗎?
A21:如果僅僅用于異常檢測領(lǐng)域,其實越“過擬合”則模型表現(xiàn)會越好。此外,由于 GAN 模型的 G 網(wǎng)絡(luò)在訓(xùn)練過程中存在較大的隨機性,因此一般不會發(fā)生過擬合的情況。
Q22:訓(xùn)練 GAN 模型,使用訓(xùn)練數(shù)據(jù)的數(shù)量級,一般設(shè)定為多少會達到較好的效果?
A22:這類問題一般取決于神經(jīng)網(wǎng)絡(luò)的規(guī)模,隱藏神經(jīng)元的維度等。一般來講,對于 2 層神經(jīng)網(wǎng)絡(luò)、每層 100 個神經(jīng)元這種規(guī)模的模型,訓(xùn)練數(shù)據(jù)的體量需要比隱藏層維度大 1-2 個數(shù)量級,才能達到較好的效果,同時還需要使用一些 trick 來避免模式坍塌的發(fā)生。
Q23:Conceptor 模型中的最小單元隱匿參數(shù)固定,是基于專家經(jīng)驗設(shè)置嗎?和普通 RNN 相比,偏差如何?故障分析的標簽量是多少?如何做到業(yè)務(wù)價值量化?
A23:目前上線的很多 Conceptor 模型都使用相同的一套經(jīng)驗參數(shù),沒有進行進一步調(diào)參;根據(jù)實踐經(jīng)驗來看,相關(guān)參數(shù)設(shè)置從 10 到 100,對結(jié)果的影響差異很小,唯一的差別在于計算成本。如果故障數(shù)據(jù)的樣本量較小而希望結(jié)果更精準,則可將參數(shù)設(shè)置成128、256 甚至更高,相應(yīng)地,計算成本也會更高。故障分析的標簽量,一般在 1 到 10 之間。業(yè)務(wù)價值量化,一般用誤報警和漏報警來衡量,因為誤報警和漏報警可以直接折算成定量的業(yè)務(wù)價值影響。
Q24:如何確定故障開始時間,以及查準率查全率?
A24:可以采用 Conceptor 方法,利用時間增長窗口形成多個概念矩陣;并對概念矩陣進行譜聚類,進而確定故障發(fā)生時間。詳見 Conceptor 章節(jié)相關(guān)論文。
Q25:大量的正常數(shù)據(jù)是不是取值相同?這樣模型會不會重復(fù)學(xué)習(xí)相同的樣本?
A25:在真實的場景下,由于設(shè)備存在不同的運行工況,正常的數(shù)據(jù)往往也是千差萬別的。
Q26:什么特征的故障適用 GAN,什么特征的故障適用 RNN?
A26:這兩種模型的具體使用場景很難進行明確的劃分;一般來說,GAN 更擅長解決數(shù)據(jù)分布特殊、很難用分類網(wǎng)絡(luò)來刻畫的這類問題,而無監(jiān)督 RNN 更適合處理小樣本問題。
Q27:“人員違規(guī)行為檢測”這類特殊場景,能否使用本文提到的模型?
A27:對于領(lǐng)域特定場景,如能引入領(lǐng)域特定知識提取高階特征,則一般是可以的;如果僅僅使用圖像進行檢測,如果圖像樣本量很大,且能夠表征正常行為,則可將問題轉(zhuǎn)化為 CV 領(lǐng)域細分場景檢測,可以使用本文提到的模型加以檢測。
Q28:Conceptor Distance 是相似度判斷嗎?是否是帶參數(shù)學(xué)習(xí)的?
A28:是無參數(shù)的。
Q29:每種故障都要訓(xùn)練一個模型嗎?
A29:要看具體的場景,包括模型的需求、故障的樣本量以及分布的復(fù)雜性等。如果兩種故障的時序波箱相似性很高,一般無需單獨訓(xùn)練模型,只需要構(gòu)建多分類模型確定分類邊界即可;而兩種故障模式的數(shù)據(jù)形態(tài)差異很大,則可借助 GAN 模型進行更精準的識別。
Q30:模型訓(xùn)練時間和訓(xùn)練成本如何?
A30:Conceptor 模型的訓(xùn)練成本很小,可用來提取特征;GAN 模型訓(xùn)練時間相對更長一些,不過對于常見的結(jié)構(gòu)化的表格數(shù)據(jù),訓(xùn)練時間也不會太長。
Q31:模型訓(xùn)練時,正常樣本的訓(xùn)練集是什么樣的?時序滑窗切片時,每個時序子集的時間個數(shù)有最小個數(shù)建議嗎?
A31:兩種模型本身對正負樣本的數(shù)量都沒有要求;考慮到模型訓(xùn)練時間,一般近選取上千個具有代表性的樣本進行訓(xùn)練。時序子集的時間個數(shù)一般沒有最小個數(shù)建議。
Q32:RNN 網(wǎng)絡(luò)得到的特征矩陣維度大概是多少?
A32:特征矩陣的維度和隱藏神經(jīng)元的個數(shù)直接相關(guān),如果 N 個隱藏神經(jīng)元,則特征矩陣的維度為 N×N??紤]到模型的復(fù)雜度以及計算效率,一般不會將 N 設(shè)得太大,常用的設(shè)定值為 32。
Q33:為什么不使用 GAN 中的判別器作為分類器?判別器只學(xué)習(xí)正常數(shù)據(jù),對異常數(shù)據(jù)會被劃分到虛假數(shù)據(jù)范疇。這個方法的缺點是什么?
A33:根據(jù) GAN 的原理,D 網(wǎng)絡(luò)用來區(qū)分正常樣本和偽造樣本;而偽造樣本如果訓(xùn)練成“完全體”狀態(tài),會非常接近正常樣本,造成正常樣本和異常樣本之間難以區(qū)分;而 AE-GAN 網(wǎng)絡(luò)假定正常樣本和異常樣本具備一定的區(qū)分性,這是使用 AE-GAN 的理論基礎(chǔ)。
Q34:小樣本學(xué)習(xí)的模型如何保證泛化能力?
A34:模型的泛化能力,需要基于一個先驗假設(shè):所有同類型的故障,其數(shù)據(jù)分布也是相似的。如果同類故障數(shù)據(jù)分布差異較大,則一般需要對故障類別進行進一步的細分,才能保證模型的泛化能力。
Q35:輸入數(shù)據(jù)需要如何進行數(shù)據(jù)預(yù)處理?
A35:對于文中提到的兩個模型,數(shù)據(jù)只需進行歸一化即可。
Q36:GAN 和孤立森林、AE 等傳統(tǒng)的無監(jiān)督方向?qū)Ρ热绾危?/span>
A36:GAN 通過理論的完備性,更完善地描繪正常樣本數(shù)據(jù)的分布情況,由此構(gòu)建出更完整的決策邊界。而普通的 AE、孤立森林以及 One Class SVM 等方法不具備理論上的完備性,無法構(gòu)建更完整的決策邊界。
Q37:如果判別器在后期幾乎無法判別正常樣本和偽造樣本,那么 GAN 部分的意義就不大了,此時 AE-GAN 會退化成 AE 嗎?
A37:如果判別器確實無法識別正常樣本和偽造樣本,從側(cè)面可以說明生成器的訓(xùn)練是很成功的;而在異常檢測階段,只用到生成器而沒有用到判別器。GAN 網(wǎng)絡(luò)中生成器的意義重大,因此 AE-GAN 不會退化成 AE,可將其理解成 AE 的升級版,是正則化的 AE。
Q38:有嘗試使用 Transformer 替代 RNN 嗎?
A38:在小樣本、可解釋性要求高的場景下,還沒有過這樣的嘗試,后期可能會進行相關(guān)嘗試。
Q39:AE-GAN 和 VAE 的區(qū)別是什么?
A39:VAE 也是異常檢測常用的方法,VAE 在隱藏層使用了先驗高斯分布,并對先驗高斯分布改變形狀進而擬合真實數(shù)據(jù),使得兩個分布等價;然而 VAE 使用的損失函數(shù)是 KL 散度而不是 JSD 散度,而 KL 散度是不對稱的,因此在復(fù)雜樣例中可能效果不佳。
Q40:實驗中信號特征會有數(shù)據(jù)噪聲嚴重或缺失的情況出現(xiàn)嗎?有哪些較好的特征清洗的方法?
A40:文中的充電槍案例,就是噪聲嚴重的案例。一些基于時間序列的分解方法可以將時間序列中的周期項、趨勢項、噪聲項等分解出來;特征缺失,可用數(shù)據(jù)不全的方法進行處理。
Q41:在訓(xùn)練中可以增加 APA 這類增強策略嗎?
A41:以 GAN 為例,主要是通過增加噪聲的方式進行樣本增強,沒有使用到 APA 增強策略。
Q42:在 4.1.(3) 的第二步中,如果正常范圍跨越區(qū)間很大,假如有 3 個樣本 1、2、3,其中樣本 1、2 為正常樣本,樣本 3 為異常樣本;樣本 1 和樣本 2 位于正常范圍的兩邊,而樣本 3 位于樣本 1 旁邊不遠處但是已經(jīng)超出正常范圍,那么會不會出現(xiàn)樣本 1 和 2 之間的重構(gòu)誤差大于樣本 1 和 3 的情況?
A42:這篇分享提供的參考文獻中,包含了很多極端的例子,例如你舉出的例子是典型的 two-gaussian ball 的例子。AE-GAN 可以解決這類問題。