SrCnnAnomalyEstimator Třída

Definice

Detekce anomálií v časových řadách pomocí algoritmu Spectral Zbytkové (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)
Dědičnost

Poznámky

K vytvoření tohoto odhadce použijte DetectAnomalyBySrCnn.

Vlastnosti nástroje pro posouzení

Potřebuje tento nástroj pro posouzení podívat se na data, aby vytrénovala své parametry? No
Datový typ vstupního sloupce Single
Datový typ výstupního sloupce 3-elementový vektorDouble
Exportovat do ONNX No

Pozadí

V Microsoftu jsme vyvinuli službu detekce anomálií časových řad, která zákazníkům pomáhá průběžně monitorovat časové řady a včas upozorňovat na potenciální incidenty. Abychom vyřešili problém detekce anomálií časových řad, navrhujeme nový algoritmus založený na spektrálních reziduích (SR) a konvoluční neurální síti (CNN). Model čtečky obrazovky je vypůjčený z domény detekce vizuální saliency k detekci anomálií časových řad. A tady jsme nejprve nasadili tento algoritmus čtečky obrazovky.

Algoritmus Spectral Zbytkový (SR) není bez dohledu, což znamená, že při použití čtečky se nevyžaduje trénovací krok. Skládá se ze tří hlavních kroků: (1) Fourierova transformace k získání spektra amplitudy protokolu; 2) výpočet spektrálního zbytku; (3) Inverzní Fourierova transformace, která transformuje sekvenci zpět na prostorovou doménu. Matematicky, vzhledem k posloupnosti $\mathbf{x}$, máme $$A(f) = Amplitude(\mathfrak{F}(\mathbf{x}))\P(f) = Phrase(\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})$$ kde $\mathfrak{F}$ a $\mathfrak{F}^{-1}$ označují Fourierovu transformaci a Inverzní Fourierovu transformaci. $\mathbf{x}$ je vstupní sekvence s obrazcem $n × 1$; $A(f)$ je amplitudové spektrum sekvence $\mathbf{x}$; $P(f)$ je odpovídající fázové spektrum sekvence $\mathbf{x}$; $L(f)$ je reprezentace protokolu $A(f)$; a $AL(f)$ je průměrné spektrum $L(f)$, které lze aproximovat pomocí spletení vstupní sekvence pomocí $h_n(f)$, kde $h_n(f)$ je matice $n × n$ definovaná takto: $$n_f(f) = \begin{bmatrix}1&1&1&\cdots&1\1&1&1&\cdots&1\\vdots&\vdots&\vdots&\ddots&\vdots\1&1&1&\cdots&1\ end{bmatrix}$$ $R(f)$ je spektrální rezidua, tj. spektrum protokolů $L(f)$ odčítá průměrné spektrum protokolů $AL(f)$. Spektrální rezidua slouží jako komprimovaná reprezentace sekvence, zatímco inovační část původní sekvence se stává významnější. Nakonec přeneseme posloupnost zpět do prostorové domény prostřednictvím Inverzní Fourierovy transformace. Výsledná sekvence $S(\mathbf{x})$ se nazývá mapa saliency. Vzhledem k mapě saliency $S(\mathbf{x})$se výstupní sekvence $O(\mathbf{x})$ vypočítá takto: $$O(x_i) = \begin{cases}1, if \frac{S(x_i)-\overline{S(x_i)}}{S(x_i)} > \tau\0,jinak,\end{cases}$$ kde $x_i$ představuje libovolný bod v posloupnosti $\mathbf{x}$; $S(x_i)$is odpovídající bod v mapě saliency a $\overline{S(x_i)}$ je místní průměr předchozích bodů hodnoty $S(x_i)$.

Algoritmus čtečky obrazovky má několik parametrů. Pokud chcete získat model s dobrým výkonem, doporučujeme nejprve vyladit hodnotu windowSize a prahovou hodnotu , což jsou nejdůležitější parametry pro zobrazení obrazovky. Pak můžete vyhledat odpovídající úsudekWindowSize , který není větší než windowSize. A pro zbývající parametry můžete použít přímo výchozí hodnotu.

Další podrobnosti najdete v dokumentu Time-Series Anomaly Detection Service společnosti Microsoft .

Metody

Fit(IDataView)

Detekce anomálií v časových řadách pomocí algoritmu Spectral Zbytkové (SR)

(Zděděno od TrivialEstimator<TTransformer>)
GetOutputSchema(SchemaShape)

Detekce anomálií v časových řadách pomocí algoritmu Spectral Zbytkové (SR)

Metody rozšíření

AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment)

Připojte kontrolní bod ukládání do mezipaměti k řetězu odhadu. Tím se zajistí, že podřízené estimátory budou natrénovány na data uložená v mezipaměti. Je užitečné mít kontrolní bod ukládání do mezipaměti před školiteli, kteří mají více průchodů dat.

WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>)

V případě estimátoru vrátí objekt obtékání, který bude volat delegáta, jakmile Fit(IDataView) je volána. Pro odhadce je často důležité, aby vracel informace o tom, co bylo vhodné, a proto Fit(IDataView) metoda vrací objekt s konkrétním typem, spíše než jen obecný ITransformerobjekt . Zároveň IEstimator<TTransformer> jsou však často tvořeny kanály s mnoha objekty, takže možná budeme muset vytvořit řetězec odhadců, kde EstimatorChain<TLastTransformer> je odhadovač, pro který chceme získat transformátor, uložen někde v tomto řetězci. Pro tento scénář můžeme pomocí této metody připojit delegáta, který bude volána po zavolání fit.

Platí pro

Viz také