SrCnnAnomalyEstimator Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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. |