Direkt zum Inhalt
HeimDer blogMaschinelles Lernen

Was ist TinyML? Eine Einführung in Tiny Machine Learning

Erfahre mehr über TinyML, seine Anwendungen und Vorteile und wie du in dieses aufstrebende Feld des maschinellen Lernens einsteigen kannst.
Aktualisierte 10. Sept. 2024  · 8 Min. lesen

Modelle des maschinellen Lernens spielen eine wichtige Rolle in unserem täglichen Leben - ob wir es wissen oder nicht. Im Laufe eines gewöhnlichen Tages wirst du wahrscheinlich mit einem Modell des maschinellen Lernens zu tun haben, denn sie haben fast alle digitalen Produkte durchdrungen, mit denen wir interagieren, z. B. Social-Media-Dienste, virtuelle persönliche Assistenz, Suchmaschinen und die Spam-Filterung deines E-Mail-Hosting-Dienstes. 

Trotz der vielen Beispiele für maschinelles Lernen im täglichen Leben gibt es immer noch einige Bereiche, die die Technologie nicht erreicht hat. Die Ursache? Viele Modelle des maschinellen Lernens, insbesondere moderne (SOTA-)Architekturen, benötigen erhebliche Ressourcen. Diese Nachfrage nach leistungsstarker Rechenleistung hat dazu geführt, dass viele Anwendungen des maschinellen Lernens in der Cloud angesiedelt sind - einem Anbieter von Computersystemressourcen auf Abruf.  

Nicht nur das Trainieren dieser Modelle ist sehr rechenintensiv, auch die Auswertung ist oft sehr teuer. Wenn maschinelles Lernen seine Reichweite vergrößern und in weitere Bereiche vordringen soll, ist eine Lösung erforderlich, die es maschinellen Lernmodellen ermöglicht, auf kleineren, ressourcenbeschränkten Geräten Schlussfolgerungen zu ziehen. Das Streben nach dieser Lösung hat zu dem Teilbereich des maschinellen Lernens geführt, der Tiny Machine Learning (TinyML) genannt wird. 

In diesem Artikel werden wir: 

  • Definiere TinyML und seine Vorteile
  • Einige Anwendungen von TinyML behandeln 
  • Diskutiere die Anforderungen an den Arbeitsablauf bei TinyML-Anwendungen. 

Was ist TinyML?

"Neuronale Netze werden auch künstliche neuronale Netze (ANN) genannt. Diese Architektur bildet die Grundlage für Deep Learning, eine Untergruppe des maschinellen Lernens, die sich mit Algorithmen beschäftigt, die sich an der Struktur und Funktion des menschlichen Gehirns orientieren.  Vereinfacht gesagt, bilden neuronale Netze die Grundlage für Architekturen, die nachahmen, wie biologische Neuronen sich gegenseitig Signale geben."
Quelle; PyTorch Tutorial: Aufbau eines einfachen neuronalen Netzes 

Maschinelles Lernen ist ein Teilbereich der künstlichen Intelligenz, der eine Reihe von Algorithmen bereitstellt. Diese Algorithmen ermöglichen es Maschinen, Muster und Trends aus den verfügbaren historischen Daten zu lernen, um zuvor bekannte Ergebnisse für dieselben Daten vorherzusagen. Das Hauptziel besteht jedoch darin, die trainierten Modelle zu nutzen, um ihre Schlussfolgerungen über den Trainingsdatensatz hinaus zu verallgemeinern und so die Genauigkeit ihrer Vorhersagen zu verbessern, ohne explizit programmiert zu werden.

Ein solcher Algorithmus, der für diese Aufgaben verwendet wird, sind neuronale Netze. Neuronale Netze gehören zu einem Unterbereich des maschinellen Lernens, der als Deep Learning bekannt ist. Dieser besteht aus Modellen, die in der Regel teurer zu trainieren sind als maschinelle Lernmodelle. Mehr über das Erstellen von neuronalen Netzwerkmodellen in R erfährst du in einem separaten Tutorial. 

dreischichtiges neuronales Netz

Abbildung 1. Eine Visualisierung eines dreischichtigen neuronalen Netzes

Laut tinyml.orgwird"winziges maschinelles Lernen im weitesten Sinne als ein schnell wachsendes Feld von maschinellen Lerntechnologien und -anwendungen definiert, das Hardware, Algorithmen und Software umfasst, die in der Lage sind, Sensordaten auf dem Gerät bei extrem niedrigem Stromverbrauch, typischerweise im mW-Bereich und darunter, zu analysieren und damit eine Vielzahl von Always-on-Anwendungen zu ermöglichen und auf batteriebetriebene Geräte abzuzielen. 

Das Wachstum von TinyML in den letzten Jahren ist hauptsächlich auf die Entwicklung der Hardware- und Software-Ökosysteme zurückzuführen, die es unterstützen. Da die Techniken in Systemen mit geringem Energieverbrauch (d. h. Sensoren, Mikrocontroller usw.) implementiert werden können, kann das maschinelle Lernen in extremer Weise an die Grenzen gebracht werden, sodass solche Anwendungen in Echtzeit arbeiten können. Im Wesentlichen geht es darum, dass Praktiker des maschinellen Lernens mit weniger Aufwand mehr erreichen können. 

Aber warum ist das so wichtig? Schauen wir uns an, warum TinyML so attraktiv ist.

Die Vorteile von TinyML

  1. Latenzzeit: Die Daten müssen nicht auf einen Server übertragen werden, da das Modell auf Edge-Geräten arbeitet. Datenübertragungen brauchen in der Regel Zeit, was zu einer leichten Verzögerung führt. Die Beseitigung dieser Anforderung verringert die Latenzzeit.
  2. Energieeinsparungen: Mikrocontroller brauchen nur sehr wenig Strom, sodass sie lange Zeit ohne Aufladen arbeiten können. Darüber hinaus ist keine umfangreiche Serverinfrastruktur erforderlich, da kein Informationstransfer stattfindet: Das Ergebnis sind Energie-, Ressourcen- und Kosteneinsparungen. 
  3. Reduzierte Bandbreite: Für die Schlussfolgerungen ist keine oder nur eine geringe Internetverbindung erforderlich. Es gibt geräteinterne Sensoren, die Daten erfassen und auf dem Gerät verarbeiten. Das heißt, es werden nicht ständig rohe Sensordaten an den Server geliefert.
  4. Datenschutz: Deine Daten werden nicht auf Servern gespeichert, weil das Modell auf dem Edge läuft. Keine Übertragung von Informationen an Server erhöht die Garantie des Datenschutzes. 

Anwendungsfälle: Wie wird TinyML verwendet? 

Die Anwendungen von TinyML erstrecken sich über eine Vielzahl von Sektoren, insbesondere über solche, die von Internet of Things (IoT)-Netzwerken und -Daten abhängig sind - Das Internet of Things (IoT) ist im Grunde ein Netzwerk aus physischen Gegenständen, die mit Sensoren, Software und anderen Technologien ausgestattet sind, die sich mit anderen Geräten und Systemen über das Internet verbinden und Daten austauschen. 

Computer Vision, visuelle Warnwörter, Keyword Spotter, vorausschauende Wartung, Gestenerkennung, industrielle Maschinenwartung usw. sind allesamt gängige Anwendungsfälle für TinyML. Werfen wir auch einen Blick auf einige Branchen, in denen TinyML für Anwendungen eingesetzt wird: 

Landwirtschaft

Mit TinyML-Geräten können Daten aus Landwirtschaft und Viehzucht in Echtzeit überwacht und gesammelt werden. Das schwedische Unternehmen für Edge-KI-Produkte Imagimob hat eine Entwicklungsplattform für maschinelles Lernen auf Edge-Geräten geschaffen. Fünfundfünfzig Organisationen aus der gesamten Europäischen Union haben mit Imagimob zusammengearbeitet, um zu erfahren, wie TinyML ein effizientes Management von Ackerbau und Viehzucht ermöglichen kann.

Industrielle vorausschauende Wartung

TinyML kann auf Geräten mit geringer Leistung eingesetzt werden, um Maschinen kontinuierlich auf Fehlfunktionen zu überwachen und Probleme vorherzusagen, bevor sie auftreten; diese Art von Anwendung hat das Potenzial, Unternehmen dabei zu helfen, die Kosten zu senken, die oft durch fehlerhafte Maschinen entstehen.

Ein Paradebeispiel für vorausschauende Wartung ist Ping Services. Sie haben ein Überwachungsgerät entwickelt, das die akustische Signatur der Rotorblätter von Windkraftanlagen kontinuierlich überwacht, um Veränderungen oder Schäden zu erkennen und zu melden. Auf der Website von Ping heißt es: "Durch die kontinuierliche Überwachung können die Betreiber rechtzeitig auf Schäden an den Rotorblättern reagieren und so Wartungskosten, Ausfallrisiken und Ausfallzeiten reduzieren sowie die Leistung und Effizienz der Windkraftanlagen verbessern."

Kundenerfahrung

Personalisierung ist ein wichtiges Marketinginstrument, das die Kunden mit steigenden Erwartungen fordern. Die Idee ist, dass Unternehmen ihre Kunden besser verstehen und sie mit Werbung und Botschaften ansprechen können, die auf ihr Verhalten abgestimmt sind. Der Einsatz von Edge-TinyML-Anwendungen ermöglicht es Unternehmen, den Kontext der Nutzerinnen und Nutzer zu verstehen, einschließlich ihres Verhaltens. 

Anforderungen an den Arbeitsablauf

Viele Tools und Architekturen, die in traditionellen Machine-Learning-Workflows eingesetzt werden, kommen auch bei der Entwicklung von Edge-Device-Anwendungen zum Einsatz. Der Hauptunterschied besteht darin, dass diese Modelle mit TinyML verschiedene Funktionen auf kleineren Geräten ausführen können. 

Tensorflow Lite für Mikrocontroller (TF Lite Micro) ist eines der beliebtesten Frameworks für maschinelles Lernen auf Edge Devices. Es wurde speziell für die Aufgabe entwickelt, maschinelles Lernen auf eingebetteten Systemen mit nur wenigen Kilobyte Speicher zu implementieren. 

Python ist oft die bevorzugte Sprache für die Erstellung von Machine-Learning-Modellen. Mit TensorFlow Lite ist es jedoch möglich, Modelle einfach in C, C++ oder Java zu entwickeln und sie ohne Internetverbindung einzusetzen.

Aus Sicht der Hardware ist ein unterstütztes Mikrocontroller-Board erforderlich, um mit TinyML in TF Lite loszulegen; die Bibliothek unterstützt derzeit die folgenden Mikrocontroller: 

  • Arduino Nano 33 BLE Sense
  • SparkFun Edge
  • STM32F746 Discovery Kit
  • Adafruit EdgeBadge
  • Adafruit TensorFlow Lite für Mikrocontroller Kit
  • Adafruit Circuit Playground Bluefruit
  • Espressif ESP32-DevKitC
  • Espressif ESP-EYE
  • Wio Terminal: ATSAMD51
  • Himax WE-I Plus EVB Endpoint AI Development Board
  • Synopsys DesignWare ARC EM Software Development Platform
  • Sony Spresense

Mit der Unterstützung von TinyML ist es möglich, die Intelligenz von Milliarden von Geräten, die wir jeden Tag benutzen, wie Haushaltsgeräte und IoT-Gadgets, zu erhöhen, ohne ein Vermögen für teure Hardware oder zuverlässige Internetverbindungen auszugeben, die häufig durch Bandbreite und Stromverbrauch eingeschränkt sind und erhebliche Latenzzeiten verursachen.

Lernressourcen

Nachbereitung

TinyML hat in den letzten Jahren durch die Entwicklung von Hardware- und Software-Ökosystemen, die es unterstützen, in verschiedenen Branchen an Zugkraft gewonnen. Das Tool hat es möglich gemacht, Modelle des maschinellen Lernens in energiesparenden Systemen wie Mikrocontrollern zu implementieren, was die Tür zu verschiedenen neuen Möglichkeiten öffnet. Geringe Latenzzeiten, Energieeinsparungen, Datenschutz und keine Verbindungsabhängigkeiten sind einige der Faktoren, die TinyML so attraktiv für Entwickler machen, die Anwendungen für Geräte des Internets der Dinge (IoT) entwickeln wollen.

FAQs

Was ist Tiny Machine Learning (TinyML)?

TinyML ist eine Art des maschinellen Lernens, die es ermöglicht, Modelle auf kleineren, weniger leistungsstarken Geräten laufen zu lassen. Dazu gehören Hardware, Algorithmen und Software, die Sensordaten auf diesen Geräten mit sehr geringem Stromverbrauch analysieren können, was sie ideal für "always-on"-Anwendungen und batteriebetriebene Geräte macht.

Was sind die Vorteile von TinyML?

Zu den Vorteilen von TinyML gehören geringere Latenzzeiten, Energieeinsparungen, geringere Bandbreite und ein verbesserter Datenschutz. Mit TinyML können die Daten auf den Endgeräten verarbeitet werden, sodass die Daten nicht an einen Server übertragen werden müssen, was zu Verzögerungen führen kann. TinyML benötigt außerdem deutlich weniger Strom als herkömmliche maschinelle Lernmodelle, sodass es lange Zeit ohne Aufladen arbeiten kann.

Wofür wird TinyML verwendet?

TinyML kann in einer Vielzahl von Sektoren eingesetzt werden, z. B. in der Landwirtschaft, der industriellen vorausschauenden Wartung und der Kundenerfahrung. Es kann auch für Computer Vision, visuelle Wake Words, Keyword Spotter, Gestenerkennung und mehr verwendet werden.

Was sind die Workflow-Anforderungen für TinyML-Anwendungen?

Die Anforderungen an den Arbeitsablauf für TinyML-Anwendungen ähneln denen für traditionelle maschinelle Lernabläufe. Mit TinyML können diese Modelle jedoch verschiedene Funktionen auf kleineren Geräten ausführen. TensorFlow Lite für Mikrocontroller (TF Lite Micro) ist eines der beliebtesten Frameworks für maschinelles Lernen auf Edge-Geräten und wurde speziell für die Implementierung von maschinellem Lernen auf eingebetteten Systemen mit nur wenigen Kilobytes Speicher entwickelt.

Welche Lernressourcen gibt es für TinyML?

Zu den Lernressourcen für TinyML gehören die TinyML Foundation, das Buch "Tiny ML": Machine Learning with TensorFlow Lite on Arduino and Ultra-Low-Power Microcontrollers" und den Podcast "Embedded Machine Learning on Edge Devices,". DataCamp hat auch viele Ressourcen, wie zum Beispiel dieses Deep Learning-Tutorial, diesen Kurs zum Verständnis von maschinellem Lernen und vieles mehr in diesem Learn AI Hub.

Themen