Mendeteksi anomali dengan jaringan saraf

12

Saya memiliki dataset multi dimensi besar yang dihasilkan setiap hari.

Apa yang akan menjadi pendekatan yang baik untuk mendeteksi segala jenis 'anomali' dibandingkan dengan hari-hari sebelumnya? Apakah ini masalah yang cocok yang bisa diatasi dengan jaringan saraf?

Ada saran yang dihargai.

informasi tambahan: tidak ada contoh, jadi metode ini harus mendeteksi anomali itu sendiri

Nickpick
sumber

Jawaban:

12

Dari rumusan pertanyaan, saya berasumsi bahwa tidak ada "contoh" dari anomali (yaitu label) apa pun. Dengan asumsi itu, pendekatan yang layak adalah dengan menggunakan autoencoder : jaringan saraf yang menerima sebagai input data Anda dan dilatih untuk menampilkan data yang sama. Idenya adalah bahwa pelatihan telah memungkinkan internet untuk belajar representasi dari distribusi data input dalam bentuk variabel laten.

Ada jenis autoencoder yang disebut denoising autoencoder , yang dilatih dengan versi data asli yang rusak sebagai input dan dengan data asli yang tidak rusak sebagai output. Ini memberikan jaringan yang dapat menghilangkan noise (yaitu kerusakan data) dari input.

Anda dapat melatih autencoder denoising dengan data harian. Kemudian gunakan pada data harian baru; dengan cara ini Anda memiliki data harian asli dan versi yang tidak rusak dari data yang sama itu. Anda kemudian dapat membandingkan keduanya untuk mendeteksi perbedaan yang signifikan .

Kuncinya di sini adalah definisi perbedaan signifikan yang Anda pilih. Anda bisa menghitung jarak euclidean dan mengasumsikan bahwa jika melampaui ambang batas arbitrer tertentu, Anda memiliki anomali. Faktor penting lainnya adalah jenis korupsi yang Anda perkenalkan; mereka harus sedekat mungkin dengan kelainan yang masuk akal.

Pilihan lain adalah menggunakan Generative Adversarial Networks . Produk sampingan pelatihan adalah jaringan diskriminator yang membedakan data harian normal dari data abnormal.

ncasas
sumber
4

Saya pikir itu sangat tergantung pada sifat data Anda (kategorikal / berkelanjutan). Saya akan mulai dengan metode sederhana terlebih dahulu. Itu muncul di benak saya:

  • Anda dapat membandingkan distribusi setiap variabel baik dengan menggunakan kuantil atau uji statistik apa pun untuk melihat apakah mereka berbeda secara signifikan
  • Anda juga dapat menghitung kemunculan setiap label / kategori dan membandingkannya
  • Saya juga mencoba menggunakan segala macam ukuran jarak. Misalnya Anda bisa menghitung jarak mahalanobis dan mencari perubahan besar
  • Atau sesuatu yang sangat sederhana - hanya perbedaan mutlak antara data baru dan lama, menetapkan ambang batas dan segala sesuatu yang melebihi ambang batas akan dilaporkan
  • Anda juga dapat menerapkan beberapa teknik multidimensi - seperti matriks korelasi, komponen utama, pengelompokan dll dan mencari perubahan

Jika tidak ada yang cocok, maka ada seluruh cabang statistik / model ML khusus untuk deteksi anomali. SVM, t-SNE, Hutan isolasi, Analisis Kelompok Sebaya , Analisis Titik Break , seri Waktu (di mana Anda akan mencari outlier tren luar).

Metode-metode itu memiliki keuntungan karena mereka semacam kotak putih, jadi Anda bisa tahu mengapa seseorang itu pencilan. Jika ini bukan hal yang Anda inginkan, yang lain menyarankan pendekatan JST, yang juga akan berhasil.

HonzaB
sumber
0

Saya mencoba menyelesaikan masalah serupa. Apakah dataset Anda berisi campuran fitur teks dan numerik? Jika demikian kompleksitas mendeteksi anomali meningkat (saya tidak tahu faktor apa). Jika dataset Anda seragam, misalnya hanya berisi nilai numerik, Anda berpotensi menggunakan RNN yang masih membutuhkan dataset berlabel tetapi dapat mendeteksi pola waktu seperti pola (karena Anda menyebutkan perbandingan dengan nilai hari sebelumnya untuk ex)

Pradeep Banavara
sumber
0

Cara sederhana untuk melakukan ini menggunakan Autoencoder (tanpa "denoising autoencoder" yang perlu dilatih dengan "data rusak") adalah melatih sebuah autoencoder dan kemudian memeriksa RMSE dari baris dari input yang tidak dapat memecahkan kode dengan baik (yang bahwa autoencoder mengalami kesulitan merekonstruksi). Dengan beberapa definisi bahwa data akan mewakili anomali (tentu ini akan menjadi kasus untuk hal-hal seperti lonjakan lalu lintas).

orcaman
sumber