Wykrywanie anomalii za pomocą sieci neuronowej


12

Mam duży, wielowymiarowy zestaw danych, który jest generowany każdego dnia.

Jakie byłoby dobre podejście do wykrycia jakiejkolwiek „anomalii” w porównaniu z poprzednimi dniami? Czy to odpowiedni problem, który można rozwiązać za pomocą sieci neuronowych?

Wszelkie sugestie są mile widziane.

dodatkowe informacje: nie ma przykładów, więc metoda powinna wykryć anomalie

Odpowiedzi:


12

Z sformułowania pytania zakładam, że nie ma żadnych „przykładów” anomalii (tj. Etykiet). Przy takim założeniu wykonalnym podejściem byłoby użycie autokoderów : sieci neuronowych, które odbierają dane jako dane wejściowe i są szkolone, aby wyprowadzać te same dane. Chodzi o to, że szkolenie pozwoliło sieci nauczyć się reprezentacji rozkładów danych wejściowych w postaci ukrytych zmiennych.

Istnieje rodzaj autoencodera zwanego auto-dekoderem odszumiania , który jest szkolony z uszkodzonymi wersjami oryginalnych danych jako danych wejściowych i z nieuszkodzonymi oryginalnymi danymi jako danymi wyjściowymi. Zapewnia to sieć, która może usuwać szumy (tj. Uszkodzenia danych) z wejść.

Możesz wyszkolić auto-dekoder denoisingu z codziennymi danymi. Następnie użyj go do nowych codziennych danych; w ten sposób masz oryginalne dane dzienne i nieuszkodzoną wersję tych samych danych. Następnie możesz porównać oba, aby wykryć znaczące różnice.

Kluczem jest tutaj, którą definicję znaczącej różnicy wybierzesz. Możesz obliczyć odległość euklidesową i założyć, że jeśli przekroczy ona dowolny arbitralny próg, masz anomalię. Innym ważnym czynnikiem jest rodzaj zepsucia się przedstawić; powinny być jak najbardziej zbliżone do rozsądnych nieprawidłowości.

Inną opcją byłoby użycie Generatywnych sieci przeciwników . Produktem ubocznym szkolenia jest sieć dyskryminująca, która odróżnia normalne dane dzienne od nieprawidłowych danych.


4

Myślę, że w dużej mierze zależy to od charakteru twoich danych (jakościowe / ciągłe). Zacznę od prostych metod. Przychodzą mi na myśl:

  • Możesz porównać rozkład każdej zmiennej, używając kwantyli lub dowolnego testu statystycznego, aby sprawdzić, czy różnią się one znacząco
  • Możesz także policzyć występowanie każdej etykiety / kategorii i porównać je
  • Spróbowałbym również zastosować dowolny rodzaj miary odległości. Na przykład możesz obliczyć odległość mahalanobis i poszukać dużych zmian
  • Lub coś naprawdę prostego - po prostu absolutna różnica między nowymi i starymi danymi, ustaw próg i wszystko, co przekroczy próg, zostanie zgłoszone
  • Możesz także wdrożyć niektóre wielowymiarowe techniki - takie jak macierz korelacji, główne składniki, grupowanie itp. I poszukać zmian

Jeśli żaden z nich nie jest odpowiedni, istnieje cała gałąź modeli statystycznych / ML wyspecjalizowanych w wykrywaniu anomalii. SVM, t-SNE, lasy izolacja, Peer Analiza Grupa , Break Point Analysis , szeregów czasowych (gdzie szukać odstających spoza trendów).

Zaletą tych metod jest to, że są czymś w rodzaju białych skrzynek, dzięki czemu można stwierdzić, dlaczego ktoś jest wartością odstającą. Jeśli nie jest to coś, czego chcesz, inni sugerowali metody ANN, które również będą działać.


0

Próbuję rozwiązać podobny problem. Czy Twój zestaw danych zawiera połączenie funkcji tekstowych i numerycznych? Jeśli tak, to zwiększa się złożoność wykrywania anomalii (nie wiem przez jaki czynnik). Jeśli Twój zestaw danych jest jednolity, na przykład zawierający tylko wartości liczbowe, możesz potencjalnie użyć RNN, który nadal potrzebuje oznaczonego zestawu danych, ale może wykryć szeregi czasowe podobne do wzorców (ponieważ na przykład wspominasz porównanie z wartościami z poprzedniego dnia)


0

Prostym sposobem na zrobienie tego za pomocą Autoencoderów (bez „odszumiania autoencoderów”, które muszą zostać przeszkolone z „uszkodzonymi danymi”) jest wyszkolenie autoencodera, a następnie sprawdzenie RMSE wierszy z danych wejściowych, które nie były dobrze dekodowane (te że trudno było zrekonstruować autoencoder). Według niektórych definicji dane te stanowią anomalię (z pewnością dotyczy to np. Skoków ruchu).

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.