Schwerpunkte

KI im Edge

AI of Things - Implementierung auf MCUs

29. Juni 2021, 09:14 Uhr   |  Kavita Char, Senior Staff Product Marketing Manager bei Renesas Electronics

AI of Things - Implementierung auf MCUs
© Renesas Electronics

Die verschiedenen Elemente des AIoTs

Mit KI (AI) können IoT-Geräte aus früheren Eingangsdaten lernen, Entscheidungen treffen und ihre Reaktionen basierend auf neuem Input anpassen – und das alles ohne das Eingreifen von Menschen. Für viele Anwendungsbereiche sind MCUs mit KI-Beschleunigern vollkommen ausreichend.

Geht es um die Kombination von KI und IoT, dann können einfache MCUs in Verbindung mit KI-Beschleuniger zum Einsatz kommen. Diese KI-fähigen MCUs bieten eine Mischung aus DSP-Funktionalität für die Datenverarbeitung und maschinellem Lernen (ML) für Inferenzen. Diese MCUs eignen sich für unterschiedliche Anwendungen wie Stichwortsuche, Sensorfusion, Vibrationsanalyse und Spracherkennung. MCUs mit höherer Leistung ermöglichen auch komplexere Anwendungen in den Bereichen Vision und Imaging, wie Gesichtserkennung, Fingerabdruckanalyse und autonome Roboter.

Im Folgenden einige KI-Technologien für IoT-Geräte:

  • Maschinelles Lernen (ML): ML-Algorithmen erstellen Modelle auf Basis repräsentativer Daten und ermöglichen es Geräten, Muster automatisch und ohne menschliches Eingreifen zu erkennen. ML-Anbieter stellen Algorithmen, APIs und Tools bereit, die zum Trainieren von Modellen erforderlich sind, die dann in Embedded-Systeme integriert werden. Diese Embedded-Systeme nutzen diese vortrainierten Modelle, um auf der Grundlage neuer Informationen Schlussfolgerungen (Inferenzen) oder Vorhersagen zu treffen. Anwendungsbeispiele sind Sensor-Hubs, Stichwortsuche, vorausschauende Wartung und Klassifizierung.
  • Deep Learning: Deep Learning ist eine Variante des maschinellen Lernens, bei der ein System mithilfe vieler Schichten eines neuronalen Netzwerks trainiert wird, um aus komplexen Eingangsdaten schrittweise übergeordnete Eigenschaften und Erkenntnisse zu extrahieren. Deep Learning arbeitet mit sehr großen, diversen und komplexen Input-Daten und ermöglicht es Systemen, iterativ zu lernen und das Ergebnis mit jedem Schritt zu verbessern. Beispiele für Deep-Learning-Anwendungen sind Bildverarbeitung, Chatbots für den Kundenservice und Gesichtserkennung.
  • Natural Language Processing (NLP): NLP ist ein Teilbereich der künstlichen Intelligenz, der sich mit der Interaktion zwischen Systemen und Menschen unter Verwendung natürlicher Sprache beschäftigt. NLP hilft Systemen, menschliche Sprache (Text oder Sprache) zu verstehen und zu interpretieren sowie darauf basierend Entscheidungen zu treffen. Anwendungsbeispiele hierfür sind Spracherkennungssysteme, maschinelle Übersetzung und prädiktives Textverarbeiten.
  • Computer Vision: Computer Vision ist ein Bereich der künstlichen Intelligenz, in dem Maschinen darauf trainiert werden, Bilddaten zu sammeln, zu interpretieren und zu verstehen, um auf der Grundlage dieser Daten Maßnahmen zu ergreifen. Maschinen sammeln digitale Bilder/Videos von Kameras, verwenden Deep-Learning-Modelle und Bildanalysetools, um Objekte genau zu identifizieren und zu klassifizieren, und ergreifen Maßnahmen auf der Grundlage dessen, was sie »sehen«. Beispiele sind die Fehlererkennung am Fließband in der Fertigung, medizinische Diagnostik, Gesichtserkennung im Einzelhandel und das Testen von fahrerlosen Autos.

AIoT auf MCUs

In der Vergangenheit war KI die Domäne von MPUs und GPUs mit leistungsstarken CPU-Cores, großen Speicherressourcen und Cloud-Konnektivität für Analysen. Mit dem Trend hin zu einer verstärkten Verlagerung von Intelligenz ins Edge kommen in den letzten Jahren auch MCUs in Embedded-AIoT-Anwendungen zum Einsatz. Die Verlagerung ins Edge wird durch Latenz- und Kostenüberlegungen vorangetrieben und bringt die Rechenoperationen näher an die Daten. KI auf MCU-basierten IoT-Geräten ermöglicht die Entscheidungsfindung in Echtzeit sowie eine schnellere Reaktion auf Ereignisse. Die Vorteile sind geringere Bandbreitenanforderungen, niedrigerer Stromverbrauch, geringere Latenz, niedrigere Kosten und höhere Sicherheit. AIoT wird durch eine höhere Rechenleistung aktueller MCUs sowie die Verfügbarkeit schlanker neuronaler Network Frameworks (NN) ermöglicht, die besser für ressourcenbeschränkte MCUs geeignet sind, die in solchen Endgeräten zum Einsatz kommen.

Ein neuronales Netz ist eine Sammlung von Knoten, die in Schichten angeordnet sind. Jede Schicht erhält ihre Eingangswerte aus der vorhergehenden Schicht und erzeugt einen Output, der aus der Summe von Gewichten und Bias-Werten berechnet wird. Diese Ausgangsdaten werden über alle ausgehenden Verbindungen an die nächste Schicht weitergeleitet. Während des Trainings werden die Trainingsdaten in die erste oder die Input-Schicht des Netzwerks eingespeist. Die Outputs jeder Schicht werden an die nächste weitergereicht. Die letzte Schicht oder die Output-Schicht liefert die Vorhersagen des Modells, die mit den bekannten erwarteten Werten verglichen werden, um den Modellfehler zu evaluieren. Der Trainingsprozess beinhaltet bei jeder Iteration die Feinabstimmung oder Anpassung der Gewichtungen und Bias-Werte jeder Netzwerkschicht mithilfe der Backpropagation, bis die Outputs des Netzwerks eng mit den erwarteten Werten korrelieren. Mit anderen Worten: Das Netzwerk »lernt« iterativ aus dem Eingabedatensatz und verbessert schrittweise die Genauigkeit der Ausgabevorhersage.

Das Training des neuronalen Netzwerks erfordert eine sehr hohe Rechenleistung und Speicher und wird deshalb typischerweise in der Cloud durchgeführt. Nach dem Training wird dieses vortrainierte NN-Modell in die MCU eingebettet und als Inferenz-Engine für neu eingehende Daten verwendet.

Training und Inferenz eines neuronalen Netzwerks
© Renesas Electronics

Training und Inferenz eines neuronalen Netzwerks

Dieses Inferenzieren erfordert eine viel geringere Rechenleistung als das Training des Modells und ist daher für eine MCU geeignet. Die Gewichtungen dieses vortrainierten NN-Modells sind festgelegt und können im Flash gespeichert werden, was die benötigte SRAM-Größe reduziert und somit für ressourcenbeschränkte MCUs geeignet ist.

Dieses Inferenzieren erfordert eine viel geringere Rechenleistung als das Training des Modells und ist daher für eine MCU geeignet. Die Gewichtungen dieses vortrainierten NN-Modells sind festgelegt und können im Flash gespeichert werden, was die benötigte SRAM-Größe reduziert und somit für ressourcenbeschränkte MCUs geeignet ist.

Wie erfolgt die Implementierung auf MCUs?

Die AIoT-Implementierung auf MCUs umfasst mehrere Schritte. Der gängigste Ansatz ist die Nutzung eines der verfügbaren NN-Framework-Modelle wie Caffe oder Tensorflow Lite, die für MCU-basierte Endgeräte geeignet sind. Das Training des NN-Modells für maschinelles Lernen erfolgt in der Cloud durch KI-Spezialisten unter Verwendung von Tools, die von KI-Anbietern bereitgestellt werden. Die Optimierung des NN-Modells und die Integration auf der MCU wird mit Tools des KI-Anbieters und des MCU-Herstellers durchgeführt. Das Inferenzieren erfolgt auf der MCU unter Verwendung des vortrainierten NN-Modells.

Der erste Schritt des Prozesses erfolgt komplett offline und umfasst die Erfassung großer Datenmengen vom Endgerät oder der Anwendung, die dann zum Trainieren des NN-Modells genutzt wird. Die Topologie des Modells wird vom KI-Entwickler definiert, um die verfügbaren Daten optimal zu nutzen und die für die jeweilige Anwendung erforderliche Ausgangsleistung zu liefern. Das Training des NN-Modells erfolgt, indem die Datensätze iterativ durch das Modell geleitet werden, mit dem Ziel, den Fehler am Ausgabepunkt des Modells kontinuierlich zu minimieren. Mit dem NN-Framework stehen Tools zur Verfügung, die bei diesem Prozess unterstützen.

Im zweiten Schritt werden diese vortrainierten Modelle, die für bestimmte Funktionen wie Stichwortsuche oder Spracherkennung optimiert sind, in ein für MCUs geeignetes Format konvertiert. Der erste Schritt in diesem Prozess ist die Umwandlung in eine Pufferdatei mit Hilfe des AI-Konverter-Tools. Diese kann optional durch den Quantisierer laufen, um die Größe zu reduzieren und für die MCU zu optimieren. Diese Pufferdatei wird dann in C-Code umgewandelt und als ausführbare Laufzeitdatei auf die Ziel-MCU übertragen.

Diese mit dem vortrainierten Embedded-AI-Modell ausgestattete MCU kann nun im Endgerät eingesetzt werden. Wenn neue Daten eintreffen, laufen sie durch das Modell und erzeugen eine Inferenz auf Grundlage des Trainings. Wenn neue Datenklassen eintreffen, kann das NN-Modell zum erneuten Training in die Cloud zurückgeschickt werden. Das dann neu trainierte Modell lässt sich auf der MCU über OTA-Firmware-Upgrades programmieren.

AI-Implementierung
© Renesas Electronics

AI-Implementierung auf MCUs mit Offline vortrainierten Modellen

Es gibt zwei verschiedene Möglichkeiten, wie eine MCU-basierte AI-Lösung aufgebaut sein kann. Im Rahmen der weiteren Betrachtung setzen wir die Verwendung von Cortex-M-Cores in den Ziel-MCUs voraus.

Bei der ersten Methode wird das konvertierte NN-Modell auf dem Cortex-M-CPU-Core ausgeführt und mit den CMSIS-NN-Bibliotheken beschleunigt. Dies ist eine einfache Konfiguration, die ohne zusätzliche Hardware-Beschleunigung auskommt. Sie ist für einfachere KI-Anwendungen wie Stichwortsuche, Vibrationsanalyse und Sensor-Hubs geeignet.

Eine anspruchsvollere und leistungsstärkere Option beinhaltet die Einbindung eines NN-Beschleunigers oder einer Micro Neural Processing Unit (µ-NPU) auf der MCU. Diese µ-NPUs beschleunigen das maschinelle Lernen in ressourcenbeschränkten IoT-Endgeräten und unterstützen eventuell auch eine Komprimierung, die den Stromverbrauch und die Größe des Modells reduzieren kann. Sie unterstützen Operatoren, die die meisten der gängigen NN-Netzwerke für Audioverarbeitung, Spracherkennung, Bildklassifizierung und Objekterkennung vollständig ausführen können. Die Netzwerke, die von der µ-NPU nicht unterstützt werden, können auf den Haupt-CPU-Core zurückgreifen und werden mithilfe der CMSIS-NN-Bibliotheken beschleunigt. Bei dieser Methode wird das NN-Modell auf der u-NPU ausgeführt.

Diese Methoden zeigen nur einige Möglichkeiten, KI in MCU-basierten Geräte zu implementieren. Da die Leistungsgrenzen von MCUs immer weiter nach oben und damit näher an die von MPUs erwartete Leistung verschoben werden, ist zu erwarten, dass vollständige KI-Anwendungen, einschließlich schlankere Lernalgorithmen und Inferenzierung, direkt auf MCUs implementiert werden.

Seite 1 von 3

1. AI of Things - Implementierung auf MCUs
2. Renesas und AI
3. Gigantisches Marktpotenzial

Auf Facebook teilen Auf Twitter teilen Auf Linkedin teilen Via Mail teilen

Das könnte Sie auch interessieren

Verwandte Artikel

Renesas Electronics Europe GmbH