Was ist TinyML?

TinyML steht für Tiny Machine Learning und beschreibt die Anwendung von maschinellem Lernen in kleinen bzw. winzigen (engl. tiny) elektronischen Bauteilen und Geräten wie Mikrocontrollern oder IoT-Geräten bzw. in eingebetteten Systemen. Damit sollen die Geräte befähigt werden, maschinelles Lernen zu nutzen und umzusetzen.

Aufgrund der Gegebenheiten in solchen Geräten bestehen andere Voraussetzungen für das maschinelle Lernen als bei anderen Anwendungsfällen. Da die Geräte im Normalfall mit einem niedrigen Energiebedarf betrieben werden, muss diese Prämisse auch auf die Rechenkapazitäten zur Lösung der Probleme im Bereich des maschinellen Lernens zutreffen. Die große Besonderheit bei diesem Ansatz liegt in der Ressourcenbeschränkung im Sinne eines beschränkten Arbeitsspeichers sowie einer beschränkten Rechenleistung der Mikrocontroller.

Es besteht keine einheitliche Definition von TinyML-Geräten, jedoch erfolgt die Kategorisierung oftmals für Geräte mit einem Arbeitsspeicher unter einem Megabyte und einer Leistungsaufnahme von weniger als einem Milliwatt.

Wie funktioniert das Modell?

Da das Training der Machine Learning Modelle in der Regel rechenintensiv ist, muss das Training in einer externen Umgebung durchgeführt werden. Nach dem externen Training des Modells wird der Algorithmus einmalig auf das TinyML-Gerät übertragen. Im Optimalfall ist das Gerät für die Inferenz, d. h. für den Produktivbetrieb in der Lage, die Machine Learning Aufgaben autark und ohne Cloud-Kommunikation auszuführen. Gebräuchliche Frameworks und Tools auf dem Gebiet des maschinellen Lernens wie TensorFlow versagen für den Anwendungsfall auf TinyML-Geräten, weshalb dafür spezielle Bibliotheken und Frameworks entwickelt wurden.

Vorteile von TinyML

Die Vorteile von TinyML liegen vorwiegend in der möglichen Autarkie des Systems. Aufgrund der Option der lokalen Datenverarbeitung entfällt die Notwendigkeit einer Internetverbindung mit hoher Bandbreite. Gleichzeitig reduzieren sich dadurch auch die Latenzzeiten. Da die Datenübermittlung zwischen verschiedenen Geräten oder Systemen entfällt, hat TinyML auch hohe Ansprüche auf dem Gebiet der Privatsphäre und des Datenschutzes. Aufgrund des geringen Energiebedarfs kann TinyML auf batteriebetriebenen Geräten betrieben werden.

Use Cases und Beispiele

Die Anwendungsfelder von TinyML sind sehr vielfältig. Vor allem Applikationen auf Mikrocontrollern sind häufig verbreitet, da diese universell eingesetzt werden können. Oftmals funktionieren sie auch in Kombination mit anderen Anwendungen wie beim sogenannten Keyword-Spotting bzw. Wakeword-Detection von Sprachassistenten. Wird ein Keyword (z. B. „Hey Siri“ oder „Okay Google“) erkannt, schaltet sich die Haupt-CPU des Gerätes ein, während für das dauerhafte Filtern der Aktivierungskommandos TinyML zuständig ist. Ein ähnliches Beispiel beschreibt die Überwachung von Beschleunigungssensoren und Gyroskopen durch TinyML in Smartphones, wodurch erkannt wird, ob ein Gerät in die Hand genommen wird und anschließend die Haupt-CPU aktiviert.

Einen weiteren Anwendungsfall beschreibt die Objekt- und Bilderkennung von Überwachungskameras oder die Geräuschanalyse. Auf dem Gebiet der Brandprävention kann TinyML eingesetzt werden, um Rauchmelder dahin gehend zu trainieren, echte Brände von Fehlalarmen zu unterscheiden. Auch für Mikrodrohnen-Anwendungen wird TinyML eingesetzt, indem die Drohnen in der Lage sind, selbstständig in der Umgebung zu navigieren. Aufgrund der besonderen Voraussetzungen von TinyML werden spezielle Frameworks und Bibliotheken zur Umsetzung benötigt. Beispiele hierfür sind etwa TensorFlow Lite, uTensor oder CMSIS-NN (Common Microcontroller Software Interface Standard – Neural Network).