Share via


SrCnnAnomalyEstimator Classe

Definição

Detectar anomalias em séries temporais usando o algoritmo SR (Resíduo Espectral)

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)
Herança

Comentários

Para criar esse avaliador, use DetectAnomalyBySrCnn

Características do avaliador

Esse avaliador precisa examinar os dados para treinar seus parâmetros? No
Tipo de dados de coluna de entrada Single
Tipo de dados de coluna de saída Vetor de 3 elementos deDouble
Exportável para ONNX Não

Segundo plano

Na Microsoft, desenvolvemos um serviço de detecção de anomalias de série temporal que ajuda os clientes a monitorar a série temporal continuamente e alertar sobre possíveis incidentes a tempo. Para resolver o problema da detecção de anomalias de série temporal, propomos um novo algoritmo baseado em SR (Resíduo Espectral) e CNN (Rede Neural Convolucional). O modelo sr é emprestado do domínio de detecção de saliency visual para a detecção de anomalias de série temporal. E aqui integramos esse algoritmo sr primeiro.

O algoritmo SR (Resíduo Espectral) não é supervisionado, o que significa que a etapa de treinamento não é necessária ao usar SR. Ele consiste em três etapas principais: (1) Fourier Transform para obter o espectro de amplitude do log; (2) cálculo de resíduo espectral; (3) Inverse Fourier Transform que transforma a sequência de volta para o domínio espacial. Matematicamente, dada uma sequência $\mathbf{x}$, temos $$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})$$ em que $\mathfrak{F}$ e $\mathfrak{F}^{-1}$ denotam Fourier Transform e Inverse Fourier Transform, respectivamente. $\mathbf{x}$ é a sequência de entrada com forma $n × 1$; $A(f)$ é o espectro de amplitude da sequência $\mathbf{x}$; $P(f)$ é o espectro de fase correspondente da sequência $\mathbf{x}$; $L(f)$ é a representação de log de $A(f)$; e $AL(f)$ é o espectro médio de $L(f)$ que pode ser aproximado por meio da convolução da sequência de entrada por $h_n(f)$, em que $h_n(f)$ é uma matriz $n × n$ definida como: $$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)$ é o resíduo espectral, ou seja, o espectro de log $L(f)$ subtraindo o espectro de log médio $AL(f)$. O residual espectral serve como uma representação compactada da sequência, enquanto a parte de inovação da sequência original se torna mais significativa. Por fim, transferimos a sequência de volta para o domínio espacial por meio da Transformação Inversa do Fourier. A sequência de resultados $S(\mathbf{x})$ é chamada de mapa de saliency. Considerando o mapa de saliency $S(\mathbf{x})$, a sequência de saída $O(\mathbf{x})$ é calculada por: $$O(x_i) = \begin{cases}1, if \frac{S(x_i)-\overline{S(x_i)}}{S(x_i)} > \tau\0,otherwise,\end{cases}$$ em que $x_i$ representa um ponto arbitrário na sequência $\mathbf{x}$; $S(x_i)$is o ponto correspondente no mapa de saliency; e $\overline{S(x_i)}$ é a média local dos pontos anteriores de $S(x_i)$.

Há vários parâmetros para o algoritmo SR. Para obter um modelo com bom desempenho, sugerimos ajustar windowSize e threshold no início, esses são os parâmetros mais importantes para a SR. Em seguida, você pode procurar um julgamento apropriadoWindowSize , que não é maior que windowSize. E para os parâmetros restantes, você pode usar o valor padrão diretamente.

Para obter mais detalhes, consulte o Serviço de Detecção de Anomalias de Série Temporal no artigo da Microsoft.

Métodos

Fit(IDataView)

Detectar anomalias em séries temporais usando o algoritmo SR (Resíduo Espectral)

(Herdado de TrivialEstimator<TTransformer>)
GetOutputSchema(SchemaShape)

Detectar anomalias em séries temporais usando o algoritmo SR (Resíduo Espectral)

Métodos de Extensão

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

Acrescente um 'ponto de verificação de cache' à cadeia de avaliadores. Isso garantirá que os avaliadores downstream sejam treinados em relação aos dados armazenados em cache. É útil ter um ponto de verificação de cache antes dos treinadores que fazem várias passagens de dados.

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

Dado um avaliador, retorne um objeto de encapsulamento que chamará um delegado uma vez Fit(IDataView) chamado. Geralmente, é importante que um avaliador retorne informações sobre o que era adequado, e é por isso que o Fit(IDataView) método retorna um objeto especificamente tipado, em vez de apenas um geral ITransformer. No entanto, ao mesmo tempo, IEstimator<TTransformer> muitas vezes são formados em pipelines com muitos objetos, portanto, talvez seja necessário criar uma cadeia de avaliadores por meio EstimatorChain<TLastTransformer> de onde o avaliador para o qual queremos obter o transformador está enterrado em algum lugar nesta cadeia. Para esse cenário, podemos por meio desse método anexar um delegado que será chamado assim que fit for chamado.

Aplica-se a

Confira também