SrCnnAnomalyEstimator Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Erkennen von Anomalien in Zeitreihen mit dem Algorithm "Spectral Residual(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 "DetectAnomalyBySrCnn", um diese Schätzung zu erstellen.
Schätzeigenschaften
| Muss dieser Schätzer die Daten untersuchen, um seine Parameter zu trainieren? | No |
| Eingabespaltendatentyp | Single |
| Ausgabespaltendatentyp | 3-Elementvektor vonDouble |
| Exportierbar in ONNX | No |
Hintergrund
Bei Microsoft haben wir einen Zeitserien-Anomalieerkennungsdienst entwickelt, mit dem Kunden die Zeitreihen kontinuierlich überwachen und rechtzeitig auf potenzielle Vorfälle aufmerksam machen können. Um das Problem der Anomalieerkennung von Zeitreihen zu lösen, schlagen wir einen neuartigen Algorithmus vor, der auf dem spektralen Rest (SR) und dem Convolutional Neural Network (CNN) basiert. Das SR-Modell wird von der visuellen Saliency-Erkennungsdomäne bis zur Anomalieerkennung der Zeitreihen geliehen. Und hier haben wir diesen SR-Algorithmus zuerst integriert.
Der Algorithm Residual (SR) ist nicht überwacht, was bedeutet, dass der Trainingsschritt bei verwendung von SR nicht benötigt wird. Es besteht aus drei hauptschritten: (1) Fouriertransformation, um das Protokollampliterspektrum zu erhalten; (2) Berechnung des spektralen Rests; (3) Umgekehrte Fouriertransformation, die die Sequenz zurück in die räumliche Domäne transformiert. Mathematisch, wenn eine 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)\\R(f) = L(f) - AL(f)\S(\mathbf{x}) = \mathfrak{F}^{-1}(exp(R(f) + P(f))^{2})$$$$ where $\mathfrak{F}$ und $\mathfrak{F}^{-1}$ den Fourier Transform und Inverse Fourier Transform. $\mathbf{x}$ ist die Eingabesequenz mit 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)$, wobei $h_n(f)$ eine $n × n$-Matrix ist, die wie folgt definiert ist: $$n_f(f) = \begin{bmatrix}1&1&1&\cdots&1\1\11&1&1&\cdots&1\\vdots&\vdots&\vdots&\ddots&\vdots\1&1&\cdots&1\ end{bmatrix}$$ $R(f)$ ist das spektrale Rest, d. h. das Protokollspektrum $L(f)$ subtrahiert das durchschnittliche Protokollspektrum $AL(f)$. Der spektrale Rest dient als komprimierte Darstellung der Sequenz, während der Innovationsteil der ursprünglichen Sequenz wichtiger wird. Schließlich übertragen wir die Sequenz über die Inverse Fourier Transform zurück in die räumliche Domäne. Die Ergebnissequenz $S(\mathbf{x})$ wird als Salienzkarte bezeichnet. Aufgrund der saliency map $S(\mathbf{x})$, wird die Ausgabesequenz $O(\mathbf{x})$ berechnet von: $$O(x_i) = \begin{cases}1, if \frac{S(x_i)-\overline{S(x_i)}{S(x_i)} > \tau\0,otherwise,\end{cases}$$ where $x_i$ represents an arbitrary point in sequence $\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, empfehlen wir, windowSize und Schwellenwert zuerst zu optimieren, dies sind die wichtigsten Parameter für SR. Dann könnten Sie nach einem geeigneten Urteilsvermögen suchenWindowSize , das nicht größer als windowSize ist. Und für die verbleibenden Parameter können Sie den Standardwert direkt verwenden.
Weitere Informationen finden Sie im Time-Series Anomaly Detection Service auf Microsoft Paper.
Methoden
| Name | Beschreibung |
|---|---|
| Fit(IDataView) |
Erkennen von Anomalien in Zeitreihen mit dem Algorithm "Spectral Residual(SR)" (Geerbt von TrivialEstimator<TTransformer>) |
| GetOutputSchema(SchemaShape) |
Erkennen von Anomalien in Zeitreihen mit dem Algorithm "Spectral Residual(SR)" |
Erweiterungsmethoden
| Name | Beschreibung |
|---|---|
| AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment) |
Fügen Sie einen "Zwischenspeicherungsprüfpunkt" an die Schätzkette an. Dadurch wird sichergestellt, dass die nachgeschalteten Schätzer anhand zwischengespeicherter Daten trainiert werden. Es ist hilfreich, einen Zwischenspeicherprüfpunkt vor Trainern zu haben, die mehrere Datendurchläufe übernehmen. |
| WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>) |
Geben Sie bei einer Schätzung ein Wrapping-Objekt zurück, das eine Stellvertretung aufruft, sobald Fit(IDataView) sie aufgerufen wird. Es ist häufig wichtig, dass ein Schätzer Informationen zu dem, was passt, zurückgeben, weshalb die Fit(IDataView) Methode ein speziell typiertes Objekt und nicht nur ein allgemeines ITransformerObjekt zurückgibt. IEstimator<TTransformer> Gleichzeitig werden jedoch oft in Pipelines mit vielen Objekten gebildet, daher müssen wir möglicherweise eine Kette von Schätzern bauen, über EstimatorChain<TLastTransformer> die der Schätzer, für den wir den Transformator erhalten wollen, irgendwo in dieser Kette begraben wird. Für dieses Szenario können wir über diese Methode einen Delegat anfügen, der aufgerufen wird, sobald "Fit" aufgerufen wird. |