TinyML: Kontinuierliches Lernen mit LwM2M
Während MCUs immer leistungsfähiger werden, können Modelle für maschinelles Lernen so konzipiert werden, dass sie weniger Ressourcen verbrauchen. Dies ermöglicht die Implementierung von TinyML; Deep-Learning-Modelle, die auf ressourcenbeschränkten IoT-Geräten ausgeführt werden können. Mit TinyML können rohe Sensordaten lokal analysiert werden, wodurch die Notwendigkeit, Daten an die Cloud zu senden, reduziert oder entfällt, der Batterieverbrauch gesenkt und der Datenschutz gewahrt wird.
Dennoch ist die Implementierung intelligenter IoT-Lösungen nicht allein auf das ML-Modell selbst angewiesen. Dazu gehören Herausforderungen wie die Implementierung kontinuierlichen Lernens, die Ermöglichung einer drahtlosen Kommunikation mit geringem Stromverbrauch, die Fernverwaltung von Geräten, die Gewährleistung einer sicheren Kommunikation, die Aktualisierung der Firmware (über Funk) und die Ermöglichung der Geräteinteroperabilität.
„TinyML kann verwendet werden, um rohe Sensordaten lokal zu analysieren, wodurch die Notwendigkeit, Daten an die Cloud zu senden, reduziert oder ganz entfällt, der Batterieverbrauch gesenkt wird und der Datenschutz gewahrt bleibt.“
LwM2M ist ein Kommunikationsstandard auf Anwendungsebene, der die Nachrichtenübermittlung und Geräteverwaltung für IoT-Geräte vereinfacht. Das Protokoll schreibt ein Datenformat vor und definiert Geräteverwaltungsmechanismen und standardisierte Prozesse für Firmware-over-the-Air-Updates (FOTA). Das Protokoll eignet sich gut für LPWAN-Standards wie NB-IoT und LTE-M.
Während TinyML die Geräteintelligenz bereitstellt (mithilfe von Tools wie Edge Impulse oder Cartesiam.ai), bietet das LwM2M-Protokoll Konnektivität, standardisierte Kommunikation und Geräteverwaltung. Zusammen ergeben sie eine ganzheitliche Lösung für intelligente IoT-Geräte.
Die cloudbasierte Analyse der Rohsensordaten eines Geräts ist aufgrund der Datenmenge, die das Gerät übertragen muss, ineffizient. Eine effizientere Möglichkeit besteht darin, Daten von Sensoren direkt auf dem Gerät mit TinyML zu verarbeiten. Durch die Analyse der X-, Y- und Z-Werte des Beschleunigungsmessers können beispielsweise komplexe Bewegungen oder Vibrationen erkannt werden, die wertvolle Erkenntnisse liefern und Anwendungsfälle wie vorausschauende Wartung, die Überwachung der Nutzung wertvoller Güter oder die Klassifizierung von Bewegungen von Menschen oder Tieren ermöglichen könnten.
Heutzutage werden immer mehr intelligente Sensoren entwickelt. Zusätzlich zu ihren Erfassungsfunktionen verfügen intelligente Sensoren über eine eingebettete MCU, die das TinyML-Modell ausführt und nur die erkannten Muster an die Haupt-MCU des Geräts übermittelt. Diese integrierten TinyML-Sensoren werden von Prof. Vijay Janapa Reddi (Harvard University) in seinem jüngsten Vortrag auf dem TinyML Summit als das Sensor 2.0-Paradigma bezeichnet. Intelligente Sensoren vereinfachen die Implementierung von TinyML, da sie die Nachrüstung vorhandener Geräte mit TinyML-Funktionen ermöglichen, ohne dass die eingebettete Firmware neu gestaltet werden muss. Darüber hinaus können Datenschutzprobleme aufgrund der echten Isolierung der Rohdaten des Sensors gelöst werden. Intelligente Sensoren können Stimmen oder Kamerabilder analysieren und gleichzeitig die Privatsphäre der Menschen gewährleisten, da keine Daten an die Haupt-MCU des Geräts gelangen.
Eine der größten Herausforderungen von heute besteht darin, die Zuverlässigkeit des TinyML-Modells nach der Bereitstellung aufrechtzuerhalten. Oftmals unterscheiden sich zu Trainingszwecken verwendete Datensätze von realen Daten, was zu ungenauen Modellen führt. Darüber hinaus kann sich der Umweltkontext im Laufe der Zeit ändern (z. B. aufgrund der Dekalibrierung von Industriemaschinen oder sich ändernder Klimabedingungen), was zu einer Verschlechterung der Modellqualität führt.
Kontinuierliches Lernen bezieht sich auf die Fähigkeit von TinyML-Modellen, sich im Laufe der Zeit anzupassen. Dies kann durch Lernen aus neuen Datensätzen erreicht werden, ohne dass das Modell von Grund auf neu trainiert werden muss. Obwohl die Techniken zur Realisierung kontinuierlichen Lernens bekannt sind, fehlen bei der Ausführung der Modelle auf ressourcenbeschränkten Geräten häufig praktische Umsetzungen. Dies hängt häufig mit einer fehlenden Geräteverwaltungsschicht zusammen, die sich um die Lebenszyklusverwaltung des ML-Modells kümmert. LwM2M ist möglicherweise das fehlende Glied, um kontinuierliches Lernen zu realisieren, da es native Unterstützung für Remote-Konfigurationen und Firmware-Updates bietet. Mit bewährten Methoden können ML-Modelle kontinuierlich aktualisiert werden, ohne dass physisch auf jedes Gerät zugegriffen werden muss, um seine Firmware zu aktualisieren.
TinyML-Lösungen für ressourcenbeschränkte IoT-Geräte sind ein Katalysator für die Entwicklung intelligenter Lösungen. Um über die aktuelle POC-Phase hinauszukommen und mit der Bereitstellung tatsächlicher TinyML-Anwendungen zu beginnen, müssen Mechanismen für eine effiziente Kommunikation, Geräte- und Firmware-Verwaltung sowie sichere Konnektivität bereitgestellt werden. Die Verwendung des LwM2M-Protokolls zur Verwaltung von TinyML-Modellen und zur Bereitstellung von Konnektivität ist ein Weg zur Standardisierung von TinyML und zur Bereicherung des Ökosystems intelligenter IoT-Lösungen.
Eine TinyML-Lösung wurde unter Verwendung des LwM2M-Standards entwickelt. Das Thingy:91 ist ein Entwicklungsgerät, das den nRF9160 SiP von Nordic Semiconductor nutzt. Es läuft mit dem Betriebssystem Zephyr OS und wurde darauf trainiert, drei verschiedene Bewegungsmuster zu erkennen, wie in der Abbildung unten gezeigt.
Die Schritte zur Umsetzung des vorgestellten Konzepts sind wie folgt:
Das Beispiel verwendet die Edge Impulse-Plattform, um die Daten vom Thingy:91-Beschleunigungsmesser zu sammeln, den ML-Klassifikator zu trainieren und eigenständige Bibliotheken für C++ zu generieren. Die Bibliothek mit dem TinyML-Modell kann auf dem Gerät ausgeführt werden und die Erkennung des LED-Signalmusters steuern. Der Anjay LwM2M-Client stellt eine Konnektivitätsschicht für die Lösung bereit und behandelt Low-Level-Technologieprobleme im Zusammenhang mit Kommunikation und sicherer Datenübertragung.
Abschließend wird das Gerät im LwM2M-Server registriert, wo die Daten gespeichert und visualisiert werden. Mithilfe des Coiote IoT Device Management-Portals kann das Gerät angewiesen werden, den Server jedes Mal zu benachrichtigen, wenn ein bestimmtes Muster erkannt wird, oder die Häufigkeit auf einmal alle paar Sekunden, Minuten oder Stunden zu reduzieren und einen Zähler zu senden, der die Häufigkeit eines Musters angibt wurde entdeckt.