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.
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.
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.
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.
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:
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.
Die Splunk-Plattform beseitigt die Hürden zwischen Daten und Handlungen, damit Observability-, IT- und Security-Teams in ihren Unternehmen für Sicherheit, Resilienz und Innovation sorgen können.
Splunk wurde 2003 gegründet und ist ein globales Unternehmen – mit mehr als 7.500 Mitarbeitern, derzeit über 1.020 Patenten und einer Verfügbarkeit in 21 Regionen rund um den Globus. Mit seiner offenen, erweiterbaren Datenplattform, die die gemeinsame Nutzung von Daten in beliebigen Umgebungen unterstützt, bietet Splunk allen Teams im Unternehmen für jede Interaktion und jeden Geschäftsprozess End-to-End-Transparenz mit Kontext. Bauen auch Sie eine starke Datenbasis auf – mit Splunk.