
Künstliche Intelligenz und maschinelles Lernen etablieren sich am Netzwerkrand. (Bild: ipopba - stock.adobe.com)
Inferenz direkt an der Quelle: So heben künstliche Intelligenz (KI) und maschinelles Lernen (ML) die Edge-Verarbeitung auf ein neues Niveau. IoT-Geräte können damit aus Erfahrungen lernen und sich verbessern. Algorithmen analysieren dabei die Daten, um nach Mustern zu suchen und fundierte Entscheidungen zu treffen. Das Lernen erfolgt auf drei Arten.
Maschinelles Lernen: Überwacht, unüberwacht und verstärkt lernen
Beim überwachten Lernen verwendet die Maschine gekennzeichnete Daten für das Training. Eine intelligente Sicherheitskamera kann so anhand von Fotos und Videoclips trainiert werden, die beispielsweise Personen zeigen, die stehen, gehen, laufen oder Gegenstände tragen. Zu den überwachten ML-Algorithmen gehören die logistische Regression und Naive Bayes. Feedback ist erforderlich, um die Modelle, auf deren Grundlage Vorhersagen getroffen werden, weiter zu verfeinern.
Unüberwachtes Lernen erfolgt anhand nicht gekennzeichneter Daten und Algorithmen wie K-Means-Clustering und Hauptkomponentenanalyse, um Muster, aber auch Anomalien zu erkennen. So würde die Maschine in einem Szenario mit vorausschauender Wartung oder in der medizinischen Bildgebung Konstellationen im Bild kennzeichnen, die dem von ihr erstellten und gepflegten Modell nicht entsprechen.
Verstärktes Lernen ist ein Trial-and-Error-Prozess. Es erfordert, wie auch das überwachte Lernen, eine Rückmeldung – aber anstatt die Maschine einfach zu korrigieren, wird das Feedback entweder als Belohnung oder als Bestrafung behandelt. Zu den Algorithmen gehören Monte-Carlo- und Q-Learning.
In den obigen Beispielen ist Embedded Vision ein gemeinsames Element, das durch Hinzufügen von KI oder ML intelligent wird. Alle anderen Anwendungen können von Vision-basierter Inferenz an der Quelle profitieren. Darüber hinaus kann intelligente Embedded-Bildverarbeitung Spektralanteile des Lichts nutzen, die das menschliche Auge nicht sieht, wie Infrarot und Ultraviolett.
Wird ein KI- oder ML-Edge-System beispielsweise mit Temperaturwerten und Vibrationspegeln von Wandlern versorgt, können Industrial-IoT-Geräte nicht nur eine wichtige Rolle bei der vorausschauenden Wartung spielen, sondern auch frühzeitig vor unerwarteten Ausfällen warnen und so zum Schutz von Maschinen, Produkten und Menschen beitragen.
Implementierung von KI und ML in Embedded-Systemen
Wie oben erwähnt, waren für KI und ML anfangs erhebliche Rechenressourcen erforderlich. Heute lassen sie sich, je nach Komplexität, auf Komponenten für Embedded-Systeme – etwa IoT-Geräte – unterbringen. Bilderkennung und -klassifizierung lässt sich so in FPGAs und MPUs implementieren. Zudem können einfache Anwendungen wie Schwingungsüberwachung und -analyse für die vorausschauende Wartung auf einer 8-bit-MCU laufen.
Brauchten KI und ML früher hochqualifizierte Programmierer, um Algorithmen für die Mustererkennung zu entwickeln – und Modelle, die automatisch aktualisiert werden konnten, um Vorhersagen treffen zu können –, ist dies heute nicht mehr der Fall. Embedded-Entwickler, die bereits mit Edge-Verarbeitung vertraut sind, verfügen nun über Hardware, Software, Tools und Methoden, um KI- und ML-fähige Produkte bereitzustellen. Darüber hinaus sind viele Modelle und Daten für das Training frei verfügbar; viele Halbleiterhersteller bieten integrierte Entwicklungsumgebungen und Suiten an, die helfen, KI- und ML-Anwendungen zügig zu erstellen.
Beispielhaft steht dafür die integrierte Entwicklungsumgebung MPLAB X von Microchip: Die Software enthält Tools, mit denen sich Embedded-Designs auf der Basis eigener Bauelemente finden, konfigurieren, entwickeln, debuggen und qualifizieren lassen. Ein Plug-in für die Entwicklungsumgebung für maschinelles Lernen ermöglicht es, ML-Modelle direkt auf die Zielhardware zu flashen. Die Software verwendet automatisiertes maschinelles Lernen (AutoML), bei dem viele zeitaufwendige und iterative Aufgaben, wie Modellentwicklung und Training, automatisiert werden (Bild 1).

Die Automatisierung dieser iterativen Schritte ist eine Sache, die Designoptimierung eine andere. Selbst Entwickler mit Erfahrung in der Edge-Datenverarbeitung können mit einigen Aspekten von KI und ML Schwierigkeiten haben. Um je nach Modellgröße und -komplexität sowie Datenvolumen zwischen Systemleistung, Strombedarf und Kosten eine Balance zu erreichen, sind viele Kompromisse nötig. Bild 2 veranschaulicht das Spannungsfeld zwischen diesen Parametern; die Grafik enthält dazu auch Angaben zur Leistungsaufnahme von Microchip-Bauelementen, die in typischen ML-Inferenzanwendungen verwendet werden.

Designt für kleine Formfaktoren mit TinyML
Für einige ML-Anwendungen kommen selbst 8-bit-Mikrocontroller infrage. Denn dank TinyML lassen sich Modelle auch auf MCUs mit beschränkten Ressourcen ausführen. Während eine Highend-MCU oder -MPU für KI- oder ML-Anwendungen in der Regel mit 1 bis 4 GHz läuft, zwischen 512 MB und 64 GB RAM braucht, 64 GB bis 4 TB nichtflüchtigen Speicher (NVM) verwendet und 30 bis 100 W Leistung benötigt, kommt TinyML mit deutlich geringeren Ressourcen aus. Es ist für MCUs gedacht, die mit 1 bis 400 MHz laufen, zwischen 2 und 512 kB RAM aufweisen und mit 32 kB bis 2 MB NVM betrieben werden. Die Leistungsaufnahme liegt hier eher zwischen 150 µW und 23,5 mW, was vorteilhaft für batteriebetriebene Anwendungen ist, die auf Energy Harvesting angewiesen sind oder über Induktion versorgt werden.
Um TinyML zu implementieren, kommt es auf vier Faktoren an: Datenerfassung und -aufbereitung sowie Modellgenerierung und -verbesserung. Die beiden erstgenannten sind entscheidend, wenn im gesamten ML-Prozessablauf aussagekräftige Daten – ein Datensatz – zur Verfügung gestellt werden sollen (Bild 3).
Zu Trainingszwecken werden Datensätze für überwachtes (und halbüberwachtes) Lernen benötigt: Sammlungen von Daten, die bereits in einer bestimmten Reihenfolge angeordnet sind. Wie erwähnt, sind die Daten für überwachte Systeme gekennzeichnet, sodass die Maschine in unserem Beispiel der intelligenten Sicherheitskamera mit Fotos stehender, gehender und laufender Personen trainiert werden kann. Der Datensatz könnte manuell erstellt werden, obwohl viele kommerziell erhältlich sind, wie MPII Human Pose, der etwa 25 000 Bilder aus Online-Videos enthält.
Der Datensatz muss jedoch für die Verwendung optimiert werden. Zu viele Daten füllen schnell den Speicher. Bei unzureichenden Daten kann die Maschine entweder keine Vorhersagen treffen, oder diese können fehlerhaft oder irreführend sein.

Außerdem muss das KI- oder ML-Modell klein sein. Dabei ist Weight Pruning eine beliebte Komprimierungsmethode, bei der das Gewicht der Verbindungen zwischen einigen Neuronen innerhalb des Modells auf Null gesetzt wird. Die Maschine muss diese dann nicht berücksichtigen, wenn sie Schlussfolgerungen aus dem Modell zieht. Neuronen können auch beschnitten werden. Eine weitere Komprimierungstechnik ist die Quantisierung. Sie reduziert die Genauigkeit der Parameter, Verzerrungen und Aktivierungen eines Modells, indem Daten in einem hochpräzisen Format wie 32-bit-Floatingpoint (FP32), in ein weniger genaues Format wie 8-bit-Integer (INT8), umgewandelt werden.
Mit einem optimierten Datensatz und einem kompakten Modell kann eine geeignete MCU ausgewählt werden. Frameworks helfen dabei: So ermöglicht das TensorFlow-Framework die Auswahl eines neuen TensorFlow-Modells oder die Umschulung eines bestehenden Modells. Dieses kann dann mit TensorFlow Lite Converter in einen kleinen Puffer komprimiert, auf das Ziel geladen und quantisiert werden.
Fazit: Viel muss nicht viel helfen
KI und ML verwenden Algorithmen, um Muster oder Trends in Daten zu erkennen und Vorhersagen zu treffen. Erfolgt die Verarbeitung an der Datenquelle – am Edge –, können Anwendungen vor Ort in Echtzeit Schlussfolgerungen ziehen und Maßnahmen ergreifen, womit das Gesamtsystem effizienter und sicherer wird. Geeignete Hardware, Entwicklungstools und -kits, integrierte Entwicklungsumgebungen, Frameworks, Datensätze und Open-Source-Modelle unterstützen Entwickler dabei, KI- und ML- fähige Edge-Processing-Produkte zu entwickeln. Allerdings ist es wichtig, den Umfang der Entwicklung im Auge zu behalten, um nicht in Anwendungen zu investieren, die auf überdimensionierte ICs abzielen, mehr Strom brauchen als nötig und teurer sind. (laa)