IoT Analytics... to the edge and beyond!
Wie mit Hilfe von IoT-Technologien, Machine Learning und Datenanalyse auch unter schwierigen Bedingungen Daten nutzbar gemacht werden können.
von Sebastian Schaffrath
Lesedauer ca. 3 Minuten
Über den Autor
Sebastian Schaffrath
Sebastian beschäftigt sich als Software-Entwickler in unserem Team mit Machine Learning und Data Science
Sowohl Data-Science als auch Machine Learning sind inzwischen fester Bestandteil der bunten Themenwelt des „Internet of Things“.
Die rasant fortschreitende Entwicklung in diesen Bereichen und die stetig steigende Anzahl der Sensor-Deployments lässt auch die Menge der erfassten Daten schnell wachsen.
Gleichzeitig sind Sensoren aber häufig batteriebetrieben, weil sie Ihren Dienst an Orten verrichten, wo der Zugang zu kabelgebundener Stromversorung unmöglich oder zumindest aufwendig ist.
Das stellt eine Herausforderung für die Übertragung der vom Sensor erfassten Daten dar. Es gibt zwar inzwischen zahlreiche Schmalband-Übertragungstechnologien, die wenig Strom benötigen und auch an entlegenen Orten Zugang zur „Cloud“ ermöglichen, aber die resultierenden Anforderungen „geringe Datenübertragungsraten“ und „geringer Stromverbrauch“ machen die passende Verarbeitung der erfassten Sensordaten anspruchsvoll.
Die benötigte Qualität der Daten ist oft im "Narrowband" IoT nicht abzubilden
Prinzipiell sind für die Datenanalyse Datenquellen attraktiv, die Daten von hoher Qualität in hoher Quantität liefern.
Qualität von Daten umfasst hier neben hoher Auflösung auch die Frequenz mit der die Daten erfasst wurden. Beispiel: Um das Laufverhalten eines Motors über einen Vibrationssensor zu messen, muss der Sensor die Beschleunigungswerte (in "G") in einer hohen Frequenz, bspw. 500 Hz und auf mehrere Nachkommastellen genau erfassen.
Die Quantität bezieht sich - logischerweise - auf die Menge der zur Analyse verfügbarer Daten und hängt damit hauptsächlich von der Erfassungsdauer und der Anzahl der Datenquellen ab.
Die Anforderungen an Qualität und Quantität stellen bei Systemen die über eine schnelle Internet-Anbindung, ausreichende Rechenressourcen und kabelgebundene Stromversorgung verfügen keinen limitierenden Faktor dar.
Aber genau diese Voraussetzungen bestehen im Fall des batteriebetriebenen Sensors ja nicht.
Meist werden garnicht die rohen Sensordaten gebraucht
Bei der Messung des Laufverhaltens werden zwar Daten in hoher Frequenz und Genauigkeit benötigt, die eigentlich interessante Aussage ist aber: "ist das Laufverhalten ungewöhnlich".
Hier kann es beispielsweise nur relevant sein, wie stark die gemessenen Werte schwanken. In dem Fall würde es genügen die Varianz, ein Maß für die Streuung innerhalb eines gewissen Zeitfensters zu übertragen.
Diese Datenaufbereitung kann verhältnismäßig einfach direkt "on chip" auf dem IoT-Device erfolgen und es ist nicht mehr nötig die hochauflösenden Rohdaten zu übertragen.
In anderen Fällen reicht es sogar aus, auf Basis von Rohdaten einen binären Wahrheitswert ("Wahr" oder "Falsch") zu ermitteln und diesen nur bei Änderung zu übertragen, zum Beispiel wenn auf Grund der zuvor erwähnten Motor-Vibrationsdaten erkannt werden soll ob eine Maschine aktiv ist oder nicht.
Die Datenanalyse kann bei sorgfältiger Planung auch jenseits des "Edge" erfolgen
Manchmal kann es in der Tat nötig sein, komplexere Information aus den Rohdaten zu extrahieren, zum Beispiel zur genauen Analyse der verschiedenen Betriebsparameter (Temperatur / Vibrations-Verhalten) des Motors im Zeitraum eines aufgetretenen Fehler-Zustands.
Hier gibt es die Möglichkeit die betreffenden Datensequenzen mithilfe von statistischen Methoden oder Machine Learning Algorithmen "On-Chip" zu identifizieren.
Software-Technologien wie Tensorflow Lite oder CMSIS-NN wurden genau für diesen Einsatz-Zweck geschaffen und können auf verschiedenen eingebetteten Systemen zur Ausführung von Machine Learning Modellen eingesetzt werden.
Im Gegensatz zum Training, das häufig auf großen Rechnern oder sogar Clustern ausgeführt wird, ist die eigentliche Ausführung von Machine Learning Modellen nämlich auch auf einem Microcontroller möglich. Das liegt hauptsächlich daran, dass die Menge an Rechenoperationen bei der Ausführung nur einem winzigen Bruchteil der Menge beim Training entspricht. Zudem werden die Machine Learning Modelle bei der Portierung auf einen Microcontroller z.B. mithilfe von CMSIS-NN für die Ausführung auf der jeweiligen Rechner-Architektur optimiert.
Dazu muss im Vorfeld aber erstmal ein Modell erstellt werden, das dann später auf dem IoT-Device eingesetzt werden kann. Dabei muss die Architektur und der Umfang des Modells an die Ressourcen des Microcontrollers angepasst werden.
Um ein zur Erstellung eines solchen Modells nötiges Trainings-Datenset zusammenzustellen, bietet es sich an, mithilfe eines Datenträgers zuvor ausreichend Daten von möglichst hoher Qualität zu sammeln.
Das kann zum Beispiel mithilfe eines USB-Sticks geschehen, der die Daten hochauflösend aufzeichnet. Die meisten gängigen Microcontroller unterstützen USB Massenspeicher problemlos.
Der Erfolg des Einsatzes solcher Verfahren hängt jedoch in jedem individuellen Fall von der Beschaffenheit der betrachteten Daten ab.
Unbedingt zu beachten ist, dass die Ausführung auf einem Microcontroller mithilfe der genannten Technologien die Auswahl an “Bausteinen” die zur Erstellung eines Machine-Learning Modells verwendet werden einschränkt. Außerdem birgt die Portierung eines Modells aus gängigen Machine Learning Frameworks wie Tensorflow, Pytorch und Caffe einige Herausforderungen.
Es muss (im Vorfeld!) klar definiert werden, was das Ziel der Datenerfassung ist.
Bei guter Planung und aufeinander abgestimmter Soft- und Hardware, können auch unter schwierigen Bedingungen Daten gewonnen und analysiert werden. Dieser Punkt wird erstaunlich oft unterschätzt und stattdessen nach dem Motto vorgegangen "erstmal sammeln, wird man schon brauchen können". Das ist abernicht nur aus technischen Gründen ein No-Go!
Der Einsatz der verschiedenen Technologien will gut überlegt sein, so dass die eingeschränkten Ressourcen bestmöglich genutzt werden.