Einführung in die Welt der künstlichen Intelligenz und das maschinelle Lernen (Teil 1) (Promotion) Was ist maschinelles Lernen?

In Teil 1 der Artikel-Serie geht es um die Einführung in neuronale Faltungsnetze.

Bild: iStock; Artystarty
08.03.2023

Wie ist ein neuronales Netzwerk aufgebaut? Welche Voraussetzungen müssen für das Training eines solchen Netzwerkes erfüllt sein und wie funktioniert das Erkennen von Objekten anhand des von Analog Devices entwickelten MAX78000 Mikrocontrollers? Unsere 3-teilige Artikelserie schafft Klarheit, wie KI und maschinelles Lernen in der Praxis funktionieren.

Schlagworte wie Künstliche Intelligenz (KI), Maschinelles Lernen (ML) oder neuronale Netzwerke begegnen uns in der technologischen Welt auf Schritt und Tritt und sind aus modernen Anwendungen nicht mehr wegzudenken. Doch was steckt dahinter? Wir nehmen Sie mit auf eine dreiteilige Reise, die bei den Grundlagen beginnt und bei den Anwendungen endet.

Klassisch linearer Programmablauf

In der Steuerungs- und Regelungstechnik besteht die Aufgabenstellung darin, einen oder mehrere Sensoren auszulesen, Sensordaten zu verarbeiten, hierauf regelbasiert zu reagieren und die Ergebnisse anzuzeigen oder weiterzuleiten. Eine Temperaturregelung misst im Sekundentakt die Temperatur, indem der Mikrocontroller (MCU) den Temperatursensor ausliest.

Dieser Wert dient dem Regelkreis als Eingangsdatum und wird in einer Schleife mit der Soll-Temperatur verglichen. Die hier dargestellte Anwendung läuft linear im Mikrocontroller ab. Es gibt hinsichtlich der Ist- und Soll-Werte keinerlei Anlass zur Annahme, dass das Ergebnis nicht eindeutig ist und der vorgegebene Regelkreis nicht wie gewünscht arbeitet.

Komplexe Muster- und Signalverarbeitung

Zudem existieren eine Vielzahl von Anwendungen, in denen mit Eingangsdaten gearbeitet wird, die durch eine Mustererkennung erst interpretiert werden müssen. Eine Mustererkennung kann auf unterschiedliche Datenstrukturen angewendet werden. In unseren Beispielen beschränken wir uns auf ein- und zweidimensionale Datenstrukturen. Beispiele hier sind: Audiosignale, Elektrokardiogramm (EKG), Photoplethysmographie (PPG), Vibrationen für eindimensionale Daten und Bilder, Thermografien, Wasserfalldiagramme für zweidimensionale Daten.

Bei einer Mustererkennung wie in den genannten Beispielen ist eine Umsetzung der Anwendung in klassischem Code für Mikrocontroller extrem schwierig. Ein Beispiel ist die Erkennung eines Objektes (etwa einer Katze) innerhalb eines Bildes. Hierbei spielt es keine Rolle, ob das Bild einer früheren Aufnahme oder einem gerade eben erst ausgelesenem Kamerasensor analysiert werden soll. Die Analysesoftware würde regelbasiert Muster suchen, die einer Katze zuzuschreiben sind: die typischen spitz aufstehenden Ohren, die dreieckige Nase oder Schnurrhaare. Wenn diese Merkmale im Bild erkennbar sind, würde die Software einen Katzenfund melden.

Jetzt stellt sich allerdings die Frage: Was macht die Mustererkennung, wenn die Katze nur von hinten zu erkennen ist? Was passiert, wenn sie keine Schnurrhaare mehr hat oder auf Grund eines Unfalls verstümmelt ist? Auch wenn diese Ausnahmen unwahrscheinlich erscheinen, müsste der Code einer Mustererkennung eine Vielzahl von zusätzlichen Regeln prüfen, die alle möglichen Anomalien abdecken. Selbst bei unserem recht einfachen Beispiel würde das Regelwerk der Software sehr schnell äußerst umfangreich werden.

Regelwerk versus neuronales Lernen

Die Idee der künstlichen Intelligenz (KI) besteht nun darin, das menschliche Lernen in sehr kleinem Maßstab nachzuahmen. Anstatt eine Vielzahl von „Wenn-dann-Regeln“ zu formulieren, modellieren wir eine universelle „Mustererkennungsmaschine“. Der wesentliche Unterschied zwischen den beiden Ansätzen besteht nun darin, dass eine KI im Gegensatz zum Regelwerk kein eindeutiges Ergebnis liefert. Anstatt zu melden: „Ich habe im Bild eine Katze erkannt“ lautet das Ergebnis beim maschinellen Lernen: „Die Wahrscheinlichkeit, dass im Bild eine Katze zu sehen ist, liegt bei 97,5 Prozent. Es könnte aber auch ein Leopard (2,1 Prozent) oder ein Tiger (0,4 Prozent) sein“. Das bedeutet, der Entwickler einer solchen Anwendung muss am Schluss des Mustererkennungsprozesses eine Entscheidung treffen. Um dies zu erreichen, wird eine Triggerschwelle verwendet.

Ein weiterer Unterschied besteht darin, dass unsere Mustererkennungsmaschine vorher nicht mit festen Regeln bestückt wird. Anstatt dessen wird sie angelernt. In diesem Lernprozess wird einem neuronalen Netzwerk, eine Vielzahl von Katzenbildern gezeigt. Am Ende ist dieses Netzwerk nun in der Lage, eigenständig zu erkennen, ob sich im Bild eine Katze befindet oder nicht. Das Entscheidende ist, dass eine korrekte Erkennung später nicht auf bereits bekannte Trainingsbilder beschränkt ist. Dieses neuronale Netzwerk gilt es in einem Mikrocontroller (MCU) abzubilden.

Das Innere der Mustererkennungsmaschine

Ein technisch-basiertes neuronales Netzwerk besteht ebenfalls aus Neuronen. Ein Neuron besitzt, ähnlich wie sein biologisches Pendant, auch in der Welt der KI mehrere Eingänge und einen Ausgang. Im Grunde ist solch ein Neuron nichts anderes als eine lineare Transformation der Eingänge – das Multiplizieren der Eingänge mit einer Zahl (Gewichte, w) und der Addition einer Konstanten (Bias, b) – gefolgt von einer festen, nicht-linearen Funktion, die auch Aktivierungsfunktion genannt wird.

Diese Aktivierungsfunktion dient als einziger nicht linearer Bestandteil des Netzwerks dazu, den Wertebereich zu definieren, in dem ein künstliches Neuron feuert. Mathematisch lässt sich die Funktion eines Neurons, mit out=f(w*x+b) beschreiben, wobei f die Aktivierungsfunktion, w die Gewichte, x die Eingangsdaten und b die Bias darstellen. Die Daten können als einzelne Skalare, als Vektoren oder in Matrixform auftreten. Neuronen in einem Netzwerk werden immer in Layern angeordnet.

Wir beschäftigen uns in dieser Artikelreihe ausschließlich mit faltungsneuronalen Netzen. Es gibt daneben noch eine ganze Reihe anderer Netzwerktypen, diese hier zu diskutieren würde aber zu weit führen. Die Anwendungsgebiete der Convolutional Neuronal Networks (CNN) liegen hauptsächlich in den Bereichen der Mustererkennung beziehungsweise in der Klassifizierung von Objekten, die in Eingangsdaten enthaltenen sind. Diese Netze sind in verschiedene Bereiche unterteilt: ein Input-, mehrere Hidden- und ein Outputlayer.

Alle Ausgänge der Neuronen sind jeweils mit allen Eingängen der nachfolgenden Schicht verbunden. Dieses Netzwerk ist nicht in der Lage, sinnvolle Aufgaben zu bearbeiten, und dient hier nur einer Verdeutlichung: Selbst in einem so kleinen Netzwerk gibt es jeweils 32 Bias und Gewichte in der mathematischen Gleichung, die das Netzwerk beschreibt.

Eine sehr weit verbreitete Anwendung (Cifar) beschäftigt sich mit der Erkennung von Objekten in Bildern. Die Farbbilder, die dem Netzwerk präsentiert werden, haben eine Auflösung von 32 Pixeln in vertikaler und horizontaler Richtung. Auch derart kleine Anwendungen wie das Cifar-Netzwerk bestehen aus hunderten von Neuronen in jedem Layer und vielen hintereinander geschalteten Layern. Insgesamt wächst die Anzahl der Gewichte und Bias mit der Komplexität und Größe des Netzes rapide an – im Beispiel von Cifar sind es schon um die 200.000 Parameter, die während des Trainingsprozesses später bestimmt werden müssen.

Der Name Faltung oder Convolution bezieht sich auf die Tatsache, dass in einigen Hidden-Layern die Operation der mathematischen Faltung durchgeführt wird, die als Filter verstanden werden kann. Der Ausgangswert einer Faltung ist immer dann besonders hoch, wenn die beiden zu vergleichenden Eingangswerte sich ähneln. Die hierzu verwendete Filtermatrix wird in der Welt der KI auch als Kernel bezeichnet. Das Ergebnis einer solchen Faltung ist wieder eine Matrix, die Feature Map. Genau hier wird klar, was ein CNN von anderen Netzen differenziert: Durch die Filterung werden die Eingangsdaten sukzessive auf Eigenschaften untersucht. Mit steigender Anzahl der hintereinander geschalteten Convolutional Layer nimmt auch der Detailgrad zu, der erkannt werden kann. Ausgehend von einfachen Objekteigenschaften, wie etwa Kanten oder Punkte nach der ersten Faltung, geht es um detaillierte Strukturen, wie Ecken, Kreise, Rechtecke und so weiter nach der zweiten. Merkmale nach der dritten Faltung stellen komplexe Muster dar, die Teilen von Objekten in Bildern ähneln, und die in der Regel ein einzigartiges Merkmal dieser Objektklasse sind. In unserem Eingangsbeispiel wären das die Schnurrhaare oder Ohren unserer Katze. Die Visualisierung der Feature Maps ist zwar für die Anwendung selbst nicht notwendig, kann aber das Verständnis der Faltung unterstützen.

Auf jede Faltungsoperation folgt in CNNs oft ein Pooling, in der Literatur oft auch als Subsampling beschrieben. Dies dient der Reduktion der Auflösung der Daten. Wenn man sich eine Feature Maps anschaut, fällt auf, dass große Bereiche keine oder wenig aussagekräftige Informationen enthalten. Das liegt daran, dass die Schnurrhaare unserer Katze nicht das ganze Bild, sondern eben nur einen kleinen Teil hiervon einnehmen. Der restliche Bildbereich wird in dieser Feature Map nicht verwendet und ist daher für die Klassifizierung nicht relevant. In einem Poolinglayer wird neben der Art des Poolings (MaxPooling, AveragePooling) auch die Fenstermatrixgröße angegeben. Diese Fenstermatrix wird beim Poolingvorgang schrittweise über die Eingangsdaten geschoben. Beim MaxPooling wird zum Beispiel der jeweils größte Datenwert aus dem Fenster übernommen. Alle anderen Werte werden verworfen. Auf diese Weise reduzieren sich die Daten immer weiter und bilden am Ende zusammen mit den Faltungen die oben erwähnten einzigartigen Eigenschaften einer jeweiligen Objektklasse.

Das Resultat dieser Gruppen aus Faltung und Pooling sind immer noch eine Vielzahl von zweidimensionalen Matrizen. Damit unser eigentliches Ziel der Klassifizierung erreicht wird, wandeln wir die 2D-Daten in einen sehr langen eindimensionalen Vektor um. Diese Umwandlung geschieht in einem sogenannten Flattenlayer, der von einem oder zwei Fully Connected Layer gefolgt wird. Die Neuronen in den letzten beiden Layertypen gleichen der Struktur eines kleinen Netzes mit drei Eingängen und einem Ausgang. Die letzte Schicht unseres neuronalen Netzwerks hat exakt so viele Ausgänge, wie es zu unterscheidende Klassen gibt. Zudem werden im letzten Layer die Daten noch normiert, sodass eine Wahrscheinlichkeitsverteilung zustande kommt (97,5 Prozent Katze, 2,1 Prozent Leopard, 0,4 Prozent Tiger).

Damit ist die eigentliche Modellierung unseres neuronalen Netzwerks abgeschlossen. Korrekt arbeiten kann es allerdings zu diesem Zeitpunkt noch nicht. Die oben beschriebenen Gewichte und Inhalte von Kernel- und Filtermatrizen sind unbekannt und müssen erst noch durch das Training des Netzwerks bestimmt werden. Wie genau das funktioniert und welche Voraussetzungen erfüllt sein müssen, werde ich im nächsten Teil der Artikelserie genauer erläutern. Im dritten und letzten Teil beschäftigen wir uns schlussendlich damit, wie wir unser geschaffenes neuronales Netz zur Erkennung einer Katze in Hardware umsetzen. Hierfür werden wir die von ADI entwickelte MAX78000 MCU mit Hardwarebeschleuniger für CNNs verwenden.

Teil 2 der Artikel-Serie: Training eines neuronalen Netzes

Teil 3 der Artikel-Serie: Neuronales Netzwerk in Hardware umsetzen

Bildergalerie

  • Die Abbildung zeigt ein Neuron mit drei Eingängen und einem Ausgang inklusive einer AF-Aktivierungsfunktion.

    Die Abbildung zeigt ein Neuron mit drei Eingängen und einem Ausgang inklusive einer AF-Aktivierungsfunktion.

    Bild: Analog Devices

  • Die Grafik zeigt (links) ein komplettes CNNs (Cifar-10) und ein sehr kleines neuronales Netz (rechts) mit drei Eingängen, einem Hiddenlayer mit fünf Neuronen und einem Ausgangs-Layer mit vier Ausgängen.

    Die Grafik zeigt (links) ein komplettes CNNs (Cifar-10) und ein sehr kleines neuronales Netz (rechts) mit drei Eingängen, einem Hiddenlayer mit fünf Neuronen und einem Ausgangs-Layer mit vier Ausgängen.

    Bild: Analog Devices

  • Abbildung eines kompletten CNNs: Cifar-10

    Abbildung eines kompletten CNNs: Cifar-10

    Bild: Analog Devices

  • Visualisierte Feature Maps eines CNN

    Visualisierte Feature Maps eines CNN

    Bild: Analog Devices

Firmen zu diesem Artikel
Verwandte Artikel