Grundsätzlich lassen sich die meisten Algorithmen des maschinellen Lernens auch auf Embedded-Systemen einsetzen. Beim Reinforcement Learning mit selbständig lernenden Agenten für fahrerlose Transportsysteme in der Logistik oder Haushaltsrobotern sowie zukünftigen selbstfahrenden Fahrzeugen im Straßenverkehr sind eingebettete Systeme sogar alternativlos. Hier wäre eine Cloud bestenfalls unterstützend erforderlich – beispielsweise zur Aggregation bestimmter Daten, als Laufzeitumgebung für den digitalen Zwilling (Digital Twin) und als Ausgangspunkt für Software-Updates.
Beim Einsatz des Supervised Machine Learning auf eingebetteten Systemen lässt sich vielfach ein deutlich größerer Nutzen als durch die Algorithmennutzung in der Cloud erzielen. Dieses Teilgebiet des maschinellen Lernens besitzt ein sehr hohes Problemlösungspotenzial. Dadurch werden sich vermutlich sogar die Software-Entwicklungsprozesse in der Embedded-Welt für bestimmte Zielapplikationen, wie z. B. die Sensorik, in den kommenden Jahren verändern.
Der Grundgedanke dafür lässt sich mit »Trainieren statt Programmieren« umschreiben: Für sehr viele Aufgabenstellungen, bei denen der Zusammenhang zwischen den Ein- und Ausgangsdaten vorher bekannt ist, muss nicht unbedingt eine anwendungsbezogene Firmware entwickelt werden. Es kann stattdessen auch ein Standard-Algorithmus für überwachtes Lernen auf dem Embedded-System implementiert werden, der dann mit gelabelten Beispieldaten im Hinblick auf die Aufgabenstellung trainiert oder mit einem extern trainierten Modell versorgt wird. Dadurch verlagert sich der Entwicklungsschwerpunkt vom Code zu den Daten.
Die Deep-Learning-Beispiele zur Objekterkennung in der Bildverarbeitung weisen bereits die Richtung: Zunächst wird ein Algorithmus mit ausgesuchten Bilddateien, in denen die jeweiligen Zielobjekte (z. B. Katzenbilder, menschliche Gesichter, Fahrzeuge, Verkehrszeichen usw.) enthalten sind, trainiert. Anschließend kann der trainierte Algorithmus in bisher unbekannten Bilddaten die Zielobjekte automatisch klassifizieren.
Neben der Klassifizierung bietet das Supervised Machine Learning auch verschiedene Regressionsalgorithmen. Unter Regression versteht man den statischen Zusammenhang zwischen zwei oder mehr Variablen. Das dieser Methodik zugrunde liegende mathematische Verfahren ist in erster Linie die lineare Regression, also die Vorhersage einer Zielvariablen y durch eine Regressionsvariable x unter der Annahme, dass zwischen x und y ein Zusammenhang besteht. Technische Beispiele für Embedded-Systems-Anwendungen wären: Mit zunehmender Windstärke steigt die durch eine Windkraftanlage erzeugte elektrische Energie. Bei sinkenden Außentemperaturen wird mehr Erdgas zum Heizen benötigt. Bei dem gemessenen Nutzungsverhalten einer Maschine ist in soundsovielen Tagen ein Ölwechsel erforderlich, um einen Ausfall zu vermeiden usw.
Aus den jeweiligen Zusammenhängen, die der zum Einsatz kommende Supervised-Machine-Learning-Algorithmus in der Trainingsphase lernt und in einem Modell ablegt, versucht man mit Hilfe der Regression möglichst genaue Vorhersagen (Predictions) abzuleiten. Dabei können die Algorithmen nicht nur mit einem eindimensionalen x und einem linearen Zusammenhang zu y umgehen, sondern auch n-dimensionale Regressionsvariablen (z. B. diskrete Sequenzen aus der Signalverarbeitung) sowie nicht lineare Zusammenhänge (multivariante Regression, polynomiale Funktionen usw.) bearbeiten.
Eine wichtige Voraussetzung für den Supervised-Machine-Learning-Einsatz auf Embedded-Systemen ist die Möglichkeit, die Trainings- bzw. Modellbildungsphase und die Modellnutzungsphase auf völlig unterschiedlichen Hardware-Plattformen auszuführen, die allerdings identische Software-Konfigurationen besitzen müssen (Bild 2).
So kann beispielsweise das Training mit großen Datenmengen auf einem leistungsfähigen Multi-Core-Rechner erfolgen. Danach wird das Modell in einen Byte-Stream serialisiert, auf das Embedded-Zielsystem übertragen und dort wieder als Klassifizierer oder Prädiktor instanziiert. Damit kann ein typischer Embedded-SoC anschließend die gewünschten Klassifizierungen und Regressionen für Sensordaten in Echtzeit durchführen. Alternativ ist im Zusammenhang mit künstlichen neuronalen Netzen auch der Einsatz spezieller Konverterprogramme auf dem Trainingssystem möglich, die einen auf FPGAs nutzbaren Output erzeugen.
Durch die Synthese von Embedded-Systemen und Supervised Machine Learning lassen sich sehr universell nutzbare Sensoren für Automatisierungsaufgaben im Umfeld von IoT-Anwendungen schaffen. Damit sind zum Beispiel die Datenanalysen für zustandsbasierte Wartungsstrategien (Predictive Maintenance) in Echtzeit vor Ort durchführbar, ohne die Sensor-Rohdaten zuvor an eine Cloud zu übertragen. Die Bearbeitungsstufen einer solchen lokalen Sensor-to-Information-Lösung, sind nahezu identisch zu den Sensor-to-Cloud-Konzepten (Bild 4). Statt der Rohdaten werden nun nur bei Bedarf die jeweils veränderten Ausgangsinformationen eines Algorithmus an eine Cloud übermittelt (siehe hierzu Bild 3 und die dazugehörenden Erläuterungen der Tabelle).
Würde man beispielsweise die Ausgangsdaten des zuvor bereits angesprochenen Mikrofons, also die 14.400 Messpunkte je Sekunde, auf einen vortrainierten Machine-Learning-Algorithmus zur Klassifizierung einzelner Zustände des Antriebselements führen, entstehen im Normalbetrieb nur wenige neue Informationen pro Tag. Nur bei einem Zustandswechsel von »OK« auf »Kritisch« würde jeweils eine neue Information am Ausgang zur Verfügung stehen.
Klaus-Dieter Walter
ist CEO der SSV Software Systems in Hannover. Er ist Verfasser von vier Fachbüchern zu den Themenbereichen »Embedded Linux«, »Embedded Internet« und »ARM-basierte Mikrocontroller«. Klaus-Dieter Walter war Anfang 2007 an der Gründung des M2M Alliance e.V. in Aachen beteiligt und engagiert sich seit 2012 aktiv in der Expertengruppe Internet der Dinge innerhalb der Fokusgruppe Intelligente Vernetzung des Digital-Gipfels der Bundesregierung.