Nochmals vielen Dank für Ihre Teilnahme an unserer Sitzung zum Thema "AI at the Edge: Machine Learning in Embedded Systems". Hier finden Sie die Fragen, die nach der Präsentation gestellt wurden, und die Antworten darauf. Wenn Sie weitere Fragen haben, wenden Sie sich bitte an uns .
Welche zusätzlichen Ressourcen (Prozessor, Speicher usw.) sind erforderlich, um maschinelles Lernen in einem eingebetteten System zu implementieren?
Es kommt wirklich darauf an. Anwendungen des maschinellen Lernens decken ein ganzes Spektrum ab. Wie wir gesehen haben, gibt es einfachere Anwendungen, wie z. B. das Beispiel der Überwachung einiger Sensoren auf Veränderungen der Vibrationsmuster als Anwendungsfall für vorausschauende Wartungsdienste für diese Baumaschine. Für diesen Anwendungsfall kann ein kleiner Mikrocontroller mit sehr wenig Speicher ausreichend sein. Und es gibt High-End-Anwendungen, wie die Erkennung von Objekten in hochauflösenden Videoströmen, die natürlich viel Rechenleistung und Speicherbandbreite benötigen, um die Daten zu verarbeiten.
Viele der heutigen Anwendungen für maschinelles Lernen stammen aus der Cloud-Entwicklung, wo eine Vielzahl von Rechenressourcen zur Verfügung steht. Die Entwickler haben sich dort nicht um die Rechenressourcen gekümmert, was in starkem Kontrast zu eingebetteten Geräten steht. Und jetzt, wo man diese Funktionalität an den Rand verlagern möchte, wo man nicht die ganze Rechenleistung zur Verfügung hat, ist das eine schwierige Aufgabe. Beim maschinellen Lernen am Rande des Netzwerks muss der Modellnutzung und den Optimierungen für ressourcenbeschränkte eingebettete Geräte mehr Aufmerksamkeit gewidmet werden.
Anbieter wie unser Partner Au-Zone, den wir ebenfalls in der Demo gesehen haben, sind Experten auf diesem Gebiet und bieten eine eingebettete Inferenz-Engine und Modelloptimierungs-Tools an, um sie für den Betrieb auf diesen eingeschränkten eingebetteten Geräten mit geringem Speicherbedarf und schnellen Inferenzzeiten vorzubereiten, selbst wenn nur wenige Rechenressourcen zur Verfügung stehen.
Und wir haben das Beispiel der Spracherkennung gesehen. Ich möchte noch einmal betonen, dass wir mit unserem ConnectCore SoM-Lösungsangebot eine solche Lösung anbieten werden, die für eingebettete Geräte optimiert ist. Sie brauchen also keine ausgefallene Verarbeitungseinheit für neuronale Netze, die auch kostspielig ist. Sie können diese Anwendung, eine Spracherkennungsanwendung, die Tausende von Wörtern und Vokabeln unterstützt, auf einem einzigen Cortex-A-Kern mit einer Auslastung von weniger als 50 % ausführen, während Sie möglicherweise eine NPU benötigen, wenn Sie das Gleiche mit einem nicht optimierten Open-Source-Framework für maschinelles Lernen machen.
Ist es möglich, Deep Learning für Textdaten einzusetzen, z. B. für die Verarbeitung von Gedichten, um verschiedene Genres zu identifizieren?
Es ist sicherlich möglich, Text zu verarbeiten und Textelemente zu klassifizieren. Das ist also mit maschinellem Lernen definitiv möglich. Und es gibt viele Anwendungsfälle dafür, zum Beispiel Ihre Spam-Filter, die Text und E-Mails verarbeiten und sie als Spam oder Nicht-Spam klassifizieren. In diesen E-Mails geht es zwar nicht um Poesie, aber ich denke, es hat damit zu tun.
Wie wirken sich künstliche Intelligenz und maschinelles Lernen in einem Gerät auf die Sicherheit aus?
Es gibt Sicherheitsbedrohungen, die auf Anwendungen für maschinelles Lernen abzielen, wenn das die Frage ist. Angreifer versuchen zum Beispiel, die Eingaben in das maschinelle Lernmodell mit einer bestimmten Technik zu verändern, um das Modell so zu täuschen, dass es zum Beispiel ein Objekt oder sogar ein Straßenschild in einer Verkehrsanwendung falsch klassifiziert. Und dann würde es mit den richtigen Manipulationen auch einen hohen Vertrauensfaktor für diese ausgeben, und das ist sicherlich ein Sicherheitsproblem und auch ein Sicherheitsproblem.
Es gibt Methoden, um das Modell gegen solche Angriffe zu härten, die während der Modellschulung und -entwicklung angewendet werden können. Weitere Sicherheitsprobleme beim maschinellen Lernen sind der Diebstahl von Modellen oder Angriffe auf Modellierungsversionen. Digi stellt die von NXP verfügbaren Gegenmaßnahmen und die eIQ-Tools für maschinelles Lernen zur Verfügung, um einige dieser maschinelles Lernen betreffenden Sicherheitsprobleme zu lösen.
Aber auch die allgemeine Systemsicherheit ist wichtig und andere Sicherheitsfunktionen wie sicheres Booten, verschlüsseltes Dateisystem, geschützte Ports und Manipulationserkennung müssen ebenfalls aktiviert werden. Mit unserem Sicherheits-Framework, das wir als Teil von ConnectCore anbieten, dem Digi TrustFence, ist ein komplettes Sicherheits-Framework mit Digi ConnectCore SoM verfügbar. Und alle Funktionen, die ich gerade erwähnt habe, sind vollständig in den Bootloader, den Kernel und das Root-Dateisystem integriert und können sofort genutzt werden, ohne dass man ein Sicherheitsexperte werden oder viele Wochen damit verbringen muss, sie zu aktivieren. Sie funktionieren also auf allen Hardware- und Software-Ebenen.
Wird die Präsentation aufgezeichnet, um sie später anzusehen?
Ja, natürlich. Die Aufzeichnung wird zu einem späteren Zeitpunkt auf der BrightTALK-Plattform hier abspielbar sein. Und wir werden den Link auch auf unserer Website www.digi.com veröffentlichen. Im Abschnitt "Ressourcen" sehen Sie einen Abschnitt "Webinare". Dort stellen wir alle Webinare zum späteren Anschauen ein.
Wie lässt sich die Genauigkeit des maschinellen Lernmodells überprüfen?
Das geschieht während der Trainingsphase. Normalerweise hat man also einen großen Datensatz, um das Modell zu trainieren. Dann legt man andere Daten beiseite, um die eigentlichen Tests durchzuführen und die Genauigkeit des Modells zu überprüfen. Und wenn man mit der Genauigkeit zufrieden ist, ist man fertig. Wenn man mit der Genauigkeit nicht zufrieden ist, braucht man mehr Trainingsdaten, speist diese in ein Modell ein, trainiert es weiter und testet es dann wieder mit anderen Daten und wiederholt diesen Prozess, bis man mit der Genauigkeit zufrieden ist. Nur auf hohem Niveau.
Es gibt noch eine weitere Frage zu Beispielen für das Lernen vieler Kanäle von Signalen mit niedriger Geschwindigkeit.
Ich bin mir nicht sicher, ob ich die Frage richtig verstanden habe. Aber es gibt zwei Möglichkeiten. Man kann ein Modell von Grund auf neu erstellen und alles selbst machen, und dazu braucht man viele, viele Daten. In der Regel verwendet man aber ein vortrainiertes Modell und wendet dann etwas an, das man Transfer-Lernen nennt. Es gibt bereits trainierte Modelle für die Bilderkennung, die Spracherkennung, die Texterkennung und für viele andere Bereiche. Und dann würde man Transfer Learning anwenden, um das Modell so zu optimieren oder zu modifizieren, dass es genau Ihrem Anwendungsfall dient.
Wie wurde die Latenzzeit des Wake-Words auf dem Cortex-M-Kern gemessen? Ist es möglich, ein Wake-Word zu konfigurieren? Ist dafür zusätzliches Lernen erforderlich?
In diesem Szenario kann das Weckwort also konfiguriert werden. Sie können also Ihre eigenen Weckwörter definieren und diese in diesem Modell lernen. Sie geben also ein, welche Befehle Sie lernen wollen, und zeichnen diese auf. Dann wenden Sie verschiedene Sprechweisen an, und die Maschine erkennt diese Wörter. Außerdem wird das Modell übertragen, um es auf dem eingebetteten Gerät für den Cortex-M-Kern laufen zu lassen und es so zu optimieren, dass es effizient auf diesem Motor läuft. Ich würde sagen, dass die Latenzzeit für das Weckwort nicht sehr wichtig ist. Ich meine, hier interagiert der Mensch mit der Maschine. Wenn das also ein paar Millisekunden länger dauert, ist das wirklich kein Problem. Es war also nicht erforderlich, dass die Latenzzeit wirklich niedrig ist. Aber es sollte trotzdem schnell sein, damit die Leute es benutzen können. Aber die Latenzzeit war nicht besonders wichtig. Sie lag unter einer Sekunde, so dass das Einschalten des Geräts nahtlos erfolgte.
Kennen Sie Beispiele für den Einsatz von FPGAs für maschinelles Lernen im Embedded-Bereich? Wie unterscheiden sich diese in Bezug auf Anforderungen und Leistung?
Tut mir leid, das kann ich nicht beantworten. Ich habe keine Erfahrung mit der FPGA-Seite. Ich bin sicher, dass man damit eine Art neuronales Netzwerk nachbilden kann. Ich bin sicher, dass es einige IPs gibt, um diese Funktionalität in einem FPGA zu betreiben. Aber Sie haben all diese Kerne zur Verfügung. Und bei den heutigen eingebetteten SoCs, System on Chips, hat man oft eine GPU, die nicht genutzt wird. Sie haben mehrere Cortex-A-Kerne. Oft gibt es auch einen Cortex-M-Kern, der separat davon arbeitet. Bei diesen hochintegrierten SoCs gibt es also viele Kerne und viele Optionen in diesen SoCs. Die Verwendung eines externen FPGAs würde also nur zusätzliche Kosten und Designkomplexität bedeuten. Aber ich bin sicher, dass es Optionen gibt, um Beschleuniger für neuronale Netze in einem FPGA zu betreiben, wenn dies erforderlich ist.