Bei der Erkennung von Anomalien geht es darum, automatisiert fehlerhafte Objekte bzw. Daten zu identifizieren. Und auch dazu können Autoencoder eingesetzt werden: Es wird (eine ausreichend große) Menge an fehlerfreien Daten zum Trainieren eines Autoencoders verwendet. Nach der Trainingsphase können beliebige Eingangssignale ausgewertet werden und es wird die (durchschnittliche quadratische) Abweichung zwischen Eingangs- und Ausgangssignal verglichen. Dazu dient die folgende .deviation-Funktion:
Beim Anwendungsfall der Anomalieerkennung wird folgende Annahme getroffen:
Falls die durchschnittliche quadratische Abweichung der einzelnen Neuronen zwischen Eingangs- und Ausgangssignal einen gewissen Schwellwert überschreitet, dann handelt es sich beim Eingangssignal um fehlerhafte Daten (anderenfalls um fehlerfreie Daten).
Um die Erkennung von Anomalien zu erproben, nutzen wir das TinyRings-Datenpaket:
Das Paket beinhaltet drei Tabellen, wobei jede Zeile der Tabellen jeweils als 8 x 8 Schwarz-Weiß-Bild eines kleinen Ringes angesehen werden kann:
Tabelle | Zeilen | Beschreibung |
train | 1000 | Bilder fehlerfreier Ringe zum Trainieren |
conform | 200 | Bilder fehlerfreier Ringe zum Testen |
anomly | 200 | Bilder fehlerhafter Ringe zum Testen |
Die Tabelle train wird verwendet, um einen Autoencoder zu trainieren. Die Aufgabe besteht anschließend darin, dass die fehlerfreien Daten/Bilder der Tabelle conform auch als fehlerfrei (konform) sowie die fehlerhaften Daten/Bilder der Tabelle anomly auch als fehlerhaft (Anomalie) erkannt werden.
Im folgenden Beispiel wird (nach der Trainingsphase) die durchschnittliche quadratische Abweichung der Daten der Tabellen conform und anomly berechnet und dargestellt. Damit lässt sich auch ein Schwellwert zur Anomalieerkennung ableiten.