Share via


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 を使用します

推定器の特性

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

バックグラウンド

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

スペクトル残差 (SR) アルゴリズムは教師なしです。つまり、SR の使用中にトレーニング ステップは必要ありません。 これは、3つの主要なステップで構成されています: (1) ログ振幅スペクトルを取得するためのフーリエ変換;(2)スペクトル残差の計算;(3) シーケンスを空間領域に変換する逆フーリエ変換。 数学的には、シーケンス $\mathbf{x}$ を指定すると、 $$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})$$ ($\mathfrak{F}$ と $\mathfrak{F}^{-1}$ はそれぞれフーリエ変換と逆フーリエ変換を表します。 $\mathbf{x}$ は、図形が 1$ $n ×入力シーケンスです。$A(f)$ は、シーケンス $\mathbf{x}$ の振幅スペクトルです。$P(f)$ は、シーケンス $\mathbf{x}$ の対応する位相スペクトルです。$L(f)$ は、$A(f)$ のログ表現です。および $AL(f)$ は、入力シーケンスを $h_n(f)$ で畳み込むことで近似できる$L(f)$ の平均スペクトルです。 ここで、$h_n(f)$ は、$$n_f(f) = \begin{bmatrix}1&1&1&\cdots&1\1&1&1 として定義された$n × n$ 行列です。&\cdots&1\\vdots&\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 を検索できます。 残りのパラメーターでは、既定値を直接使用できます。

詳細については、 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 が呼び出されると呼び出されるデリゲートをアタッチできます。

適用対象

こちらもご覧ください