Partager via


SrCnnAnomalyEstimator Classe

Définition

Détecter les anomalies dans les séries chronologiques à l’aide de l’algorithme 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)
Héritage

Remarques

Pour créer cet estimateur, utilisez DetectAnomalyBySrCnn

Caractéristiques de l’estimateur

Cet estimateur doit-il examiner les données pour effectuer l’apprentissage de ses paramètres ? No
Type de données de colonne d’entrée Single
Type de données de colonne de sortie Vecteur à 3 éléments deDouble
Exportable vers ONNX Non

Arrière-plan

Chez Microsoft, nous avons développé un service de détection des anomalies de série chronologique qui aide les clients à surveiller la série chronologique en continu et à alerter en cas d’incidents potentiels à temps. Pour résoudre le problème de la détection d’anomalies de série chronologique, nous proposons un nouvel algorithme basé sur le résidu spectral (SR) et le réseau neuronal convolutionnel (CNN). Le modèle SR est emprunté du domaine de détection de la salience visuelle à la détection d’anomalie de série chronologique. Et ici, nous avons d’abord intégré cet algorithme SR.

L’algorithme sr (Spectral Residual) n’est pas supervisé, ce qui signifie que l’étape d’entraînement n’est pas nécessaire lors de l’utilisation de SR. Il se compose de trois étapes principales : (1) Transformation de Fourier pour obtenir le spectre d’amplitude logarithmique ; (2) calcul des résidus spectrals ; (3) Transformation de Fourier inverse qui transforme la séquence en domaine spatial. Mathématiquement, étant donné une séquence $\mathbf{x}$, nous avons $$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})$$ où $\mathfrak{F}$ et $\mathfrak{F}^{-1}$ indiquent respectivement la transformation de Fourier et la transformation de Fourier inverse. $\mathbf{x}$ est la séquence d’entrée avec la forme $n × 1$ ; $A(f)$ est le spectre d’amplitude de la séquence $\mathbf{x}$ ; $P(f)$ est le spectre de phase correspondant de la séquence $\mathbf{x}$ ; $L(f)$ est la représentation de journal de $A(f)$ ; et $AL(f)$ est le spectre moyen de $L(f)$ qui peut être approximatif en mettant en jeu la séquence d’entrée par $h_n(f)$, où $h_n(f)$ est une matrice $n × n$ définie comme suit : $$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)$ est le résidu spectral, c’est-à-dire le spectre logarithmique $L(f)$ soustrayant le spectre logarithmique moyen $AL(f)$. Le résidu spectral sert de représentation compressée de la séquence, tandis que la partie innovation de la séquence d’origine devient plus significative. Enfin, nous transférons la séquence vers le domaine spatial via la transformation de Fourier inverse. La séquence de résultats $S(\mathbf{x})$ est appelée carte de salience. Étant donné la carte de salience $S(\mathbf{x})$, la séquence de sortie $O(\mathbf{x})$ est calculée par : $$O(x_i) = \begin{cases}1, if \frac{S(x_i)-\overline{S(x_i)}}{S(x_i)} > \tau\0,sinon,\end{cases}$$ où $x_i$ représente un point arbitraire dans la séquence $\mathbf{x}$ ; $S(x_i)$is le point correspondant dans la carte de salience ; et $\overline{S(x_i)}$ est la moyenne locale des points précédents de $S(x_i)$.

Il existe plusieurs paramètres pour l’algorithme SR. Pour obtenir un modèle avec de bonnes performances, nous vous suggérons de régler windowSize et threshold au début, ce sont les paramètres les plus importants pour SR. Vous pouvez ensuite rechercher un jugement appropriéWindowSize qui n’est pas plus grand que windowSize. Et pour les paramètres restants, vous pouvez utiliser directement la valeur par défaut.

Pour plus d’informations, reportez-vous au document Time-Series Anomaly Detection Service sur Microsoft .

Méthodes

Fit(IDataView)

Détecter les anomalies dans les séries chronologiques à l’aide de l’algorithme Spectral Residual(SR)

(Hérité de TrivialEstimator<TTransformer>)
GetOutputSchema(SchemaShape)

Détecter les anomalies dans les séries chronologiques à l’aide de l’algorithme Spectral Residual(SR)

Méthodes d’extension

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

Ajoutez un « point de contrôle de mise en cache » à la chaîne de l’estimateur. Cela garantit que les estimateurs en aval seront entraînés sur les données mises en cache. Il est utile d’avoir un point de contrôle de mise en cache avant les formateurs qui effectuent plusieurs passes de données.

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

Avec un estimateur, retournez un objet d’habillage qui appellera un délégué une fois Fit(IDataView) appelé. Il est souvent important pour un estimateur de retourner des informations sur ce qui était adapté, c’est pourquoi la Fit(IDataView) méthode retourne un objet spécifiquement typé, plutôt qu’un simple général ITransformer. Toutefois, dans le même temps, IEstimator<TTransformer> sont souvent formés dans des pipelines avec de nombreux objets, nous devrons donc créer une chaîne d’estimateurs par le biais EstimatorChain<TLastTransformer> de l’emplacement où l’estimateur pour lequel nous voulons obtenir le transformateur est enterré quelque part dans cette chaîne. Pour ce scénario, nous pouvons, par le biais de cette méthode, attacher un délégué qui sera appelé une fois que fit est appelé.

S’applique à

Voir aussi