01. May 2021
Anomaliedetektion – Eine Einführung
Was ist Anomaliedetektion?
Anomalie kommt aus dem Griechischen und bedeutet so viel wie „Unregelmäßigkeit“. Unter Detektion wird das Feststellen oder Aufspüren von etwas verstanden. In Kombination bedeutet dies so viel wie das Aufspüren von Unregelmäßigkeiten. Anders ausgedrückt, Anomalien unterscheiden sich nicht nur von der generellen Mehrheit der Daten, sondern auch vom Normalzustand. Die Abweichungen hiervon möchte man im Rahmen der Anomaliedetektion finden. Es gibt drei unterschiedliche Anomaliefälle:
- Punktanomalien – Wir gehen von Punktanomalien aus, wenn Anomalien selten und unabhängig voneinander auftreten. Dies ist in Abbildung 1 zusehen, in der die zwei Punkte rechts oben sowohl auf der x- und y-Achse ungewöhnlich hohe Werte aufweisen.
- Kontextuelle Anomalien – Hierbei entsteht die Anomalie im Zusammenhang mit ihrem Kontext. Sollte ein Wert im Bezug auf den Kontext abnormal sein, wird dies als Kontextanomalie verstanden. In Abbildung 2 ist ein durchschnittlicher Temperaturverlauf einer Wetterstation zu sehen. Zwar ist eine Temperatur von 5 °C keine Seltenheit, für den Sommer allerdings untypisch.
- Kollektive Anomalien – Diese beschreiben den Fall, wenn Anomalien in Gruppen auftreten und nicht als unabhängige Werte. In Abbildung 3 ist eine Sinuskurve zusehen, die ab x = 15 kurz aussetzt. Wäre dieser Aussetzer nur für einen Schritt gewesen, wäre dies eine Kontextuelle Anomalie. Da die Sinuskurve allerdings mehrere Schritte aussetzt und somit eine Datengruppe bildet, wird dies als kollektive Anomalie bezeichnet.
Relevanz automatischer Anomaliedetektion
Die Anomaliedetektion wird in sehr vielen Bereichen eingesetzt. Die verbreitetsten Anwendungsgebiete sind das Erkennen von Betrugsfällen (Fraud Detection) und die industrielle Schadenserkennung (Industrial Damage Detection).
Ein Teilgebiet der Fraud Detection beschäftigt sich mit dem Erkennen von gestohlenen Kreditkarten. Alleine im Jahr 2020 wurden 780 Milliarden bargeldlose Transaktionen getätigt.
Diese Zahl hat sich in den letzten 6 Jahren verdoppelt [1]. Diese Datenmenge manuell zu analysieren ist schlicht unmöglich oder nur mit riesigem Ressourceneinsatz machbar. Ein weiteres Teilgebiet beschäftigt sich mit der Erkennung von Insider Trading. Dieser Ansatz soll dabei helfen, illegale Machenschaften von Personen und Firmen zu unterbinden.
Bei der Industrial Damage Detection geht es vor allem darum, mögliche Schäden und Betriebsausfälle von Maschinen frühzeitig zu erkennen. Die Daten der Maschinen werden meist kontinuierlich von Sensoren erfasst und müssen zeitnah ausgewertet werden. Der kontinuierliche Stream an Daten und eine mögliche gegenseitige Beeinflussung der Maschinen machen es den Menschen schwierig, komplexe Zusammenhänge schnell und zuverlässig zu erkennen.
Zuletzt möchten wir auf die Intrusion Detection eingehen, bei der es um die Erkennung von böswilligen Aktivitäten in computerbezogenen Systemen geht. Dies kann in Host based Intrusion und Network Intrusion aufgeteilt werden. Host based Intrusion Systeme überwachen die Prozesse und Ressourcennutzung eines Betriebssystems. Wohingegen sich Network Intrusion mit auffälligen Netzwerkverhalten beschäftigt, die unteranderem durch externe Hacker entstehen, welche unbefugten Zugriff auf das Netzwerk erhalten möchten. In beiden Fällen ist eine manuelle Erkennung durch die Menge an Daten nicht möglich.
Es gibt noch viele weitere Anwendungsgebiete wie Medical and Public Health Anomaly Detection, bei der er um das Erkennen von Instrumenten- und Aufzeichnungsfehlern geht. Weitere Beispiele sind in [2] erklärt.
Arten von Anomaliedetektion
Die Algorithmen zum Erkennen von Anomalien lassen sich in drei Klassen einteilen.
- Supervised – Supervised Algorithmen verwenden Daten, die bereits gelabelt („normal“ und „anomalie“) wurden und Anomalien enthalten.
- Semi-supervised – Semi-supervised Algorithmen verwenden dahingegen nur Daten, die als „normal“ gekennzeichnet sind. Meistens wird die Likelihood-Funktion verwendet, um abzuschätzen, ob der Datenpunkt zu den Trainingsdaten passt oder eine Anomalie ist.
- Unsupervised – Im letzten Fall sind keine Daten gelabelt. Der Algorithmus kennzeichnet die Datenpunkte als Anomalien, welche sich stark von der Mehrheit der Daten unterscheiden.
Für Fall 1 und 2 werden fast ausschließlich Machine Learning Modelle verwendet. In Fall 3 werden dahingegen meist statistische Verfahren eingesetzt.
Supervised
Bei der Anomaliedetektion im Supervised Learning Umfeld ist eine Trainingsdatenmenge X gegeben, in der bereits jeder Datenpunkt einen Zielfunktionswert Y besitzt. Diese Datensätze werden als gelabelt bezeichnet. Eine mathematische Funktion wird mit den Trainingsdaten trainiert und kann auf neuen Daten den Funktionswert Y möglichst präzise vorhersagen. Im Kontext von Anomaliedetektion sind die Klassen häufig unausgewogen (engl. unbalanced), das heißt eine Klasse oder mehrere Klassen eines Datensatzes sind gegenüber den anderen deutlich über-/ oder unterpräsent. Dies lässt sich damit erklären, dass in der Anomaliedetektion meistens viele „normale“ Daten zur Verfügung stehen, allerdings sind nur wenige „anomalie“ Daten vorhanden. Beim Supervised Learning werden meist Klassifikations- und Regressionsalgorithmen eingesetzt.
Klassifikation
Die Klassifikation ist die Vorhersage von Gruppenzugehörigkeiten: Ist eine Maschine im Wartungsfenster? Ja oder Nein. Beim Lösen eines Klassifikationsproblems ist es essenziell sich die Häufigkeitsverteilung der einzelnen Klassen anzuschauen. Im einfachsten Fall liegen zwei Klassen in den Daten vor. Die erste Klasse besagt bspw. „Die Maschine funktioniert korrekt.“ und die zweite Klasse „Es liegt ein Fehler vor.“. Die zweite Klasse kommt entsprechend der Annahme selten vor, sodass von dieser Klasse wenig Daten vorliegen. Ein Ansatz ist, die zweite Klasse durch ein Wartungsfenster zu ersetzen. Dazu werden Datenpunkte, die kurz vor einem Fehler auftreten, als Wartungsfenster gelabelt. Wir erhalten die zwei Klassen „Alles in Ordnung“ und „Wartungsfenster“. Im nächsten Schritt müssen die Klassen ausbalanciert werden, damit diese etwa die gleiche Größe haben. Das Ausbalancieren von Datensätzen ist notwendig, da viele Machine Learning Algorithmen Schwierigkeiten mit unausgewogenen Daten haben. Methoden zum Balancieren von Datensätzen sind Over- und Under-Sampling [3]. Beim Over-Sampling werden die Datenpunkte der kleineren Klasse vervielfacht. Hingegen werden beim Under-Sampling Datenpunkte der größeren Klasse gelöscht. Beide Methoden können auch kombiniert werden.
Datensätze aus der Industrie haben eine große Anzahl an Features (oder auch Dimensionen), wodurch es notwendig sein kann, diese zu reduzieren. Die Dimensionen können mit der Hauptkomponentenanalyse (Princial Component Analysis) [4] reduziert werden. Nach dem Durchführen der Datenaufbereitung können die Daten zur Modellierung des Machine Learning Modells verwendet werden. Supervised Anomaliedetektion kann z.B. mithilfe von Neuronalen Netzen umgesetzt werden. Es werden allerdings nicht unbedingt Neuronale Netze benötigt. In einigen Anwendungsfällen reichen auch einfachere Verfahren aus. Beispiele hierfür sind die Algorithmen Random Forest, Gradient Tree Boosting oder Support Vector Machine.
Regression
Beim Regressionsverfahren werden einzelne Werte vorhergesagt: In wie vielen Wochen fällt die Maschine aus? Im Kontext der Prädiktiven Instandhaltung (Predictive Maintenance) wird beispielsweise die restliche Lebenszeit (remaining useful life) einer Komponente vorhergesagt. Bei diesem Ansatz werden ebenfalls gelabelte Daten zum Training benötigt. Der Trainingsdatensatz enthält die Anomalien, welche zum Ausfall einer Maschine geführt haben. In der Datenvorbereitung muss, wie bei der Klassifikation, mit fehlenden und fehlerhaften Werten umgegangen werden. Bei einer Regression sind die Labels stetig, zum Beispiel die Anzahl der Zyklen bis zum Ausfall einer Komponente. Als Regressionsalgorithmen können unter anderem Linear Regression und Support Vector Machine eingesetzt werden. Bei einer Regression sagen die Algorithmen allerdings keine Klassen vorher, sondern quantitative Daten.
Der Supervised Ansatz ist leicht umzusetzen. Allerdings sind meist nicht alle Anomalien im Vorfeld bekannt. Dadurch sind von diesen keine Trainingsdaten vorhanden und können somit meist nicht korrekt vorhergesagt werden. Auch das Auswiegen der Daten kann komplex werden, wenn es viele Klassen gibt.
Semi-supervised
Beim semi-supervised Ansatz in der Anomaliedetektion, sind nur die Daten gelabelt, die zu der Klasse „normal“ gehören. Die Modelle werden darauf trainiert, die „normalen“ Daten zu erkennen und Abweichungen als „anomalie“ zu klassifizieren. Im Folgenden wird der Reconstruction Error und die Future Frame Prediction vorgestellt, welche beide semi-supervised Ansätze zur Anomaliedetektion in Bildern sind. Anomalien in Bildern können Produkte sein, die in ihrer Farbe, Form und Struktur vom „normalen“ Produkt abweichen.
Reconstruction Error
Der Reconstruction Error basiert auf Autoencodern (AE). AE werden verwendet, um eine niedrig dimensionale Featurerepräsentation der Daten zu erlernen. Diese Repräsentation der Daten wird mithilfe des Encoders erstellt. Anschließend soll der Decoder von dieser Repräsentation den ursprünglichen Datensatz/das ursprüngliche Bild so gut wie möglich rekonstruieren. In Abbildung 4 ist die Architektur eines AEs zu sehen. In Abbildung 5 ist ein AE zu sehen, welcher auf dem MNIST Datensatz [5] trainiert wurde. Der AE funktioniert gut auf den Trainingsdaten. Das fünfte Bild in Abbildung 5 (der Hund) weicht stark von den Trainingsdaten ab, wodurch das rekonstruierte Bild nur noch wenig mit dem ursprünglichem Input-Bild gemeinsam hat. Aufgrund des großen Unterschieds erhalten wir einen hohen Fehler, der wiederum auf eine Anomalie hinweist.
Future Frame Prediction
Bei der Future Frame Prediction wird sich hingegen das Prinzip von Generative Adversarial Networks (GAN) zunutze gemacht. Ein GAN ist ein zwei Spieler Spiel. Spieler 1 (Generator Network) erstellt basierend auf dem aktuellen Frame den zukünftigen Frame. Spieler 2 (Discriminator Network) soll anschließend entscheiden, ob der Frame echt ist, den er bekommt. Der Aufbau einer GAN ist in Bild 6 zu sehen. Beim Training erhält der Discriminator ein zufälliges Bild, welches entweder aus dem Trainingsdatensatz stammt oder vom Generator (Spieler 1) erzeugt wurde. Der Generator erhält beim Training zudem Feedback, ob er den Discriminator (Spieler 2) erfolgreich überlisten konnte. Spieler 1 hat also das Ziel, immer bessere Bilder zu erstellen und den Discriminator zu überlisten. Dagegen wird Spieler 2 darauf trainiert, die Bilder zu unterscheiden.
Die Idee dabei ist ähnlich wie beim Reconstruction Error: Sollte Spieler 1 ein Bild mit einer Anomalie erhalten, wird dieser Probleme haben, den nächsten Frame gut vorherzusagen und wahrscheinlich einen fehlerhaften Frame erzeugen. Anstatt aber mit dem Fehler zu arbeiten, entscheidet das trainierte Discriminator Network, ob es sich um ein „normales“ Bild oder eine Anomalie handelt.
Beide Methoden haben ähnliche Vor- und Nachteile. Die Daten müssen weder gelabelt werden noch benötigen sie Anomalien für das Training. Allerdings benötigen die Methoden viele Trainingsdaten und sind sehr schwer zu trainieren. Sie eignen sich dementsprechend nicht in Fällen, in denen sich die „normalen“ Daten häufig ändern.
Unsupervised
Wenn keine gelabelten Trainingsdaten zur Verfügung stehen, bewegt man sich in einem unsupervised Umfeld. In diesem Fall bieten sich Clusteringverfahren an. Dafür schauen wir uns den Density-Based Spatial Clustering of Application with Noise (DBSCAN) genauer an. Wie bereits der Name impliziert, ist es ein Dichte-basiertes Clusteringverfahren, welches mit Rauschen/Outliern/Außenseiter umgehen kann. Der Algorithmus benötigt zwei Parameter vor dem Start: die Dichte und den Radius.
Die Dichte beschreibt die minimale Anzahl der Punkte, die im Radius liegen müssen, damit ein Punkt zu einem Cluster hinzugefügt wird. Der Radius ist die maximale Entfernung, in der nach anderen Punkten gesucht wird. In Abbildung 7 ist der Algorithmus dargestellt. Die Daten können nach dem Ausführen in drei Kategorien eingeteilt werden: Kernpunkte, Dichte-erreichbare Punkte und Rauschpunkte. Kernpunkte und Dichte-erreichbare Punkte in ihrem Radius bilden zusammen Cluster. Rauschpunkte stehen dagegen für sich alleine und können als Anomalien betrachtet werden.
Dieser Algorithmus findet Cluster in beliebiger Größe und beliebiger Anzahl. Allerdings funktioniert DBSCAN nicht für Cluster mit unterschiedlichen Größen. Wir können zwar größere Cluster finden, aber keine Cluster mit einer kleineren Dichte.
Fazit
Anomaliedetektion ist ein aufstrebendes Forschungsgebiet, das immer mehr Einsatz in der Industrie findet. Die Lösungsmöglichkeiten können in supervised, semi-supervised und unsupervised eingeteilt und je nach Anwendungsfall abgewägt werden. Es gibt zwar viele unterschiedliche Ansätze, aber bisher gibt es noch keine Allzweckmethode. Beim supervised Ansatz gibt es das Problem, dass nicht alle Anomalien vorher bekannt sind und diese somit meist nicht vorhergesagt werden können. Eine Alternative, der semi-supervised Ansatz, benötigt keine Trainingsdaten von Anomalien, ist dafür schwer zu trainieren. Der unsupervised Ansatz benötigt keine gelabelten Trainingsdaten. Allerdings eignet sich dieser nicht für die meisten Anwendungsfälle. Wir sind davon überzeugt, dass Anomaliedetektion mit maschinellem Lernen immer mehr Bedeutung in der Industrie erlangt und in Zukunft nicht darauf verzichtet werden kann.
Du willst noch mehr zu Anomaliedetektion lesen? Dann schau mal in den zweiten Teil unserer Blogserie rein.
[2] – https://www.researchgate.net/p...
[3] – https://www.kaggle.com/residentmario/undersampling-and-oversampling-imbalanced-data
[4] – https://royalsocietypublishing.org/doi/10.1098/rsta.2015.0202