Ein Convolutional Neural Network (CNN) ist eine Art von vorwärtsgekoppeltem neuronalen Netz, das Merkmale durch Filter- (oder Kernel-)Optimierung lernt. Diese Art von Deep-Learning-Netzwerk wurde angewendet, um viele verschiedene Datentypen zu verarbeiten und Vorhersagen zu treffen, darunter Text, Bilder und Audio. CNNs sind der De-facto-Standard bei Deep-Learning-basierten Ansätzen für Computer Vision und Bildverarbeitung und wurden erst in jüngster Zeit in einigen Fällen durch neuere Architekturen wie den Transformer ersetzt.
CNNs werden auch als verschiebungsinvariante oder rauminvariante künstliche neuronale Netze bezeichnet, basierend auf der Architektur mit gemeinsamen Gewichten der Faltungs-Kernel oder -Filter, die entlang der Eingabemerkmale gleiten und translationsäquivariante Antworten erzeugen, die als Feature-Maps bezeichnet werden. Wider Erwarten sind die meisten Convolutional Neural Networks nicht invariant gegenüber Translation, aufgrund der Downsampling-Operation, die sie auf die Eingabe anwenden.
Architektur
Ein Convolutional Neural Network besteht aus einer Eingabeschicht, verborgenen Schichten und einer Ausgabeschicht. In einem Convolutional Neural Network umfassen die verborgenen Schichten eine oder mehrere Schichten, die Faltungen durchführen. Typischerweise umfasst dies eine Schicht, die ein Skalarprodukt des Faltungs-Kernels mit der Eingabematrix der Schicht durchführt. Dieses Produkt ist üblicherweise das Frobenius-Innenprodukt, und seine Aktivierungsfunktion ist üblicherweise ReLU. Während der Faltungs-Kernel entlang der Eingabematrix der Schicht gleitet, erzeugt die Faltungsoperation eine Feature-Map, die wiederum zum Eingang der nächsten Schicht beiträgt. Danach folgen weitere Schichten wie Pooling-Schichten, vollständig verbundene Schichten und Normalisierungsschichten.
Faltungsschichten
In einem CNN ist die Eingabe ein Tensor mit der Form: (Anzahl der Eingaben) × (Eingabehöhe) × (Eingabebreite) × (Eingabekanäle). Nach dem Durchlaufen einer Faltungsschicht wird das Bild zu einer Feature-Map abstrahiert, auch Aktivierungs-Map genannt, mit der Form: (Anzahl der Eingaben) × (Feature-Map-Höhe) × (Feature-Map-Breite) × (Feature-Map-Kanäle). Faltungsschichten falten die Eingabe und leiten ihr Ergebnis an die nächste Schicht weiter. Dies ähnelt der Reaktion eines Neurons im visuellen Kortex auf einen bestimmten Reiz. Jedes Faltungs-Neuron verarbeitet Daten nur für sein rezeptives Feld.
Obwohl vollständig verbundene Feedforward-Neuronale Netze verwendet werden können, um Merkmale zu lernen und Daten zu klassifizieren, ist diese Architektur für größere Eingaben (z. B. hochauflösende Bilder) im Allgemeinen unpraktisch, da sie massive Anzahlen von Neuronen erfordern würde, weil jedes Pixel ein relevantes Eingabemerkmal ist. Eine vollständig verbundene Schicht für ein Bild der Größe 100 × 100 hat 10.000 Gewichte für jedes Neuron in der zweiten Schicht. Faltung reduziert die Anzahl der freien Parameter und ermöglicht es dem Netzwerk, tiefer zu sein. Beispielsweise erfordert die Verwendung einer 5 × 5-Kachelregion, jeweils mit denselben gemeinsamen Gewichten, nur 25 Neuronen. Die Verwendung gemeinsamer Gewichte bedeutet, dass es viel weniger Parameter gibt, was hilft, die Probleme der verschwindenden Gradienten und explodierenden Gradienten zu vermeiden, die beim Backpropagation in früheren neuronalen Netzen auftraten.
Um die Verarbeitung zu beschleunigen, können Standard-Faltungsschichten durch tiefenweise separable Faltungsschichten ersetzt werden, die auf einer Tiefenfaltung gefolgt von einer Punktfaltung basieren. Die Tiefenfaltung ist eine räumliche Faltung, die unabhängig auf jedem Kanal des Eingabetensors angewendet wird, während die Punktfaltung eine Standard-Faltung ist, die auf die Verwendung von 1 × 1-Kerneln beschränkt ist.
Pooling-Schichten
Convolutional Networks können lokale und/oder globale Pooling-Schichten zusammen mit traditionellen Faltungsschichten enthalten. Pooling-Schichten reduzieren die Dimensionen der Daten, indem sie die Ausgaben von Neuronengruppen in einer Schicht zu einem einzelnen Neuron in der nächsten Schicht kombinieren. Lokales Pooling kombiniert kleine Gruppen, wobei Kachelgrößen wie 2 × 2 üblich sind. Globales Pooling wirkt auf alle Neuronen der Feature-Map. Es gibt zwei häufige Arten von Pooling: Max- und Average-Pooling. Max-Pooling verwendet den Maximalwert jeder lokalen Neuronengruppe in der Feature-Map, während Average-Pooling den Durchschnittswert nimmt.
Vollständig verbundene Schichten
Vollständig verbundene Schichten verbinden jedes Neuron in einer Schicht mit jedem Neuron in einer anderen Schicht. Dies ist dasselbe wie ein traditionelles Multilayer-Perzeptron-Neuronales Netz (MLP). Jedes Neuron in der vollständig verbundenen Schicht erhält Eingaben von allen Neuronen der vorherigen Schicht. Diese Eingaben werden gewichtet und mit den entsprechenden Bias-Werten summiert und dann durch eine Aktivierungsfunktion geleitet, um eine nichtlineare Transformation durchzuführen und die Ausgabe zu erzeugen. Die abgeflachte Matrix durchläuft eine vollständig verbundene Schicht, um die Bilder zu klassifizieren.
Biologische Inspiration
Convolutional Networks wurden von biologischen Prozessen inspiriert, da das Verbindungsmuster zwischen Neuronen der Organisation des visuellen Kortex von Tieren ähnelt. Einzelne kortikale Neuronen reagieren nur auf Reize in einer begrenzten Region des visuellen Feldes, die als rezeptives Feld bezeichnet wird. Die rezeptiven Felder verschiedener Neuronen überlappen sich teilweise, sodass sie das gesamte visuelle Feld abdecken. Diese biologische Analogie motivierte das Design von Faltungsschichten, in denen jedes Neuron Eingaben aus einer lokalen Region verarbeitet und so die Struktur des rezeptiven Feldes nachahmt.
Regularisierung und Überanpassung
Feedforward-Neuronale Netze sind in der Regel vollständig verbundene Netze, das heißt, jedes Neuron in einer Schicht ist mit allen Neuronen der nächsten Schicht verbunden. Die „vollständige Verbundenheit“ dieser Netze macht sie anfällig für Überanpassung an Daten. Typische Methoden zur Regularisierung oder zur Verhinderung von Überanpassung umfassen das Bestrafen von Parametern während des Trainings (wie Gewichtsabnahme) oder das Beschneiden der Verbindungen (Skip-Connections, Dropout usw.). Robuste Datensätze erhöhen auch die Wahrscheinlichkeit, dass CNNs die verallgemeinerten Prinzipien lernen, die einen bestimmten Datensatz charakterisieren, anstatt die Verzerrungen eines schlecht besetzten Datensatzes. Darüber hinaus reduziert die Architektur mit gemeinsamen Gewichten von CNNs inhärent die Anzahl der Parameter, was eine Form der Regularisierung darstellt, die hilft, Überanpassung zu mildern.
Anwendungen
Einige Anwendungen von CNNs umfassen Bild- und Videoerkennung, Empfehlungssysteme, Bildklassifikation, Bildsegmentierung, medizinische Bildanalyse, Verarbeitung natürlicher Sprache, Gehirn-Computer-Schnittstellen und Finanzzeitreihen. In der Computer Vision wurden CNNs häufig für Aufgaben wie Objekterkennung, Gesichtserkennung und autonomes Fahren eingesetzt. In der Verarbeitung natürlicher Sprache wurden CNNs auf Textklassifikation und Stimmungsanalyse angewendet, obwohl sie in vielen solchen Aufgaben weitgehend durch Transformer-basierte Modelle ersetzt wurden. Die Vielseitigkeit von CNNs beruht auf ihrer Fähigkeit, hierarchische Merkmale zu lernen, von niedrigstufigen Kanten bis zu hochstufigen semantischen Konzepten.
Vorteile und Einschränkungen
CNNs benötigen im Vergleich zu anderen Bildklassifikationsalgorithmen relativ wenig Vorverarbeitung. Das bedeutet, dass das Netzwerk lernt, die Filter (oder Kernel) durch automatisiertes Lernen zu optimieren, während diese Filter in traditionellen Algorithmen von Hand entwickelt werden. Dies vereinfacht und automatisiert den Prozess, erhöht Effizienz und Skalierbarkeit und überwindet Engpässe durch menschliche Eingriffe. Allerdings sind CNNs aufgrund von Downsampling-Operationen nicht inhärent translationsinvariant, was bei bestimmten Aufgaben eine Einschränkung darstellen kann. Darüber hinaus, obwohl CNNs in der Computer Vision dominant waren, haben neuere Architekturen wie Transformer begonnen, sie in einigen Anwendungen zu ersetzen, insbesondere wenn große Datenmengen und Rechenressourcen verfügbar sind.
Beziehung zu anderen Arten neuronaler Netze
CNNs sind eine spezialisierte Form von neuronalen Netzen und eine Teilmenge der Deep-Learning-Architekturen. Sie unterscheiden sich von vollständig verbundenen Netzen durch ihre Verwendung von Faltungs- und Pooling-Schichten, die die Parameteranzahl reduzieren und eine hierarchische Merkmalsextraktion ermöglichen. Im Vergleich zu Transformatoren, die auf Aufmerksamkeitsmechanismen beruhen, verwenden CNNs lokale rezeptive Felder und gemeinsame Gewichte, was sie für gitterartige Daten parametereffizienter macht, aber ohne zusätzliche Modifikationen weniger geeignet, langreichweitige Abhängigkeiten zu erfassen. Trotz des Aufstiegs der Transformatoren bleiben CNNs eine grundlegende Architektur im maschinellen Lernen und werden weiterhin in Hybridmodellen verwendet, die konvolutionäre und aufmerksamkeitsbasierte Komponenten kombinieren.
Zukünftige Richtungen
Die Forschung verbessert CNNs weiterhin, einschließlich Entwicklungen bei tiefenweise separablen Faltungen für Effizienz, Residualverbindungen zur Bewältigung verschwindender Gradienten und der Integration mit anderen Architekturen. Techniken wie Batch-Normalisierung und Dropout werden häufig verwendet, um das Training zu stabilisieren und Überanpassung zu verhindern. Ab den frühen 2020er Jahren bleiben CNNs ein Standardwerkzeug in der Computer Vision, aber ihre Dominanz wird durch transformerbasierte Modelle herausgefordert, insbesondere in großen Maßstäben. Laufende Arbeiten zielen darauf ab, die Stärken beider Ansätze zu kombinieren, was zu robusteren und effizienteren Modellen für eine breite Palette von Anwendungen führt.