Über unsMediaKontaktImpressum
Prof. Dr. Uli Schell 23. Januar 2024

Neuronale Netze und Faltung

Künstliche Intelligenz (KI) und Maschinelles Lernen sind in vielen Bereichen zu einem mächtigen Wettbewerbsfaktor geworden. Beispielsweise bei der Bilderkennung ist ihr Einsatz gängige Praxis. Hier werden in der Regel Convolutional Neural Networks (auch CNN, CNV oder Faltungs-Netze genannt) erfolgreich eingesetzt.

In diesem Artikel wird auf das Prinzip der Faltung bei CNN eingegangen. In der physikalischen Optik ist die Faltung ein gängiges Werkzeug. Dieses Prinzip und seine Übertragbarkeit wird in diesem Artikel ebenso aufgegriffen.

Einfache Neuronale Netze

Bereits 1958 war es Frank Rosenblatt und Charles Wightman mit dem Neurocomputer Mark I Perceptron gelungen, mit einem 20x20 Pixel großen Bildsensor einfache Ziffern zu erkennen, was für Aufsehen gesorgt hatte [1]. Danach herrschte für einige Zeit Schweigen auf dem Gebiet der Künstlichen Intelligenz ("KI-Winter"). Im Stillen wurde dennoch an Technik und Methoden gearbeitet.

Im Jahr 1999 wurde der MNIST-Datensatz (Modified National Institute of Standards and Technology) veröffentlicht. Dies sind handgeschriebene Ziffern, die hälftig von Gymnasiasten und hälftig von Mitarbeitern des United States Census Bureau erstellt wurden [2]. Es fanden Wettbewerbe statt, um die Zeichen zu erkennen. Die Ergebnisse fanden vielfach Beachtung.

Der MNIST-Datensatz diente lange als Grundlage für das Benchmarking von Klassifikationsalgorithmen. Er ist unterteilt in Trainings-/Testbilder und Labels mit 60.000 bzw. 10.000 Zeichen [3]. Jedes Zeichen kann als Matrix mit 28 Zeilen x 28 Spalten in Grauwerten von 0 bis 255 betrachtet werden. Die Zeichen sind zentriert und skaliert, sodass jeweils die beiden äußeren Spalten und Zeilen leer bleiben.

Die ersten 15 Zeichen werden in Abb. 1 gezeigt. Einige Zeichen sind recht gut erkennbar, andere schon schwieriger zu entziffern.

Ein einfacher Ansatz besteht darin, die Matrix eines Zeichens in ein eindimensionales Array zu überführen. Damit hat jedes Zeichen 784 Spalten (Merkmale), welche dann unabhängig von der Entfernung jeweiliger benachbarter Bildpunkte betrachtet werden.

An diesen Datensätzen kann man nun mit einer Vielzahl von Verfahren eine Klassifikation durchführen, beispielsweise mit der (multivariaten) logistischen Regression oder mit Entscheidungsbäumen und deren Varianten sowie auch mit neuronalen Netzen.

Das Unternehmen H2O stellt ein frei zugängliches Framework zur Verfügung, welches sowohl klassische statistische Verfahren als auch neuronale Netze (jedoch keine CNV) bei Lernvorgängen unterstützt [4]. Man kann einen Lernvorgang mit einem kompletten Ensemble von Verfahren automatisch durchführen lassen (Automl), wobei auch Regularisierung unterstützt wird. Auch Ähnlichkeiten unter den Modellen können mittels hierarchischem Clustering erkennbar gemacht werden. Hiermit gelingt eine Fehlklassifikationsrate von 0 Prozent bei den Trainingsdaten bzw. 1,8 Prozent bei den Testdaten.

Der große Nachteil bei diesem einfachen Ansatz besteht darin, dass bereits bei der Verschiebung eines Zeichens um eine Zeile oder Spalte die bisherigen Lernergebnisse nicht verwendet werden können, weil die einzelnen Bildpunkte ihre Nachbarn nicht kennen. Baut man nun größere neuronale Netze mit einer Vielzahl von Layern auf, wächst auch die Anzahl der zu lernenden Parametern stark an. Dieser Nachteil kann durch Convolutional Networks vermieden werden.

Convolutional Networks

Wie funktioniert das menschliche Sehen eigentlich? Es gelingt, indem wir unsere Augen über ein Bild bewegen und Muster erkennen, über die wir dann eine Zuordnung vornehmen. Im Prinzip führen wir Faltungen durch.

Unter einer Faltung (Convolution) versteht man eine Abbildung einer Funktion f mithilfe einer anderen Funktion g, dem Kern. Betrachten wir in einem kleinen Beispiel ein Signal und den Kern in Abb. 2.

Der Kern mit der Wertefolge (1, 2, 3) wird nun von links nach rechts über das Signal mit der Wertefolge (1, 2, 3) bewegt. Hierbei wird spaltenweise das Produkt gebildet. Die Summe der Produkte ergibt das Teilergebnis für eine Stelle n.

Reihen wir die Teilergebnisse aneinander, haben wir das Ergebnis einer 1D-Faltung.

Die Faltung wird bei der Signalverarbeitung häufig als Glättungsmethode angewandt; der Kern eines gleitenden Durchschnitts der Ordnung 3 als Spezialfall der Faltungsoperationen hat die Werte (1/3, 1/3, 1/3).

Eine Faltung ist auch bei Tensoren höherer Ordnung (z. B. zweidimensionale Matrizen) anwendbar. Wir betrachten eine 5x5-Matrix, welche mit einem 3x3-Kern gefaltet werden soll.

Wir beginnen mit dem Kern an der Quelle links oben, multiplizieren alle zugehörigen Zellen miteinander und addieren auf. Dann gleiten wir mit dem Kern um eine Stelle nach rechts, führen die gleiche Operation wieder durch und am Ende der Zeile gehen wir links zur nächsten Zeile weiter, bis wir unten rechts angelangt sind. In Abb. 6 ist ein Beispiel einer 2D-Faltung gezeigt.

Dieser spezielle Kern ist so aufgebaut, dass er Kanten erkennen kann. Er wird auch Sobel-Filter genannt. Wenn man diesen Filter auf Abb. 7 links anwendet und noch eine Helligkeitsumkehr durchführt, entsteht ein Bild (Abb. 8), an dem man die Konturen leicht erkennen kann.

Bei der Bilderkennung mit neuronalen Netzen legt man nun neuronale Netze mit mehreren Faltungsschichten an, die alle mehrere Kerne aufweisen und bei denen die Werte (Parameter) zu Beginn mit Zufallszahlen initialisiert werden. Im Lernvorgang werden die Parameter der Kerne dann austariert. Einige Kerne werden sich auf das Erkennen von horizontalen oder vertikalen Linien spezialisieren, andere Kerne auf Kreis-Segmente etc. Aus einem zweidimensionalen Bild erhält man pro Kern dann je ein Zwischenbild, das als Feature Map bezeichnet wird. Durch eine Vielzahl von Kernen entsteht damit eine Vielzahl von Layern. Die große Menge von Datenpunkten reduziert man durch massive Verdichtung (pooling). Ein einfaches Modell besteht beispielsweise aus drei CNV-Layern. Am Ende wird dann die Schicht in ein lineares Array überführt (flatten) und auf ein letztes Array mit zehn Units verdichtet (Abb. 9). Auf diese Weise kann man schon mit wenigen Lernzyklen passable Ergebnisse erzielen.

Der Hauptvorteil besteht aber darin, dass bei einer Verschiebung der Bildinhalte das Netz nicht erneut angelernt werden muss.

ImageNet und Transfer Learning

Im Jahr 2010 wurde der jährliche Wettbewerb "ImageNet Large Scale Visual Recognition Challenge (ILSVRC)" mit dem Ziel gestartet, hochauflösende Bilder zu klassifizieren. Die Bilder wurden in einer Bilddatenbank mit mehreren Millionen Bildern abgelegt, dem ImageNet [5]. Die Bilder wurden mittels WordNet klassifiziert [6]. WordNet ist eine große lexikalische, öffentlich verfügbare Datenbank für Englisch, in der Substantive, Verben, Adjektive und Adverbien in Gruppen von kognitiven Synonymen (Synsets) gruppiert sind [7]. Aus diesem Wettbewerb entstand eine Menge von neuronalen Netzen mit verschiedenen Architekturen, welche frei verfügbar sind. Sie können zum einen dazu genutzt werden, um neue Bildinhalte nach dem Muster von ImageNet zu klassifizieren [8]. Ein relativ einfaches Netz ist VGG16 mit 16 Layern, welches zur Objekt-Erkennung (s. Abb. 10) eingesetzt werden kann [9].

Die Erkennungsleistung dieser Netze ist beeindruckend. Das hier verwendete neuronale Netz VGG16 ist logisch aufgeteilt in sechs Blöcke. In den ersten fünf Blöcken folgt auf jeweils zwei bzw. drei Convolutional Layer ein Max-Pooling Layer. Danach folgen drei Fully Connected Layer, welche die eigentliche Klassifizierung vornehmen. Bei ImageNet hat der letzte Layer 1.000 Units (Abb. 11) – eine je Klasse. VGG weist zwar über 138 Millionen Parameter auf, ist dennoch ein eher einfaches Modell im Vergleich zu anderen Modellen, welche beispielsweise in Tensorflow/Keras über die application_..()-Funktionen frei verfügbar sind.

Die antrainierten Faltungskerne können nun auch verwendet werden, um neue Netze zur Klassifikation mit vergleichsweise geringem Aufwand zusammenzustellen. Dies wird als Transfer Learning bezeichnet [10].

Man hält dazu die Gewichte der Faltungsschichten fest (man "friert sie ein") und lässt lediglich die Gewichte der Klassifikationsschicht lernen. Unerlässlich ist hierbei das Verständnis der generellen inneren Abläufe dieser Netze, um Sicherheitsüberprüfungen zu bestehen [11].

Faltung bei der optischen Beugung

Bei der Beugung am Spalt bedient man sich des Wellenbilds der Optik: Eine ebene Wellenfront trifft auf einen Spalt. Entlang des Spalts denkt man sich lauter Entstehungsorte von weiteren Elementarwellen, die sich überlagern und sich so in einigen Richtungen verstärken, in anderen Richtungen auslöschen.

Sind die Lichtquelle und der Beobachtungsschirm sehr weit entfernt, spricht man von Fraunhofer-Beugung. Man kann sie ebenso durch eine geeignete Linsenanordnung realisieren. Bei der Fraunhofer-Beugung ist die Feldstärke-Verteilung im Beugungsbild das Raumfrequenz-Spektrum der Beugungsöffnung.

Kennt man also die Blendenfunktion f(x,y), muss man lediglich die Fourier-Transformierte für einen Wellenvektor |k|=2π/λ (Wellenlänge λ) bilden, um die Feldstärkeverteilung zu erhalten.

Auf dem Schirm beobachtet man eine Helligkeitsverteilung, welche durch das Quadrat der Feldstärkenverteilung (Quadrat der Foriertransformierten) beschrieben werden kann.

Bei Fouriertransformationen gilt der Faltungssatz.

Das heißt, ein Gitter, welches aus Blenden der Breite b zusammengesetzt ist, kann auch als Faltung eines Spalts mit einer periodischen Folge von Nadelimpulsen (Dirac-Funktionen) betrachtet werden. Zum Beugungsbild kommt man, indem man die Fouriertransformierten des Spalts und der Nadelimpuls-Folgen miteinander multipliziert (Abb. 14) [12].

Analog können auch nacheinander durchgeführte Faltungen behandelt werden. Kennt man also die Fouriertransformierten von Quelle und Faltungskernen, muss man lediglich ihre Transformierten miteinander multiplizieren, anstelle die Faltung zu berechnen. Mit einer Rücktransformation kommt man wieder zum Ergebnis der Faltung (sofern man das dann überhaupt benötigt). Dies kann insbesondere beim Transfer Learning hilfreich sein, wo man dann u. U. auf CVN verzichten kann.

Hologramme

Wo Räumlichkeit eine Rolle spielt, stößt die Erkennung von Gegenständen anhand von zweidimensionalen Bildern an ihre Grenzen. Beispielsweise steht man bei der Erkennung von Hautkrebs anhand von zweidimensionalen Bildern vor erheblichen Schwierigkeiten.

Eine Abbildungsmöglichkeit für dreidimensionale Objekte wurde 1940 von Dennis Gabor als Holografie-Verfahren entdeckt. Hierbei wird ein Strahl, der an einem Objekt gebeugt wurde, mit einem Referenzstrahl kombiniert und als Helligkeit auf einem Empfänger, z. B. einer Photoplatte, aufgezeichnet (Abb. 15).

Die Rekonstruktion gelingt, indem an der halbdurchlässigen photographischen Platte die Wellenfronten rekonstruiert werden können: Man beobachtet ein virtuelles Bild (Abb. 16).

Anstelle der Photoplatte kann man auch eine CCD-Kamera mit ausreichender Auflösung als Empfänger einsetzen. Hat man bei der Erzeugung des Hologramms auf ebene Wellenfronten geachtet, kann mit Hilfe der dreidimensionalen Fouriertransformation das dreidimensionale Objekt rekonstruiert werden. Über diese optische Informationsspeicherung lassen sich also dreidimensionale Objekte erkennen.

Zuvor sind aber noch einige Schritte notwendig: Man benötigt eine Bilddatenbank mit einer ausreichenden Anzahl von Bildern, welche nicht so einfach erzeugt werden können wie zweidimensionale Bilder. Weiterhin muss man ähnliche Bilder künstlich erzeugen können (Augmentation). Auch das Feature Learning muss bewerkstelligt werden, wobei man hier wohl nicht von vorne beginnen muss.

Durch die Hinzunahme der dritten Dimension bei der Objekterkennung mittels Holografie erschließen sich eine Fülle von Erkennungsmöglichkeiten, bei denen die Topologie eine Rolle spielt.

Autor

Prof. Dr. Uli Schell

Prof. Dr. Uli Schell lehrt an der Hochschule Kaiserslautern. Er ist Leiter der Technischen Akademie Südwest Kaiserslautern.
>> Weiterlesen
Das könnte Sie auch interessieren
Kommentare (0)

Neuen Kommentar schreiben