Freigeben über


SrCnnAnomalyEstimator Klasse

Definition

Erkennen von Anomalien in Zeitreihen mithilfe des spektralen Restalgorithmus (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)
Vererbung

Hinweise

Verwenden Sie zum Erstellen dieses Schätzers DetectAnomalyBySrCnn.

Estimator-Merkmale

Muss sich dieser Schätzer die Daten ansehen, um seine Parameter zu trainieren? No
Datentyp der Eingabespalte Single
Datentyp der Ausgabespalte 3-Element-Vektor vonDouble
Exportierbar nach ONNX Nein

Hintergrund

Bei Microsoft haben wir einen Dienst zur Erkennung von Zeitreihenanomalien entwickelt, der Kunden dabei unterstützt, die Zeitreihe kontinuierlich zu überwachen und rechtzeitig auf potenzielle Vorfälle zu warnen. Um das Problem der Anomalieerkennung von Zeitreihen anzugehen, schlagen wir einen neuen Algorithmus vor, der auf Spectral Residual (SR) und Convolutional Neural Network (CNN) basiert. Das SR-Modell wird von der Visuellen Salienzerkennungsdomäne zur Erkennung von Zeitreihenanomalie übernommen. Und hier haben wir zuerst diesen SR-Algorithmus integriert.

Der Spektralrestalgorithmus (SR) ist nicht überwacht, was bedeutet, dass bei verwendung von SR kein Trainingsschritt erforderlich ist. Es besteht aus drei Hauptschritten: (1) Fourier-Transformation zum Abrufen des Protokollamplitudespektrums; (2) Berechnung des spektralen Rests; (3) Umgekehrte Fourier-Transformation, die die Sequenz zurück in eine räumliche Domäne transformiert. Mathematisch gesehen, bei einer Sequenz $\mathbf{x}$, wir haben $$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)\cdot L(f)\\ R(f) = L(f) - AL(f)\S(\mathbf{x}) = \mathfrak{F}^{-1}(exp(R(f) + P(f))^{2})$$ wobei $\mathfrak{F}$ und $\mathfrak{F}^{-1}$ Fourier-Transformation bzw. Inverse Fourier-Transformation angeben. $\mathbf{x}$ ist die Eingabesequenz mit der Form $n × 1$; $A(f)$ ist das Amplitudenspektrum der Sequenz $\mathbf{x}$; $P(f)$ ist das entsprechende Phasenspektrum der Sequenz $\mathbf{x}$; $L(f)$ ist die Protokolldarstellung von $A(f)$; und $AL(f)$ ist das durchschnittliche Spektrum von $L(f)$, das durch Konvolutieren der Eingabesequenz durch $h_n(f)$angenähert werden kann, wobei $h_n(f)$ eine $n × n$-Matrix ist, die als definiert ist: $$n_f(f) = \begin{bmatrix}1&1&1&\cdots&1\1&1&11&\cdots&1\\vdots&\vdots&\vdots&\ddots&\vdots\vdots\1&1&1&\cdots&1\ end{bmatrix}$$ $R(f)$ ist der spektrale Rest, d. h. das Protokollspektrum $L(f)$ subtrahiert das gemittelte Protokollspektrum $AL(f)$. Der spektrale Rest dient als komprimierte Darstellung der Sequenz, während der Innovationsteil der ursprünglichen Sequenz an Bedeutung gewinnt. Schließlich übertragen wir die Sequenz über die inverse Fourier-Transformation zurück in die räumliche Domäne. Die Ergebnissequenz $S(\mathbf{x})$ wird als Salienzzuordnung bezeichnet. Aufgrund der Salienzzuordnung $S(\mathbf{x})$ wird die Ausgabesequenz $O(\mathbf{x})$ berechnet: $$O(x_i) = \begin{cases}1, if \frac{S(x_i)-\overline{S(x_i)}}{S(x_i)} > \tau\0,otherwise,\end{cases}$$ wobei $x_i$ einen beliebigen Punkt in der Folge darstellt $\mathbf{x}$; $S(x_i)$is den entsprechenden Punkt in der Salienzkarte; und $\overline{S(x_i)}$ ist der lokale Durchschnitt der vorherigen Punkte von $S(x_i)$.

Es gibt mehrere Parameter für den SR-Algorithmus. Um ein Modell mit guter Leistung zu erhalten, wird empfohlen, windowSize und threshold zunächst zu optimieren. Dies sind die wichtigsten Parameter für SR. Anschließend könnten Sie nach einem geeigneten Urteil SuchenWindowSize , das nicht größer als windowSize ist. Für die verbleibenden Parameter können Sie den Standardwert direkt verwenden.

Weitere Informationen finden Sie im Artikel Time-Series Anomaly Detection Service bei Microsoft .

Methoden

Fit(IDataView)

Erkennen von Anomalien in Zeitreihen mithilfe des spektralen Restalgorithmus (SR)

(Geerbt von TrivialEstimator<TTransformer>)
GetOutputSchema(SchemaShape)

Erkennen von Anomalien in Zeitreihen mithilfe des spektralen Restalgorithmus (SR)

Erweiterungsmethoden

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

Fügen Sie einen "Zwischenspeicherungsprüfpunkt" an die Schätzerkette an. Dadurch wird sichergestellt, dass die nachgeschalteten Schätzer mit zwischengespeicherten Daten trainiert werden. Es ist hilfreich, vor Trainern, die mehrere Datendurchläufe durchführen, einen Zwischenspeicherungsprüfpunkt zu verwenden.

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

Geben Sie bei einer Schätzung ein Wrapping-Objekt zurück, das einen Delegaten aufruft, sobald Fit(IDataView) aufgerufen wird. Es ist häufig wichtig, dass ein Schätzer Informationen darüber zurückgibt, was geeignet ist, weshalb die Fit(IDataView) -Methode ein spezifisch typisiertes -Objekt und nicht nur ein allgemeines ITransformerzurückgibt. Zur gleichen Zeit IEstimator<TTransformer> werden jedoch häufig Pipelines mit vielen Objekten gebildet, sodass wir möglicherweise eine Kette von Schätzern erstellen müssen, über EstimatorChain<TLastTransformer> die der Schätzer, für den wir den Transformator erhalten möchten, irgendwo in dieser Kette vergraben ist. Für dieses Szenario können wir über diese Methode einen Delegaten anfügen, der aufgerufen wird, sobald fit aufgerufen wird.

Gilt für:

Weitere Informationen