Künstliche Intelligenz (KI) kann auf eine lange Geschichte zurückblicken: Bereits 1955 wurde sie als akademische Disziplin anerkannt. Unter KI wird die Fähigkeit eines Computers verstanden, menschliche Intelligenz nachzuahmen, aus Erfahrungen zu lernen, sich an neue Informationen anzupassen und menschenähnliche Aktivitäten durchzuführen.
Zu den Anwendungsgebieten der KI gehören unter anderem Expertensysteme, Verarbeitung natürlicher Sprache (Natural Language Processing, NLP), Spracherkennung und maschinelles Sehen.
Die Auferstehung der KI
Lange konnte die KI die in sie gesetzten Erwartungen nicht erfüllen. Seit etwa 15 Jahren erlebt die künstliche Intelligenz jedoch ein neues und wachsendes Interesse. Tausende von KI-Start-ups wurden in den letzten Jahren gegründet – mit schnell steigender Anzahl. Hinter diesem Trend stecken mehrere Gründe: Der wohl wichtigste ist die enorme Rechenleistung, die heute zu einem erschwinglichen Preis verfügbar ist. Nicht nur die Computer wurden viel schneller, insbesondere kann heute jeder einfach und günstig auf Supercomputer in der Cloud zugreifen. Dies hat den Zugang zu den für die KI benötigten Hardware-Plattformen demokratisiert und damit eine starke Zunahme von Start-ups ermöglicht.
Zusätzlich skalieren künstliche neuronale Netze (Bild 2) jetzt bis auf hunderte verdeckte Schichten (Bild 3). Sogar Netzwerke mit 10.000 verdeckten Schichten wurden bereits implementiert. Diese Entwicklung erhöht das Abstraktionsvermögen von neuronalen Netzen und ermöglicht ganz neue Anwendungen. Neuronale Netze lassen sich heute problemlos auf zehntausenden von CPU- oder GPU-Kernen trainieren, was den Prozess der Entwicklung verallgemeinerter Lernmodelle massiv beschleunigt hat.
Ein weiterer Grund für das gestiegene Interesse an KI sind die bahnbrechenden Weiterentwicklungen des maschinellen Lernens in den letzten Jahren. Dies hat dazu beigetragen, dass KI-Start-ups leichter Kapital erhalten und somit mehr Start-ups gegründet werden. Und je mehr Unternehmen an einer Technologie forschen, desto schneller sind deren Fortschritte.
So lernen Computer
Ein künstliches neuronales Netzwerk ist ein Computermodell, das vom menschlichen Gehirn inspiriert ist. Es besteht aus einem miteinander verbundenen Netzwerk von künstlichen Neuronen, die aus Erfahrungen lernen können, indem sie ihre Verbindungen modifizieren (Bild 2). Sogenannte tiefe neuronale Netze (Deep Neural Network – DNN, neuronale Netze mit vielen verdeckten Schichten) erzielen derzeit die besten Ergebnisse bei komplexen Aufgaben.
Die am weitesten verbreiteten DNNs sind Convolutional Neural Networks (CNNs). Diese Systeme verwenden ein künstliches Netz von Neuronen mit Vorwärtskopplung, um Eingabemerkmale auf eine Ausgabe abzubilden. Sie verwenden ein Rückkopplungssystem zum Lernen und erzeugen einen Satz von Gewichten zur Kalibrierung des CNN (Rückpropagation, Bild 4).
Der rechenintensivste Prozess beim maschinellen Lernen ist das Training des neuronalen Netzes. Für ein komplexes Netzwerk kann dies Tage bis Wochen dauern, wobei Milliarden von Gleitkommaberechnungen und ein riesiger Trainingsdatensatz von mehreren hundert GBytes erforderlich sind, bis das Netzwerk die erforderliche Genauigkeit erreicht. Glücklicherweise ist dieser Schritt meist nicht zeitkritisch und lässt sich in die Cloud auslagern.
Ist das Netzwerk trainiert, ist es bereit, um seine eigentliche Aufgabe zu erfüllen: die Klassifizierung von unbekannten Datensätzen. Dieser Schritt wird Inferenz genannt.
Das Ziel heißt Effizienz
Die Klassifizierung eines Datensatzes kann entweder in der Cloud oder an der Edge (meistens ohne Internetverbindung) erfolgen. Während für das neuronale Netz oft ein spezieller Beschleuniger (FPGA, GPU, DSP oder ASIC) eingesetzt wird, kommt für die Erledigung zusätzlicher Aufgaben am besten ein Prozessor zum Einsatz, der mit einer Hochsprache programmierbar ist. Ein System-on-Chip, der ein FPGA mit einer CPU auf einem Chip verbindet, kann dabei zahlreiche Vorteile ausspielen – insbesondere bei Embedded-Anwendungen. Der FPGA Bereich arbeitet dabei als Hardware-Beschleuniger und erledigt die Inferenz und die CPU übernimmt die Steuerungsaufgaben. Ein FPGA bietet im Vergleich zu einer GPU- oder ASIC-basierten Lösung zahlreiche Vorteile – unter anderem die einfache Integration verschiedenster Schnittstellen und Sensoren als auch die Flexibilität, neue neuronale Netzwerkarchitekturen zu verwenden (Bild 5).
Die Verwendung eines SoCs garantiert eine niedrige und deterministische Latenz, wie sie zum Beispiel für die Echtzeit-Objekterkennung benötigt wird. Gleichzeitig sind SoCs auch sehr energieeffizient. Die größte Herausforderung, um die beste Leistung aus einem FPGA herauszuholen, ist die effiziente Abbildung des Fließkomma-Modells auf die Festkomma-FPGA-Implementierung ohne Genauigkeitsverlust (Bild 6). Dabei helfen zum Glück die Tools der Hersteller weiter.
Die richtigen Werkzeuge wählen
Es gibt heute eine große Auswahl an Tools, welche die Einstiegshürde für das erste KI-Projekt senken. Die Vitis-KI-Entwicklungsumgebung von Xilinx zum Beispiel kombiniert alle notwendigen Tools um eine FPGA-basierte KI-Anwendung zu entwickeln. Sie unterstützt zahlreiche gebräuchliche Machine-Learning-Frameworks wie Caffe oder Tensorflow. Die Unterstützung von PyTorch soll demnächst auch verfügbar sein. Vitis KI ermöglicht es, neuronale Netze effizient auf FPGAs zu mappen und leistungsfähige Embedded-Anwendungen zu realisieren.
In Kombination mit einem System-on-Module (SOM), wie zum Beispiel dem Mars XU3 von Enclustra in Bild 1, das auf dem Xilinx Zynq UltraScale+ MPSoC basiert, in Kombination mit dem Mars ST3 Base Board lassen sich industrielle KI-Anwendungen schneller als je zuvor implementieren (Bild 7).
Um die Leistungsfähigkeit dieser Kombination und die kurzen Entwicklungszeiten zu demonstrieren, hat Enclustra innerhalb weniger Tage ein KI-basiertes Bilderkennungssystem entwickelt. Die Bilder nimmt eine Standard-USB-Kamera auf, die an das Mars ST3 angeschlossen ist. Das Mars ST3 verfügt auch über eine MIPI-Schnittstelle für den Fall, dass eine kompaktere Kamera benötigt wird.
Das Mars XU3 System-on-Module wird in das Mars ST3 Base Board eingesteckt und führt nicht nur die Inferenz des neuronalen Netzes aus, sondern kann auch zahlreiche weitere Aufgaben parallel ausführen, wie die Kommunikation mit einem Host-PC oder anderer Peripherie.
Das von Enclustra entwickelte Bilderkennungssystem ist als eigenständige Plattform ausgelegt. Das heißt auf dem Prozessorsystem läuft Linux und der Monitor, die Tastatur und die Maus sind direkt an das FPGA angeschlossen. Das neuronale Netzwerk, das die Bilder mit tiefer Latenzzeit klassifiziert, läuft im FPGA-Bereich des Mars XU3 SoM. Da das System verschiedene bewährte neuronale Netze wie ResNet-50 oder DenseNet unterstützt, war es ein leichtes, sowohl eine Echtzeiterkennung von Gesichtern als auch eine Bildklassifizierung zu realisieren.
Darüber hinaus spielt die FPGA-Technologie ihre Stärken aus, wenn es darum geht, alle Arten von hochdynamischen Aktoren gleichzeitig zu steuern. Zum Beispiel wäre es ein leichtes, den Enclustra Universal Drive Controller IP Core zur Steuerung von BLDC- oder Schrittmotoren zu integrieren. Noch nie war es so einfach, die unzähligen Möglichkeiten von künstlicher Intelligenz in einem Embedded-System zu nutzen.
(na)