INDUSTRIES

Online-Lernen: ein neuer Machine-Learning-Ansatz in Splunk

Die meisten der klassischen, Batch-orientierten Machine-Learning-Systeme folgen dem Motto „fit and apply“, „anpassen und anwenden“. In einem früheren Blog-Beitrag habe ich einige Muster erörtert, wie man mit Splunk die Datenpipelines und Workflows maschinellen Lernens besser organisieren kann. In diesem Blog werden wir uns nun ansehen, wie ihr euer ML-Modell auf eine neue, ganz andere Art und Weise organisieren könnt: als Online-Lernen.

Batch-Lernen vs. Online-Lernen

Der Unterschied zwischen Batch- und Online-Lernsystemen besteht darin, dass man beim ersten Ansatz versucht, aus einer ganzen Datenbasis auf einmal zu lernen, während man beim zweiten Ansatz in inkrementellen Schritten vorgeht und sein Modell laufend „online“ aktualisiert. In der Praxis hat jede Methode ihre Vor- und Nachteile, sodass schwer zu entscheiden ist, welcher Ansatz besser geeignet ist.

Der Hauptvorteil von Online-Lernsystemen ist der in der Regel geringere Rechen- und Speicherbedarf, denn es muss ja, anders als beim klassischen Batch-Lernen, keine große Datenbasis verarbeitet werden. Die Verarbeitung der Stapeldaten kann dann zwar kostspielig werden und das Trainieren des Modells kann seine Zeit dauern, doch dafür könnt ihr ein Online-Lernsystem kontinuierlich mit kleineren Datenstapeln füttern und bekommt so schnellere Antworten. Das System lernt aus den Batches, merkt sich die wichtigen Merkmale in seiner Modelldarstellung und wendet sie zugleich an, indem es Inferenzen auf die vorgelegten Daten schlussfolgert. Außerdem kann sich das Modell sofort an neue Situationen anpassen, sobald neue Datenpunkte eintreffen, und somit immer weiter lernen.

Über diesen Vorteilen solltet ihr allerdings nicht vergessen, dass es auch Herausforderungen gibt, die ihr bedenken solltet. So sollte das Modell in der Lage sein, mit dem Phänomen Concept Drift umzugehen, das auftreten kann, wenn sich die Daten unvorhergesehen erheblich ändern. Wenn ihr nur das Online-Modell, aber nicht mehr die historischen Daten dazu habt, dann wird es außerdem schwierig, das Modell sinnvoll neu zu trainieren, falls in euren Daten oder im Online-Algorithmus eurer Wahl etwas schief läuft. Bei Systemen in der Produktion solltet ihr idealerweise eine Strategie haben, wie mit solchen Situationen umzugehen ist. Das gilt insbesondere dann, wenn sich geschäftskritische Anwendungen auf das Online-Lernsystem stützen. Nichtsdestotrotz ist dieser Ansatz ein praktikables Mittel, das ihr für eure Use Cases in Betracht ziehen solltet.

Beispiel: Anomalieerkennung mit Online-Lernen

Seit Version 3.8 ermöglicht die Splunk App for Data Science and Deep Learning (DSDL), das ehemalige Deep Learning Toolkit (DLTK), die Nutzung von Online-Lernalgorithmen der Python-Bibliothek River, mit einem dedizierten Container-Image und dem Beispiel einer Online-Learning-Anomalieerkennung auf der Grundlage des HalfSpaceTrees-Algorithmus, einer Online-Variante von Isolation Forest. Das funktioniert gut, wenn die Anomalien verteilt sind.

Online Learning Anomaly Detection

Im Screenshot seht ihr eine einfache Zeitreihe mit den Zugriffen auf einen Service der Personalbeschaffung, dargestellt durch die blauen Balken. Im darübergelegten Liniendiagramm seht ihr eine grüne Linie, die den Anomalie-Score anzeigt, den das Online-Lernmodell berechnet hat. Ihr seht auch, dass der Wert im Diagramm erst nach einer bestimmten Aufwärmphase erscheint, wie sie fürs Online-Lernen typisch ist. Wenn ihr die grüne Linie genauer verfolgt, könnt ihr auch erkennen, dass sich das lernende System nach einiger Zeit von einem Durchschnittswert bei 0,40 auf einem niedrigeren Wert stabilisiert, der am Ende des Diagramms etwa bei 0,25 liegt. Die orange Linie zeigt schließlich die markierten Anomalien; markiert sind sie auf der Grundlage eines Schwellenwerts, der einfach angepasst werden kann, je nach gewünschter Empfindlichkeit des Detektors. Auf diese Weise sind elf Anomalien automatisch erkannt und können nun ganz leicht für Warnmeldungen oder komplexere Korrelationssuchen verwendet werden.

Online-Lern-Workflow mit Splunk und DSDL

Zum Abschluss dieses Online-Lernbeispiels wollen wir uns ansehen, wie ein entsprechender Splunk-Workflow in der Praxis aussehen würde. Normalerweise würdet ihr euer DSDL-Online-Lernsystem mit den folgenden Schritten zum Laufen bringen:

  1. Den geeigneten Algorithmus in River finden und als Jupyter Notebook in DSDL implementieren, wie beim bestehenden river_halfspacetree.ipynb-Beispiel.
  2. Ein erstes Online-Lernmodell erstellen – mit einer Suche, die eure Basissuche und … | fit MLTKContainer algo=river_halfspacetree window_size=100 n_trees=10 height=3 Recruiting into app:online_anomaly_detector … enthält sowie Zugriff auf Daten hat, die gut mit eurem jeweiligen Algorithmus funktionieren.
  3. Ihr habt ja jetzt bereits ein Modell vorliegen, das „online_anomaly_detector“ heißt. Nun startet ihr einen dedizierten Container, der ausschließlich eurem Use Case dient.
  4. Eine Suche definieren, die … | apply online_anomaly_detector … enthält, und sie nach gewünschtem Zeitplan ausführen, z. B. alle fünf Minuten für die neuen Daten der letzten fünf Minuten. Das Online-Lernsystem wendet sich inferenziell auf die neuen Daten an, lernt anschließend aus deren Eigenschaften und aktualisiert sich selbst.
  5. Es bleibt letztlich euch überlassen, wie ihr die Ergebnisse praktisch verwerten wollt. Ihr könnt direkt Warnmeldungen einrichten bzw. einen zusammenfassenden Index schreiben lassen, damit ihr die Ausgaben auf einem Dashboard oder für weitere Korrelationssuchen nutzen könnt. Es bleibt letztlich euch überlassen, wie ihr die Ergebnisse praktisch verwerten wollt.
  6. Wahlweisezusätzliche Logging- oder Scoring-Funktionen ergänzen. Auf diese Weise könnt ihr eure ML-Workflows weiter optimieren und behaltet Zustand und Performance eures Modells im Blick.

Ich hoffe, dass dieser Blog-Beitrag euch einen neuen Ansatz aufzeigen konnte, der vielleicht für eure ML-Herausforderungen passt. Bitte denkt aber daran, dass nicht alle Algorithmen gleichermaßen fürs Online-Lernen geeignet sind. Ihr solltet also die Use Cases sorgsam prüfen und dabei mögliche Online-Lernansätze mit anderen, klassischen Batch-Lernmethoden vergleichen, erst dann könnt ihr am Ende eine informierte Entscheidung treffen.

Wenn ihr mehr über die Splunk App für Data Science und Deep Learning erfahren wollt, könnt ihr euch diese .conf-Session ansehen – es hier darum, wie BMW vorausschauendes Testen mit DSDL als Strategie der Automobilfertigung nutzt. Und falls euch interessiert, wie ihr eure Prognosen mit DSDL und Prophet im großen Stil ausweiten könnt, dann haben wir auch hierzu einen eigenen Beitrag für euch.

Viel Spaß beim Online-Trainieren!

Philipp


Vielen Dank an Judith Silverberg-Rajna, Katia Arteaga und Mina Wu für ihre Hilfe bei der Bearbeitung und Publikation dieses Beitrags.

*Dieser Artikel wurde aus dem Englischen übersetzt und editiert. Den Originalblogpost findet ihr hier.

Philipp Drieger arbeitet als Principal Machine Learning Architect bei Splunk. Er begleitet Splunk Kunden und Partner in verschiedenen Branchen bei deren digitaler Transformation durch den Einsatz von Datenanalyse, maschinellem Lernen und künstlicher Intelligenz. Damit unterstützt er Unternehmen bei der Realisierung von herausfordernden Anwendungsfällen im Bereich von IT Sicherheit, Operations, IoT und Geschäftsanwendungen. Vor Splunk arbeitete Philipp als freiberuflicher Softwareentwickler und Berater im Bereich 3D Echtzeit Graphik und Visualisierung. In der Forschung hat er Artikel zum Thema Textanalyse und semantischer Netzwerkanalyse veröffentlicht.

Tags
Alle Tags anzeigen
Show Less Tags