Convolutional Neural Networks (CNNs) sind eine Klasse tiefer neuronaler Netzwerke, die häufig für Bilderkennungs- und Klassifizierungsaufgaben verwendet werden. Sie eignen sich besonders gut für die Verarbeitung von Daten mit gitterartiger Topologie, wie z. B. Bilder. Die Architektur von CNNs ist darauf ausgelegt, räumliche Hierarchien von Merkmalen automatisch und adaptiv aus Eingabebildern zu lernen. Dies wird hauptsächlich durch die Verwendung von Faltungsschichten, Pooling-Schichten und vollständig verbundenen Schichten erreicht.
Der Prozess der Merkmalsextraktion in CNNs umfasst mehrere Schritte, von denen jeder das Eingabebild schrittweise in eine Reihe von Merkmalskarten umwandelt. Diese Merkmalskarten erfassen verschiedene Aspekte des Bildes, wie Kanten, Texturen und komplexere Muster. Um zu verstehen, ob CNNs das Bild im Allgemeinen zunehmend in Merkmalskarten komprimieren, ist es wichtig, die Funktionsmechanik jedes Schichttyps innerhalb eines CNN zu berücksichtigen.
Faltungsschichten
Die Faltungsschicht ist der zentrale Baustein eines CNN. Sie wendet eine Reihe lernbarer Filter (oder Kernel) auf das Eingabebild an. Jeder Filter ist eine kleine Matrix, normalerweise der Größe 3×3, 5×5 oder 7×7, die über das Eingabebild gleitet und eine elementweise Multiplikation gefolgt von einer Summierung durchführt. Diese Operation wird als Faltung bezeichnet. Das Ergebnis dieser Faltungsoperation ist eine Merkmalskarte.
Der Hauptzweck der Faltungsschicht besteht darin, lokale Muster im Eingabebild zu erkennen. Die erste Faltungsschicht kann beispielsweise Kanten erkennen, die zweite Schicht Texturen und die nachfolgenden Schichten komplexere Muster wie Formen oder Objekte. Die Tiefe der Merkmalskarten nimmt mit jeder Faltungsschicht zu, was bedeutet, dass das Netzwerk mit zunehmender Tiefe einen umfangreicheren Satz von Merkmalen lernt.
Pooling von Schichten
Nach den Faltungsschichten werden normalerweise Poolingschichten verwendet, um die räumlichen Dimensionen (Breite und Höhe) der Feature-Maps zu reduzieren. Die häufigste Form des Poolings ist das Max-Pooling, bei dem der Maximalwert aus einer Reihe von Werten innerhalb eines definierten Fensters (z. B. 2 × 2 oder 3 × 3) verwendet wird. Eine andere Form ist das Average-Pooling, bei dem der Durchschnitt der Werte innerhalb des Fensters verwendet wird.
Pooling-Ebenen dienen zwei Hauptzwecken:
1. Reduzierung der Dimensionalität: Durch die Reduzierung der räumlichen Dimensionen der Feature-Maps tragen Pooling-Ebenen dazu bei, die Rechenkomplexität und die Anzahl der Parameter im Netzwerk zu verringern. Dadurch wird das Netzwerk effizienter und weniger anfällig für Überanpassung.
2. Übersetzungsinvarianz: Pooling trägt dazu bei, das Netzwerk robuster gegenüber Verschiebungen des Eingabebildes zu machen. Wenn sich beispielsweise ein Objekt im Bild leicht verschiebt, erfassen die gepoolten Feature-Maps dennoch die wesentlichen Merkmale des Objekts.
Vollständig verbundene Ebenen
Nach mehreren Faltungs- und Pooling-Schichten werden die Feature-Maps normalerweise in einen eindimensionalen Vektor abgeflacht und durch eine oder mehrere vollständig verbundene Schichten geleitet. Diese Schichten ähneln denen in herkömmlichen neuronalen Netzwerken und werden für hochrangiges Denken und Klassifizieren verwendet. Die Ausgabe der letzten vollständig verbundenen Schicht wird normalerweise durch eine Softmax-Aktivierungsfunktion geleitet, um die Wahrscheinlichkeiten für jede Klasse zu erzeugen.
Komprimierung von Informationen
Kommen wir nun zur Kernfrage: Komprimiert ein CNN das Bild im Allgemeinen immer mehr in Feature-Maps? Die Antwort ist differenziert und hängt davon ab, was mit „Komprimierung“ gemeint ist.
1. Räumliche Komprimierung: Ja, CNNs komprimieren die räumlichen Dimensionen des Bildes durch die Verwendung von Pooling-Schichten. Wenn beispielsweise ein Eingabebild der Größe 256×256 durch eine Reihe von Faltungs- und Pooling-Schichten geleitet wird, sind die räumlichen Dimensionen der resultierenden Feature-Maps deutlich kleiner. Diese räumliche Komprimierung trägt dazu bei, die Rechenkomplexität und die Anzahl der Parameter im Netzwerk zu reduzieren.
2. Feature-Darstellung: Während die räumlichen Dimensionen komprimiert werden, nimmt die Tiefe (Anzahl der Kanäle) der Feature-Maps normalerweise zu. Das bedeutet, dass das Netzwerk komplexere und abstraktere Features lernt, je tiefer wir vordringen. In diesem Sinne komprimiert das Netzwerk die Informationen nicht, sondern wandelt sie in eine informativere und differenziertere Darstellung um.
Beispiel
Betrachten Sie eine einfache CNN-Architektur zur Bildklassifizierung:
1. Eingabeebene: Ein Eingabebild der Größe 32 x 32 x 3 (Breite x Höhe x Kanäle).
2. Erste Faltungsschicht: Wendet 32 Filter der Größe 3×3 an, was zu einer Feature-Map der Größe 32x32x32 führt.
3. Erste Pooling-Schicht: Wendet Max Pooling mit einem 2×2-Fenster an, was zu einer Feature-Map der Größe 16x16x32 führt.
4. Zweite Faltungsschicht: Wendet 64 Filter der Größe 3×3 an, was zu einer Feature-Map der Größe 16x16x64 führt.
5. Zweite Pooling-Schicht: Wendet Max Pooling mit einem 2×2-Fenster an, was zu einer Feature-Map der Größe 8x8x64 führt.
6. Vollständig verbundene Ebene: Reduziert die Feature-Map auf einen Vektor der Größe 4096 und verbindet ihn mit einer vollständig verbundenen Ebene.
In diesem Beispiel werden die räumlichen Dimensionen der Feature-Maps von 32×32 auf 8×8 reduziert, was eine Form der Komprimierung darstellt. Die Tiefe der Feature-Maps erhöht sich jedoch von 3 auf 64, was darauf hinweist, dass das Netzwerk komplexere Features lernt.
Convolutional Neural Networks komprimieren tatsächlich die räumlichen Dimensionen des Eingabebildes durch Pooling-Schichten, was zur Reduzierung der Rechenkomplexität und zum Erreichen von Translationsinvarianz beiträgt. Diese räumliche Komprimierung geht jedoch mit einer Zunahme der Tiefe der Merkmalskarten einher, was bedeutet, dass das Netzwerk zunehmend komplexere und abstraktere Merkmale lernt. Während die räumlichen Dimensionen komprimiert werden, wird die Merkmalsdarstellung daher umfangreicher und informativer, sodass das Netzwerk anspruchsvolle Aufgaben wie Bildklassifizierung und Objekterkennung effektiv ausführen kann.
Weitere aktuelle Fragen und Antworten zu Grundlagen der Faltungs-Neuronalen Netze:
- TensorFlow kann nicht als Deep-Learning-Bibliothek zusammengefasst werden.
- Faltungsneuronale Netze stellen derzeit den Standardansatz für Deep Learning zur Bilderkennung dar.
- Warum steuert die Batchgröße die Anzahl der Beispiele im Batch beim Deep Learning?
- Warum muss die Batchgröße beim Deep Learning in TensorFlow statisch festgelegt werden?
- Muss die Batchgröße in TensorFlow statisch festgelegt werden?
- Wie werden Faltungen und Pooling in CNNs kombiniert, um komplexe Muster in Bildern zu lernen und zu erkennen?
- Beschreiben Sie die Struktur eines CNN, einschließlich der Rolle der verborgenen Schichten und der vollständig verbundenen Schicht.
- Wie vereinfacht Pooling die Feature-Maps in einem CNN und was ist der Zweck von Max Pooling?
- Erklären Sie den Prozess von Faltungen in einem CNN und wie sie dabei helfen, Muster oder Merkmale in einem Bild zu identifizieren.
- Was sind die Hauptkomponenten eines Convolutional Neural Network (CNN) und welchen Beitrag leisten sie zur Bilderkennung?

