Deep Learning (DL) als eine Unterdisziplin des Machine Learnings stellt jenen Zweig der künstlichen Intelligenz dar, dessen Algorithmen durch die Struktur und Funktionsweise des Gehirns inspiriert sind (künstliche neuronale Netze).
Seit einiger Zeit ist eine zunehmende Verwendung von DL-Ansätzen in Embedded-Geräten zur Unterstützung des Edge-Computing-Paradigmas zu beobachten, um die Mängel der Cloud-basierten Ansätze in Hinblick auf Latenz, Bandbreitenbedarf, Verfügbarkeit, Security und Datenschutz zu umgehen. Bei On-Edge-Ansätzen sollten die Performance-Anforderungen mit den strikten Vorgaben bezüglich des Stromverbrauchs in Einklang gebracht werden. Für Echtzeit-Aufgaben erfordern DL-Algorithmen nach dem CNN-Prinzip (Convolutional Neural Networks) beispielsweise die Ausführung von Milliarden von MAC-Operationen pro Sekunde (MAC: (Multiply Accumulate) sowie die lokale Speicherung von Millionen Bytes von vorab trainierten Gewichten. Um diese Anforderungen zu erfüllen, müssen stromsparende IoT-Endknoten für rechenintensive Datenverarbeitungs-Aufgaben auf spezialisierte Hardwareblöcke zurückgreifen, während für Aufgaben mit weniger Rechenaufwand die volle Software-Programmierbarkeit gewahrt bleibt.
Bei ST ist das Orlando-Project das erste Beispiel in dieser Richtung. Es handelt sich dabei um eine konfigurierbare, skalierbare und während des Designs parametrisierbare CNN-Processing-Engine, die auf einem energieeffizienten Satz Konvolutions-Beschleuniger in Hardware basiert, die Kernel-Kompression unterstützen. Auf dem Chip ist außerdem eine rekonfigurierbare Datenübertragungs-Struktur (Fabric) integriert, um die Wiederverwendung von Daten zu verbessern und die Zugriffe auf Speicher inner- und außerhalb des Chips zu reduzieren.
ST arbeitet zurzeit am Ausbau seiner KI-Lösungen, dazu gehören auch Varianten zur Einbettung und Ausführung vorab-trainierter ANNs( Artificial Neural Networks) auf STM32-Bausteinen. Viele Packages ermöglichen inzwischen Applikationen wie die Erkennung menschlicher Aktivitäten oder die Klassifizierung von Audio-Szenen auf Basis von Ausgaben neuronaler Netze, implementiert mit einer Multi-Network-Bibliothek mit Unterstützung für Fest- und Gleitkomma-Arithmetik mithilfe des KI-Zusatzes für das STM32CubeMX-Tool.
Machine Learning Core - ein verbessertes On-Edge-Paradigma
Die Tatsache, dass sich der Energieverbrauch von Inertialsensoren drastisch verringert hat, ebnete in den vergangenen Jahren den Weg zu einer ganz neuen Welt von Anwendungen. ST führte ein programmierbares und konfigurierbares Built-in-Digitalmodul ein, das den Energiebedarf der Systeme senkt, indem die Intelligenz in den Sensor selbst verlagert wird und der Haupt-Prozessor dadurch im Sleep-Modus bleiben kann. Dieser Block wurde für eine Statistik-basierte Kontextsensitivität auf Basis eines Entscheidungsbaum-Konzepts (KI) entwickelt. Auf diese Weise lassen sich im Sensor selbst komplexe Algorithmen implementieren, beispielsweise zur Erkennung menschlicher Aktivitäten (Ruhezustand, gehen, Fahrzeugbewegungen usw.), zum Feststellen der Trageposition (am Handgelenk, in der Hosentasche, auf einem Tisch usw.) sowie zum Erkennen von Maschinenaktivitäten und Bewegungen. Der Sensor selbst lässt sich einfach programmieren und damit die vollständige Konfigurierbarkeit des Moduls ausschöpfen.
Das eingebettete Digitalmodul macht es möglich, die Algorithmenverarbeitung ganz oder teilweise in eine individuelle, stromsparende Umgebung im Sensor auszulagern, wodurch die Kommunikation mit dem Haupt-Prozessor (und damit auch der Stromverbrauch) reduziert wird.
Innerhalb des Inertialmoduls LSM6DSOX wird dieser Block als Machine Learning Core (MLC) bezeichnet. Der Grundgedanke hinter dem MLC ist es, die Implementierung datengetriebener Algorithmen in einem Halbleiterbaustein zu ermöglichen und dabei die Fähigkeit zu nutzen, aus den im Input enthaltenen Mustern ein Modell zu erstellen. Der große Vorteil hierbei ist der wirklich minimierte Stromverbrauch.
Bei klassischen On-Edge-Softwarelösungen besteht die Hardware-Architektur aus einer stromsparenden MCU, einem nichtflüchtigen Speicher für die Anwenderprogramme, Speichern für Daten und Programmierung sowie gängigen Schnittstellen (SPI, I²C usw.). Damit kann die Applikation über die Schnittstellen Schreib- und Lesezugriffe auf den Sensor und Aktoren vornehmen, eine Algorithmenberechnung durchführen und Verbindung mit einem Endgerät (Computer/Smartphone) aufnehmen, beispielsweise über Bluetooth. Wie in Bild 7 gezeigt, lässt sich das Energiebudget einer solchen Lösung einfach abschätzen: mit dem in den LSM6DSOX eingebetteten Algorithmus, der für die Implementierung eines ähnlichen Algorithmus einer bestehenden reinen Software-Lösung rekonfiguriert wurde, führt die Portierung vom Mikrocontroller auf den Sensor zu einer Verringerung des Stromverbrauchs um den Faktor 25. Dabei bleibt der qualitativ hochwertige Algorithmus unverändert, und auch die Performance entspricht der Verarbeitung auf einem Mikrocontroller.
ST hat verschiedene voll funktionsfähige Beispiele veröffentlicht, die mit dem MLC entwickelt wurden. Momentan arbeitet das Unternehmen daran, seine gesamte Bibliothek und das Software-Portfolio auf das Sensor-Framework zu portieren, womit der gesamte Prozess vereinfacht.
Ein Aktivitätserkennungs-Algorithmus zum Beispiel beginnt mit Mustern der zu erkennenden Aktivitäten (gehen, laufen, bewegtes Fahrzeug, Ruhezustand). Ziel ist es, dass der MLC die aktuelle Aktivität direkt aus den Sensordaten ausgibt. Vom Anwender können Daten aus bis zu drei Sensoren als Eingabe für den Algorithmus konfiguriert werden. Zusätzlich lassen sich abhängig von der Applikationsbandbreite die Koeffizienten für FIR- und IIR-Filter festlegen. Sowohl Rohdaten als auch gefilterte Daten kommen als Eingaben für den Feature-Block in Frage, der statistische Berechnungen mit den Daten vornimmt und sich für die Ausgabe verschiedener statistischer Merkmale konfigurieren lässt. Es können bis zu 12 Merkmale zum Trainieren und Entwickeln des Ausgabe-Algorithmus konfiguriert werden. Die wichtigsten davon sind Mittelwert, Varianz, Peak to Peak und Nulldurchgang und werden auf jeweils eine Achse (oder das Modul) des verwendeten Sensors (z. B. Beschleunigungssensor) angewandt.
Im Anschluss an die Konfiguration der Filter und Merkmale kann ein Software-Tool eine Konfigurationsdatei ausgeben, die zur Konfiguration des MLC verwendet wird, sowie eine standardisierte Datei für das Data-Mining-Tool. Diese Datei wird mit der Hardware-mäßigen Implementierung der MLC-Berechnung abgestimmt. Das Data-Mining-Tool kann die geeignetste Teilmenge von Merkmalen für die jeweilige Anwendung verfeinern oder bestimmen und ist in der Lage, einen Entscheidungsbaum sowie die relative statistische Performance auszugeben.
Nach erfolgter Auswertung und Rückmeldung seitens des Data-Mining-Tools können die Daten erneut verarbeitet und der Bestand an Merkmalen optimiert werden. Wenn dann die Performance den Erwartungen entspricht, kann der Entscheidungsbaum mithilfe einer vom STM-Softwaretool erzeugten Konfigurationsdatei in den MLC geladen werden. Damit ist es, wie in Bild 7 gezeigt, möglich, eine weitere Schicht aus der Ausgabe des erhaltenen Entscheidungsbaums und den finalen Ergebnissen der Algorithmenverarbeitung im MLC hinzuzufügen. Durch die Einbindung eines konfigurierbaren Meta-Classifiers lässt sich die Ausgabe so filtern, dass eine stabilere und robustere Lösung entsteht – insbesondere in Verbindung mit Falsch-Positiv-Daten und -Szenarien (Bild 8).
Eine Reihe von Beispielen (Bild 9) lassen sich aus den Bibliotheken entnehmen, die ST bereits auf den Markt gebracht hat, wie etwa die Aktivitätserkennung (Human Activity Recognition) oder die Erkennung gymnastischer Übungen (Gym Recognition). Die Tabellen zeigen das Potenzial des MLC-Konzepts bezüglich der Performance, zusammen mit dem bereits angesprochenen Vorteil hinsichtlich des Stromverbrauchs, der sich in diesen Fällen auf ein Zehntel reduziert.
Zusammenfassung
Zahlreiche Fortschritte im Machine Learning haben Innovationen in einer Vielzahl von Anwendungen und technischen Disziplinen ermöglicht (z. B. Bild- und Mustererkennung, Sensorfusion usw.). Wegen der zunehmenden Komplexität dieser Systeme und Applikationen setzt man auf eine Architektur, die ihre Berechnungen, je nach Anforderung der jeweiligen Anwendung in der Cloud, im Edge und im Sensorknoten ausführt.
Die große Verbreitung von Sensoren und MEMS-Varianten für intelligente Systeme generieren immer mehr Trainings- und Testdaten und machen es möglich, Berechnungen leistungsstark lokal auszuführen und dabei den Stromverbrauch signifikant zu senken.
Obwohl Cloud-basierte Lösungen nach wie vor eine wichtige Rolle spielen, führen rein zentralisierte Konfigurationen zu einer hohen Latenz und Bandbreitenabhängigkeit für Edge Devices, die auf die Verarbeitung der Sensordaten in Echtzeit angewiesen sind. Deshalb integriert ST ML-Algorithmen direkt in MCUs und Sensoren, wodurch die Verschwendung von Ressourcen vermieden und der Stromverbrauch deutlich gesenkt wird.
Autor:
Roberto Mura ist Application Dev und Control Engineer bei STMicroelectronics