Language

SrCnnAnomalyEstimator クラス

定義

スペクトル残差 (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)
継承

注釈

この推定器を作成するには、DetectAnomalyBySrCnn を使用します

エスティメーターの特性

この推定器は、パラメーターをトレーニングするためにデータを確認する必要がありますか? No
入力列のデータ型 Single
出力列のデータ型 の 3 要素ベクトルDouble
ONNX にエクスポート可能 No

経歴

Microsoftでは、時系列の異常検出サービスを開発しました。これにより、お客様は時系列を継続的に監視し、潜在的なインシデントに対するアラートをオンタイムで監視できます。 時系列異常検出の問題に取り組むために、スペクトル残留 (SR) と畳み込みニューラル ネットワーク (CNN) に基づく新しいアルゴリズムを提案します。 SR モデルは、視覚的に顕著な検出ドメインから時系列の異常検出に借用されます。 ここでは、最初にこの SR アルゴリズムをオンボードしました。

スペクトラル残差 (SR) アルゴリズムは教師なしです。つまり、SR の使用中にトレーニング 手順は必要ありません。 これは、3つの主要なステップで構成されています: (1) 対数振幅スペクトルを取得するためのフーリエ変換;(2)スペクトル残差の計算;(3) シーケンスを空間領域に変換する逆フーリエ変換。 数学的には、シーケンス $\mathbf{x}$ を指定すると、 $$A(f) = Amplitude(\mathf rack{F}(\mathbf{x}))\P(f) = Phrase(\mathf rack{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})$$ です。$\mathfrak{F}$ と $\mathfrak{F}^{-1}$ はそれぞれフーリエ変換と逆フーリエ変換を表します。 $\mathbf{x}$ は、図形が 1$ $n ×入力シーケンスです。$A(f)$ は、シーケンス $\mathbf{x}$ の振幅スペクトルです。$P(f)$ は、シーケンス $\mathbf{x}$ の対応する位相スペクトルです。$L(f)$ は、$A(f)$ のログ表現です。and $AL(f)$ は、$h_n(f)$ によって入力シーケンスを畳み込むことで近似できる$L(f)$ の平均スペクトルです。 ここで、$h_n(f)$ は、$$n_f(f) = \begin{bmatrix}1&1&1&1>\cdots&1\1 として定義された $n × n$ 行列です。&1&1>cdots&1\\vdots&\vdots&\ddots&\vdots\1&1&1>\cdots&1\end{bmatrix}$$ $R(f)$ はスペクトル残差です。つまり、平均対数スペクトル $AL(f)$ を減算した対数スペクトル $L(f)$ です。 スペクトル残差はシーケンスの圧縮表現として機能し、元のシーケンスのイノベーション部分はより重要になります。 最後に、逆フーリエ変換を使用して、シーケンスを空間ドメインに戻します。 結果シーケンス $S(\mathbf{x})$ は、顕著性マップと呼ばれます。 サリジェンシー マップ $S(\mathbf{x})$ を指定すると、出力シーケンス $O(\mathbf{x})$ は次によって計算されます: $$O(x_i) = \begin{cases}1, \frac{S(x_i)-\overline{S(x_i)}}{S(x_i)} > \tau\0 の場合、それ以外の場合は\end{cases}$$ です。$x_i$ はシーケンス $\mathbf{x}$ の任意のポイントを表します。 $S(x_i)は、顕著度マップ内の対応するポイントを$isします。$\overline{S(x_i)}$ は、上記の $ のポイントのローカル平均です。S(x_i)$

SR アルゴリズムにはいくつかのパラメーターがあります。 優れたパフォーマンスを持つモデルを取得するには、最初に windowSize と しきい値 を調整することをお勧めします。これらは SR にとって最も重要なパラメーターです。 その後、windowSize 以下の適切な判定WindowSize を検索できます。 残りのパラメーターでは、既定値を直接使用できます。

詳細については、Time-Series 異常検出サービスのMicrosoftペーパーを参照してください。

メソッド

名前 説明
Fit(IDataView)

スペクトル残差 (SR) アルゴリズムを使用して時系列の異常を検出する

(継承元 TrivialEstimator<TTransformer>)
GetOutputSchema(SchemaShape)

スペクトル残差 (SR) アルゴリズムを使用して時系列の異常を検出する

拡張メソッド

名前 説明
AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment)

推定チェーンに "キャッシュ チェックポイント" を追加します。 これにより、ダウンストリーム推定器がキャッシュされたデータに対してトレーニングされるようになります。 複数のデータを受け取るトレーナーの前にキャッシュ チェックポイントを設定すると便利です。

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

推定器が指定された場合は、 Fit(IDataView) が呼び出されるとデリゲートを呼び出すラップ オブジェクトを返します。 多くの場合、推定器が適合した内容に関する情報を返すことが重要です。そのため、 Fit(IDataView) メソッドは一般的な ITransformerではなく、明示的に型指定されたオブジェクトを返します。 ただし、同時に、 IEstimator<TTransformer> は多くのオブジェクトを含むパイプラインに形成されることが多いため、トランスフォーマーを取得する推定器がこのチェーンのどこかに埋もれている EstimatorChain<TLastTransformer> を使用して、推定器のチェーンを構築する必要がある場合があります。 このシナリオでは、このメソッドを使用して、fit が呼び出されると呼び出されるデリゲートをアタッチできます。

適用対象

こちらもご覧ください