Machine Learning am Netzwerkrand Inkrementelles vs. Batch-Lernen

Es gibt verschiedene Konzepte für Edge Machine Learning – doch welches ist das bessere?
Es gibt verschiedene Konzepte für Edge Machine Learning – doch welches ist das bessere?

Für Anwendungen am Netzwerkrand wird maschinelles Lernen immer wichtiger. Dafür gibt es zwei Ansätze – das inkrementelle und das Batch-Lernen. Aber welcher Ansatz ist der bessere?

Beim maschinellen Lernen für Internet of Things (IoT)-Anwendungen lädt jedes vernetzte Gerät Daten in die Cloud. Anschließend wird ein Modell angelernt, das auf sämtliche Geräte übertragbar ist, und so zum Beispiel den Energieverbrauch einer Elektrobus-Batterie erklärt. Der Vorteil beim zentralen Lernen ist, dass das Modell anhand des Gerätebestands Generalisierungen ableiten und somit schneller lernen kann. Allerdings hat das zur Folge, dass die Daten alle Varianten in den Geräten und ihren Umweltfaktoren erklären können. Das sicherzustellen, ist jedoch schwer.

Aus dem Grund setzt Ekkono auf das sogenannte Edge Machine Learning, also maschinelles Lernen (ML) auf vernetzten Geräten am Netzwerkrand. Hier setzt Ekkono mit dem Umsetzen des Konzepts des inkrementellen Lernens an. Dabei wird das Machine-Learning-Modell kontinuierlich anhand von Streamingdaten trainiert, das unterstützt das Erlernen eines individuellen Modells für jedes Gerät. In der Praxis vereinfacht das den Lernprozess, da jedes Modell in der Lage sein muss, seinen eigenen Normalzustand zu erklären und nicht, inwiefern es sich von allen anderen Geräten unterscheidet. Andere Vorteile des dezentralen, inkrementellen Lernens sind, dass die Modelle sich im Laufe der Zeit an Veränderungen anpassen lassen sowie das Umsetzen der Anpassungen in Echtzeit. Möglich ist das, da nur die Prozessdaten – die oftmals wesentlich kompakter sind als Rohdaten – in die Cloud zu übertragen sind, womit sich Bandbreiten- und Vernetzungssprobleme reduzieren lassen (Bild 1).

Konzepte des Machine Learning

Das ursprüngliche Konzept des maschinellen Lernens sieht vor, Daten zu sammeln und in einem Datenspeicher bereitzustellen. Von dort sind sie jederzeit abrufbar. Auf Grundlage der Daten wird danach ein Modell zum Minimieren einer Score-Funktion – zum Beispiel der mittleren quadratischen Abweichung – für die Zielvariable, wie den Kraftstoffverbrauch, entwickelt. Der Grund für das Vorgehen ist die Annahme, dass ein größerer Datensatz die tatsächliche, zugrunde liegende Verteilung besser repräsentiert. Es bedeutet, unter normalen Umständen wird eine größere Datenmenge als besser erachtet, da sie die Realität besser widerspiegelt. Es bedeutet jedoch auch, dass der Algorithmus von einer gleich bleibenden Verteilung in der Zukunft – wie bei den zum Anlernen verwendeten Daten – ausgeht und davon ausgehend eine Entscheidung trifft.

Da der Datenspeicher ein großes Datenvolumen beinhaltet, das er während der Anlernphase verarbeiten muss, hat das Vorgehen bis zum Abschluss der Phase eine hohe CPU-Last zur Folge. In der Regel entsteht deshalb ein Engpass. Ist der Trainingszeitraum beendet, kann der Entwickler die gespeicherten Daten jedoch löschen, um mit dem weiteren Modellablauf fortzufahren. Das ermöglicht das günstige und einfache Erstellen von Schlussfolgerungen und Prognosen, um die Daten direkt von den Sensoren am Gerät zu nutzen. In der Praxis wird meist ein kleiner temporärer Speicher benötigt, um bereits aufgetretene Schwierigkeiten zu speichern. Außerdem optimiert er die Berechnung des gleitenden Durchschnitts und anderer statistischer Werte, mit denen sich die Daten veredeln und die Lernaufgaben vereinfachen lassen (Bild 2).

Batch- vs. inkrementelles Lernen

Das Konzept des Batch-Lernens wird bereits seit den Anfängen des maschinellen Lernens eingesetzt und nimmt auch künftig eine vorherrschende Rolle im Bereich des Machine Learning ein. Für bestimmte Aktivitäten, bei denen ein Gerät oder dessen Umgebung Veränderungen unterliegt, ist allerdings ein onlinebasierter beziehungsweise inkrementeller Ansatz besser geeignet.

Der Einsatz des inkrementellen Lernens ist empfehlenswert, wenn:

  • die Geräteleistung aufgrund jahreszeitlich bedingter Faktoren wie der Temperatur oder der Feuchtigkeit beeinflusst werden könnte. Ohne den Einsatz des inkrementellen Lernens müsste der Anwender über einen Zeitraum von mindestens einem Jahr Daten sammeln, bevor er mit dem Training beginnen kann.
  • sich das Gerät selbst aufgrund von Reparaturen oder Upgrades verändern könnte. Bei jedem Verändern sind neue Daten zu sammeln, um das Gerät nachzutrainieren.
  • IoT-Geräte mobil und in vielen unterschiedlichen Umgebungen eingesetzt sind. Neue Stand- oder Einsatzorte würden eine erneute Datenerfassung und ein Training eines neuen Modells erforderlich machen.
  • die Maschinen- oder Gerätekonfiguration in Hinblick auf das Worst-Case-Szenario optimiert ist und nicht auf den Normalbetrieb. Das kann ein schlechtes Leistungsergebnis zur Folge haben. Wenn das Modell nicht vor Ort unter realen Betriebsbedingungen trainiert wird, funktioniert es nicht optimal.
  • Auch Bild 3 verdeutlicht, dass es manchmal besser ist, das Modell kontinuierlich nach dem Prinzip des inkrementellen Lernens zu trainieren.

Beim inkrementellen Lernen sind keine riesigen Datenmengen zu sammeln, um das Modell anzulernen. Stattdessen beginnt das Lernen mit einem sehr einfachen Modell, das anhand der bisherigen Daten einen Mittelwert voraussagt. Wenn neue Datensätze eingehen, nimmt das Modell anhand des neuen Beispiels eine Interpretation vor. Ein großer Unterschied zum Batch-Lernen liegt darin, dass die Daten für die Gesamtpopulation nicht repräsentativ sind, da lediglich ein sehr kleiner Beispieldatensatz benötigt wird. Das ist zum Beispiel der Fall, wenn das zugrunde liegende Verteilen der Daten unbekannt ist. Folglich ist das Modell nicht dahingehend trainierbar, die Fehlerquote in den neuen Beispielsätzen zu minimieren. Denn das würde bedeuten, dass eine Prognose bloß bezüglich eines sehr kleinen Teils der möglichen Beispiele erstellbar ist.

Beim Entwurf von inkrementellen Algorithmen ist es daher wichtig, eine angemessene Lernquote zu finden. In Bild 4a ist die Wirkung einer zu hohen Lernquote dargestellt. Es ist erkennbar, dass das Grundkonzept scheinbar sehr schnell zu erlernen ist, jedoch auch noch nach 2.000 Abtastzeitpunkten sehr große Abweichungen vorhanden sind. Werden stattdessen kleinere Schritte in Richtung einer guten Prognose für das neue Beispiel gemacht, resultiert das in einer langsameren, jedoch besseren Lernquote, wie Bild 4b zeigt. Ist ein Fall wichtig, tritt er wiederholt auf, und jedes Mal, wenn das Modell auf einen ähnlichen Fall stößt, reagiert es ein wenig besser. Im Laufe der Zeit erlernt es die wiederkehrenden Muster und somit auch das zugrunde liegende Konzept. Der Nachteil gegenüber dem Batch-Lernen besteht darin, dass der Lernvorgang mehr Zeit in Anspruch nimmt, da keine Annahmen über die zugrunde liegende Verteilung gemacht werden können. Oft sind die zu erlernenden Prozesszyklen jedoch eher kurz und ändern sich häufig, weshalb eine geringfügig längere Trainingsdauer nicht erheblich ist.

Das inkrementelle Lernen bietet somit folgende Vorteile:

  • Es sind keine Daten zu speichern oder an die Cloud zu übermitteln, da sie nicht mehr in Gebrauch sind, sobald sie für das Update des Modells genutzt wurden.
  • Die Trainings finden in gleichmäßigen Zeitabständen statt, um CPU-Engpässe im Trainingsumfeld zu vermeiden.
  • Das Modell kann sich an Änderungen bei der Konfiguration oder in der Umgebung anpassen.

Doch es gibt auch Nachteile. Für Modelle maschinellen Lernens, die einfach anzulernen sind, ist ein großer Speicherplatz erforderlich. Das lässt sich sehr gut anhand einer Gegenüberstellung von Random Forest (RF) und Multilayer Perceptron (MLP – mehrlagiges Perzeptron) veranschaulichen. RFs sind schnell anzulernen und einfach zu konfigurieren, allerdings sehr speicherintensiv (im Megabyte-Bereich).
Bei MLPs dauert das Training länger und sie sind schwer zu konfigurieren, dafür haben sie jedoch einen geringen Speicherplatzbedarf (im Kilobyte-Bereich).