SrCnnAnomalyEstimator 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
利用光譜殘差(SR)演算法偵測時間序列中的異常
public sealed class SrCnnAnomalyEstimator : Microsoft.ML.Data.TrivialEstimator<Microsoft.ML.Transforms.TimeSeries.SrCnnAnomalyDetector>
type SrCnnAnomalyEstimator = class
inherit TrivialEstimator<SrCnnAnomalyDetector>
Public NotInheritable Class SrCnnAnomalyEstimator
Inherits TrivialEstimator(Of SrCnnAnomalyDetector)
- 繼承
備註
要建立此估計器,請使用 DetectAnomalyBySrCnn
估算器特性
| 這個估計器需要查看資料來訓練參數嗎? | No |
| 輸入欄位資料型別 | Single |
| 輸出欄位資料型態 | 三元素向量Double |
| 可匯出至 ONNX | No |
背景
在 Microsoft,我們開發了一套時間序列異常偵測服務,幫助客戶持續監控時間序列,並及時警示潛在事件。 為了解決時間序列異常偵測的問題,我們提出了一種基於光譜殘差(SR)與卷積神經網路(CNN)的新演算法。 SR 模型借鑑自視覺顯著性偵測領域,用於時間序列異常偵測。 我們首先導入這個SR演算法。
頻譜殘差(SR)演算法為無監督式,意即使用 SR 時不需要訓練步驟。 它包含三個主要步驟:(1) 傅立葉轉換以取得對數振幅譜;(2) 頻譜殘差的計算;(3) 將序列轉換回空間域的反傅立葉轉換。 數學上,給定序列 $\mathbf{x}$,我們有 $$A(f) = Amplitude(\mathfrak{F}(\mathbf{x}))\P(f) = 短語(\mathfrak{F}(\mathbf{x}))\L(f) = log(A(f))\AL(f) = h_n(f) \cdot L(f)\R(f) = L(f) - AL(f)\S(\mathbf{x}) = \mathfrak{F}^{-1}(exp(R(f) + P(f))^{2})$$ 其中 $\mathfrak{F}$ 和 $\mathfrak{F}^{-1}$ 分別表示傅立葉變換與逆傅立葉轉換。 $\mathbf{x}$ 是形狀為 $n × 1$ 的輸入序列;$A(f)$ 是序列 $\mathbf{x}$ 的振幅譜;$P(f)$ 是序列 $\mathbf{x}$ 的對應相位譜;$L(f)$ 是 $A(f)$ 的對數表示;$AL(f)$ 是 $L(F)$ 的平均譜,可透過將輸入序列卷積為 $h_n(f)$ 來近似,其中 $h_n(f)$ 是一個$n × n$ 矩陣,定義為:$$n_f(f) = \begin{bmatrix}1&1&1&\cdots&1\cdots&1\vdots&\vdots&\vdots&\ddots&\vdots&\vdots\1&1&\cdots&1\1\cdots&1\End{Bmatrix}$$ $R(f)$ 是頻譜殘差,即對數頻譜$L(f)$ 減去平均對數頻譜 $AL(f)$。 光譜殘差作為序列的壓縮表示,而原始序列的創新部分則變得更為重要。 最後,我們將序列透過反傅立葉轉換轉換回空間域。 結果序列 $S(\mathbf{x})$ 稱為顯著映射。 給定顯著性映射 $S(\mathbf{x})$,輸出序列 $O(\mathbf{x})$ 的計算方式為:$$O(x_i) = \begin{cases}1,若 \frac{S(x_i)-\overline{S(x_i)}}{S(x_i)} > \tau\0,否則,\end{cases}$ 其中 $x_i$ 代表序列中的任意一點 $\mathbf{x}$;$S(x_i)$is顯著映射中的對應點;$\overline{S(x_i)}$ 是 $ 前一點的局部平均值S(x_i)$。
SR 演算法有幾個參數。 為了獲得良好效能的模型,我們建議先調整 windowSize 和 threshold ,這是 SR 最重要的參數。 接著你可以搜尋一個不大於 windowSize 的適當判斷視窗大小。 至於剩下的參數,你可以直接使用預設值。
更多詳情請參閱 Time-Series 異常偵測服務Microsoft論文。
方法
| 名稱 | Description |
|---|---|
| Fit(IDataView) |
利用光譜殘差(SR)演算法偵測時間序列中的異常 (繼承來源 TrivialEstimator<TTransformer>) |
| GetOutputSchema(SchemaShape) |
利用光譜殘差(SR)演算法偵測時間序列中的異常 |
擴充方法
| 名稱 | Description |
|---|---|
| AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment) |
在估計鏈中附加一個「快取檢查點」。 這將確保下游估計器能針對快取資料進行訓練。 在訓練師接受多次資料通行前設置快取檢查點會很有幫助。 |
| WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>) |
給定一個估計器,回傳一個包裹物件,該物件會呼叫一次 Fit(IDataView) 代理。 估計器通常回傳擬合的資訊很重要,因此該 Fit(IDataView) 方法回傳一個特定型別的物件,而非一般 ITransformer的 。 然而,同時, IEstimator<TTransformer> 通常會被組成包含許多物件的管線,因此我們可能需要建立一條估計鏈,將 EstimatorChain<TLastTransformer> 我們想要取得變壓器的估計器埋藏在這條鏈的某處。 在這種情況下,我們可以透過此方法附加一個代理,當 fit 被呼叫時會被呼叫。 |