Definition Was ist TinyML?

TinyML ist ein Machine-Learning-Ansatz, der maschinelles Lernen auf ressourcenbeschränkten Mikrocontrollern ermöglicht. Die eingesetzten Algorithmen arbeiten energieeffizient und kommen mit wenig Arbeitsspeicher und Rechenleistung aus. Die Machine-Learning-Inferenz lässt sich auf eingebetteten Systemen ausführen und ermöglicht vielfältige Anwendungen im IoT- und Edge-Computing-Umfeld.

Anbieter zum Thema

(Bild: © aga7ta - stock.adobe.com)

TinyML ist ein Machine-Learning-Ansatz für maschinelles Lernen (ML) auf ressourcenbeschränkten Mikrocontrollern. Die Bezeichnung „tiny“ (winzig) des Begriffs „TinyML“ bezieht sich auf die Geräte beziehungsweise auf die Hardware, auf denen die Machine-Learning-Aufgaben ausgeführt werden sollen. Es handelt sich dabei um Kleinstgeräte, mit wenigen Milliwatt Stromverbrauch und Arbeitsspeichergrößen im Bereich von Kilobyte anstatt von Megabyte. Ein Beispiel für solche Kleinstgeräte sind Mikrocontroller aus der Arduino-Familie.

Die Anwendungen und die Algorithmen des maschinellen Lernens sollen mit den beschränkten Ressourcen auskommen. Kleinstgeräte und eingebettete Systeme sind dank TinyML in der Lage, ML-Aufgaben wie die Machine-Learning-Inferenz direkt auszuführen. Im Gegensatz zu herkömmlichen Machine-Learning-Ansätzen müssen keine ressourcenstarken Rechner eingesetzt und keine Daten zur Ausführung von ML-Aufgaben in die Cloud übertragen werden. Die Kommunikation mit der Cloud lässt sich mit TinyML auf ein Minimum reduzieren oder vollständig vermeiden. Innovative Ansätze und Frameworks wie TensorFlow Lite sorgen dafür, dass selbst komplexere Deep-Learning-Modelle direkt auf ressourcenbeschränkten Mikrocontrollern ausführbar sind.

TinyML erschließt neue Anwendungsfelder des Machine Learnings im IoT- und Edge-Computing-Umfeld. Vorangetrieben wird der TinyML-Ansatz von der Community der TinyML Foundation. Sie hat sich zum Ziel gesetzt, die Entwicklung und den Einsatz von ML-Technologien in diesem Umfeld zu fördern. Zur Community gehören Ingenieure, Produktmanager und Wissenschaftler.

Für TinyML eingesetzte Technologien und Tools

Es gibt keine strenge Definition, für welche Kleinstgeräte und Ressourcenbeschränkungen der TinyML-Ansatz vorgesehen ist. Allgemein hat sich jedoch die Kategorisierung durchgesetzt, dass die Mikrocontroller weniger als ein Megabyte Arbeitsspeicher haben und die Leistungsaufnahme weniger als ein Milliwatt beträgt. Damit gehören Geräte wie beispielsweise der Minicomputer Raspberry Pi nicht zur Tiny-ML-Geräteklasse.

Herkömmliche ML-Modelle, Tools und Frameworks für maschinelles Lernen wie TensorFlow eignen sich aufgrund der beschränkten Rechenleistung und dem geringen Arbeitsspeicher nicht für ressourcenbeschränkte Geräte. Es sind neue Herangehensweisen, Technologien und Tools notwendig. In der Regel geht es darum, dass die eingesetzten Algorithmen oder neuronalen Netzwerkmodelle mit den bescheidenen Ressourcen der Kleinstgeräte zurechtkommen. Die Modelle werden ressourcenoptimiert, um sie auf den Mikrocontrollern zu implementieren. Ein bekanntes, für diese Zwecke eingesetztes ML-Framework ist TensorFlow Lite. Es sorgt für eine Größenreduktion der erstellten und trainierten Modelle. Diese Modelle werden in geeignete Binärdateien übersetzt und lassen sich auf verschiedene von TensorFlow Lite unterstützte Mikrocontroller laden. Sie führen die Inferenz auf den Geräten lokal aus.

Zum Framework TensorFlow Lite gehören vorgefertigte Modelle für zahlreiche oft genutzte Anwendungsfälle. Das sind beispielsweise TinyML-Modelle für die Objekterkennung, für Chatbots und intelligentes Antworten oder für Empfehlungssysteme. Weitere im TinyML-Umfeld eingesetzte Frameworks und Libraries sind uTensor oder CMSIS-NN.

Anwendungsbereiche von TinyML

Durch das Ausführen von ML-Aufgaben und die Implementierung von ML-Modellen direkt auf Mikrocontrollern und eingebetteten Geräten erschließt sich ein riesiges Anwendungsfeld. Selbst kleinste Geräte lassen sich mit Künstlicher Intelligenz (KI) ausstatten. IoT-Geräte werden in die Lage versetzt, die von Sensoren gelieferten Daten mit ML-Algorithmen selbst zu analysieren und daraus abgeleitete Aktionen auszuführen. Der übliche Ansatz, IoT-Daten zur ML-Analyse an Cloud-Server zu übertragen, entfällt und die Intelligenz wandert in die Endgeräte.

Ein Beispiel für eine Anwendung von TinyML ist das Erkennen der Aktivierungskommandos von Sprachassistenten wie „Okay Google“ oder „Hey Siri“, auch Keyword-Spotting genannt. Die Haupt-CPU eines Geräts wie eines Smartphones oder eines smarten Lautsprechers mit der Aufgabe zu betrauen, rund um die Uhr auf ein Aktivierungskommando zu achten, erfordert zu viele Ressourcen und Energie. Dank TinyML lässt sich die Aufgabe in Mikrocontroller mit wenigen Kilobyte Arbeitsspeicher und hoher Energieeffizienz auslagern und dort erledigen. Erst wenn das Aktivierungskommando vom Mikrocontroller erkannt wurde, wird die Haupt-CPU des Geräts aufgeweckt und für die weiteren Sprachassistenzfunktionen genutzt.

Weitere Beispiele für den Einsatz von TinyML sind:

  • intelligente Bewegungserkennung mithilfe von Beschleunigungssensoren und Gyroskopen
  • Bild- und Objekterkennung in Überwachungsanwendungen
  • Überwachungsgeräte zur Erkennung von Einbrüchen per Geräuschanalyse
  • Auswertung von Sensordaten für die vorausschauende Wartung von Maschinen oder Fahrzeugen
  • intelligente Navigation von Mikrodrohnen
  • Auswertung von Umweltdaten
  • Überwachung des Zustands von Boden, Luft und Getreide in der Landwirtschaft
  • intelligente Rauchmelder zur zuverlässigen Branderkennung und Vermeidung von Fehlalarmen

Vorteile von TinyML

TinyML ermöglicht maschinelles Lernen auf Mikrocontrollern und Kleinstgeräten mit wenig Arbeitsspeicher und Prozessorleistung. Dank der hohen Energieeffizienz lassen sich die Geräte per Akku oder Batterie mit Energie versorgen. Die Geräte werden vom Stromnetz unabhängig und sind flexibel und mobil einsetzbar. Darüber hinaus reduziert die lokale Ausführung von ML-Aufgaben die Menge der zu übertragenden Daten, macht Online-Verbindungen überflüssig und sorgt für geringere Empfindlichkeit der Anwendungen gegenüber Störungen aufgrund von Verbindungsunterbrechungen. Die lokale Datenverarbeitung schützt sensible oder kritische Daten und verhindert unbefugte Datenzugriffe. Geringe Latenzen dank lokal ausgeführter Inferenz lassen Anwendungen echtzeitfähig werden.

(ID:47935307)