Bagikan melalui


SrCnnAnomalyEstimator Kelas

Definisi

Mendeteksi anomali dalam rangkaian waktu menggunakan algoritma 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)
Warisan

Keterangan

Untuk membuat estimator ini, gunakan DetectAnomalyBySrCnn

Karakteristik Estimator

Apakah estimator ini perlu melihat data untuk melatih parameternya? Tidak
Jenis data kolom input Single
Jenis data kolom output Vektor 3 elemen dariDouble
Dapat diekspor ke ONNX Tidak

Background

Di Microsoft, kami telah mengembangkan layanan deteksi anomali rangkaian waktu yang membantu pelanggan memantau rangkaian waktu secara terus menerus dan memperingatkan potensi insiden tepat waktu. Untuk mengatasi masalah deteksi anomali rangkaian waktu, kami mengusulkan algoritma baru berdasarkan Spectral Residual (SR) dan Convolutional Neural Network (CNN). Model SR dipinjam dari domain deteksi saliency visual ke deteksi anomali rangkaian waktu. Dan di sini kita onboarding algoritma SR ini terlebih dahulu.

Algoritma Spectral Residual (SR) tidak diawasi, yang berarti langkah pelatihan tidak diperlukan saat menggunakan SR. Ini terdiri dari tiga langkah utama: (1) Fourier Transform untuk mendapatkan spektrum amplitude log; (2) perhitungan sisa spektral; (3) Inverse Fourier Transform yang mengubah urutan kembali ke domain spasial. Secara matematis, diberikan urutan $\mathbf{x}$, kami memiliki $$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) f)\R(f) = L(f) - AL(f)\S(\mathbf{x}) = \mathfrak{F}^{-1}(exp(R(f) + P(f))^)${2}$ di mana $\mathfrak{F}$ dan $\mathfrak{F}^{-1}$ menunjukkan Transformasi Fourier dan Transformasi Inverse Fourier. $\mathbf{x}$ adalah urutan input dengan bentuk $n × 1$; $A(f)$ adalah spektrum amplitudo dari urutan $\mathbf{x}$; $P(f)$ adalah spektrum fase urutan $\mathbf{x}$; $L(f)$ adalah representasi log dari $A(f)$; dan $AL(f)$ adalah spektrum rata-rata $L(f)$ yang dapat diperkirakan dengan berkonvolusi urutan input dengan $h_n(f)$, di mana $h_n(f)$ adalah matriks n$ $n × yang didefinisikan sebagai: $$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)$ adalah residu spektral, yaitu, spektrum log $L(f)$ mengurangi spektrum log rata-rata $AL(f)$. Sisa spektral berfungsi sebagai representasi terkompresi dari urutan sementara bagian inovasi dari urutan asli menjadi lebih signifikan. Akhirnya, kami mentransfer urutan kembali ke domain spasial melalui Inverse Fourier Transform. Urutan hasil $S(\mathbf{x})$ disebut peta saliency. Mengingat peta saliency $S(\mathbf{x})$, urutan output $O(\mathbf{x})$ dihitung oleh: $$O(x_i) = \begin{cases}1, if \frac{S(x_i)-\overline{S(x_i)}}{S(x_i)} > \tau\0,otherwise,\end{cases}$$ di mana $x_i$ mewakili titik arbitrer secara berurutan $\mathbf{x}$; $S(x_i)$is titik yang sesuai dalam peta saliency; dan $\overline{S(x_i)}$ adalah rata-rata lokal dari titik sebelumnya $S(x_i)$.

Ada beberapa parameter untuk algoritma SR. Untuk mendapatkan model dengan performa yang baik, kami sarankan untuk menyetel windowSize dan ambang batas pada awalnya, ini adalah parameter terpenting untuk SR. Kemudian Anda dapat mencari penilaian yang sesuaiWindowSize yang tidak lebih besar dari windowSize. Dan untuk parameter yang tersisa, Anda dapat menggunakan nilai default secara langsung.

Untuk detail selengkapnya, lihat Time-Series Anomaly Detection Service di makalah Microsoft.

Metode

Fit(IDataView)

Mendeteksi anomali dalam rangkaian waktu menggunakan algoritma Spectral Residual (SR)

(Diperoleh dari TrivialEstimator<TTransformer>)
GetOutputSchema(SchemaShape)

Mendeteksi anomali dalam rangkaian waktu menggunakan algoritma Spectral Residual (SR)

Metode Ekstensi

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

Tambahkan 'titik pemeriksaan penembolokan' ke rantai estimator. Ini akan memastikan bahwa estimator hilir akan dilatih terhadap data cache. Sangat membantu untuk memiliki titik pemeriksaan penembolokan sebelum pelatih yang mengambil beberapa data berlalu.

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

Mengingat estimator, kembalikan objek pembungkus yang akan memanggil delegasi setelah Fit(IDataView) dipanggil. Seringkali penting bagi estimator untuk mengembalikan informasi tentang apa yang cocok, itulah sebabnya Fit(IDataView) metode mengembalikan objek yang di ketik secara khusus, bukan hanya umum ITransformer. Namun, pada saat yang sama, IEstimator<TTransformer> sering dibentuk menjadi alur dengan banyak objek, jadi kita mungkin perlu membangun rantai estimator melalui EstimatorChain<TLastTransformer> tempat estimator yang kita inginkan agar transformator dikubur di suatu tempat dalam rantai ini. Untuk skenario itu, kita dapat melalui metode ini melampirkan delegasi yang akan dipanggil setelah fit dipanggil.

Berlaku untuk

Lihat juga