Was ist ein Convolutional Neural Network (CNN)?
Convolutional Neural Networks (ConvNets, CNN) sind künstliche neuronale Netze, deren Schichten (Convolutional Layer) auf Eingabedaten angewendet werden, um Merkmale zu extrahieren und schließlich ein Objekt zu identifizieren. Das macht ConvNets zu einem wichtigen Bestandteil von Deep Learning.
Was sind Convolutional Neural Networks (CNN)?
Convolutional Neural Networks (auf Deutsch etwa: faltende neuronale Netzwerke) sind spezialisierte Arten von künstlichen neuronalen Netzwerken, die besonders effektiv bei der Verarbeitung und Analyse von visuellen Daten wie Bildern und Videos sind. Diese Netze sind wichtig beim Machine Learning – und da besonders beim Deep Learning.
ConvNets setzen sich aus Knotenschichten zusammen, die eine Eingabeschicht, eine oder mehrere versteckte Schichten und eine Ausgabeschicht beinhalten. Die einzelnen Knotenpunkte sind untereinander verbunden und verfügen über eine entsprechende Gewichtung sowie einen Schwellenwert. Sobald die Ausgabe eines einzelnen Knotens den angegebenen Schwellenwert übersteigt, wird dieser aktiviert und sendet Daten an die nächste Schicht des Netzwerks.
Es gibt verschiedene Arten von neuronalen Netzen, die für unterschiedliche Anwendungen und Datentypen eingesetzt werden. Beispielsweise werden rekurrente neuronale Netze häufig für die Verarbeitung natürlicher Sprache und Spracherkennung verwendet, während Convolutional Neural Networks (CNNs) häufiger für Klassifikations- und Computer-Vision-Aufgaben eingesetzt werden. Ihre Fähigkeit, komplexe Muster in Daten zu erkennen, macht sie zu einem wichtigen Werkzeug der künstlichen Intelligenz.
- In Sekunden zur Online-Präsenz
- Mehr Wachstum mit KI-Marketing
- Zeit und Ressourcen sparen
Struktur und Aufbau von Convolutional Neural Networks
ConvNets unterscheiden sich von anderen neuronalen Netzwerken durch ihre überlegene Leistung bei der Verarbeitung von Bild-, Sprach- oder Audiosignalen. Sie haben drei Haupttypen von Schichten und mit jeder davon wird das CNN komplexer und identifiziert beispielsweise größere Teile eines Bildes.
Kompatibilität eines Bildes mit dem Algorithmus der ConvNets
Bilder werden von Computer als Zahlenkombinationen, ergo die Anzahl der Pixel, erkannt. Dies trifft ebenfalls auf den CNN-Algorithmus zu: Ein Schwarz-Weiß-Bild wird mit der Länge m und der Breite n als 2-dimensionales Array der Größe mXn dargestellt; im Falle eines farbigen Bildes derselben Größe wird ein 3-dimensionales Array verwendet. Jede Zelle in diesem Array enthält den entsprechenden Pixelwert und jedes Bild wird durch die entsprechenden Pixelwerte in drei unterschiedlichen Kanälen dargestellt, die jeweils zu einem roten, blauen und grünen Kanal gehören.
Anschließend werden die wichtigsten Merkmale des Bildes identifiziert. Diese werden mit einer Methode extrahiert, die als Faltung (Konvolution) bekannt ist. Dies ist eine Operation, bei der eine Funktion die Form einer anderen Funktion verändert (bzw. faltet). Faltungen in Bildern werden im Allgemeinen aus verschiedenen Gründen verwendet, z. B. zum Schärfen, Glätten und Verstärken. In CNN hingegen werden Konvolutionen verwendet, um markante Merkmale in Bildern zu extrahieren.
Um wichtige Merkmale aus einem Bild zu extrahieren, wird ein Filter oder Kern verwendet. Ein Filter ist ein Array, das das zu extrahierende Merkmal repräsentiert. Dieser Filter wird über das Eingangsarray gelegt und das resultierende Array ist ein zweidimensionales Array, das die Korrelation des Bildes in Bezug auf den verwendeten Filter enthält. Die Ausgabematrix wird als Feature Map (Merkmalskarte) bezeichnet.
Merkmale der unterschiedlichen Faltungsschichten
Während des Faltungsprozesses bzw. der Konvolution wird das Eingabefeld in ein kleineres Feld umgewandelt, wobei die räumliche Korrelation zwischen den Pixeln durch die Anwendung von Filtern erhalten bleibt. Im Folgenden werden die drei Haupttypen von Faltungsschichten vorgestellt:
- Convolutional Layer: Diese Faltungsschicht ist die erste Schicht eines Faltungsnetzwerks. Sie verwendet Filter (kleine Matrizen von Gewichten), die über das Bild gleiten, um lokale Merkmale wie Kanten, Ecken und Texturen zu erkennen. Jeder Filter erzeugt eine Feature Map, die spezifischen Muster hervorhebt. Eine weitere Faltungsschicht kann auf die erste Faltungsschicht folgen und somit die Struktur des CNN hierarchisch werden lassen, da die späteren Schichten die Pixel innerhalb der rezeptiven Felder der vorherigen Schichten sehen können.
- Pooling Layer: Dieser Layer reduziert die Größe der Feature Maps, indem er lokale Bereiche zusammenfasst und nicht relevante Informationen verwirft. Dies verringert die Rechenkomplexität, während es die wichtigsten Informationen behält.
- Fully Connected Layer: Diese Schicht verbindet alle Neuronen miteinander, ähnlich wie in einem natürlichen neuronalen Netzwerk. Sie dient der finalen Klassifikation und kombiniert die extrahierten Merkmale zu einer Entscheidung, bis es schließlich das gewünschte Objekt identifiziert.
Veranschaulichung des Faltungsprozesses
Stellen Sie sich vor: Sie versuchen beispielsweise zu bestimmen, ob ein Bild ein menschliches Gesicht enthält. Sie können sich das Gesicht als eine Summe von seinen Teilen vorstellen: Es hat zwei Augen, eine Nase, einen Mund, zwei Ohren und so weiter. Der Faltungsprozess würde wie folgt ablaufen:
- Erste Faltungsschicht: Die ersten Convolutional Layers verwenden Filter, um Merkmale aus den einzelnen Pixeln zu erkennen. So erkennt ein Filter möglicherweise eine vertikale Kante, die den Rand eines Auges darstellen könnte. Wie bereits erwähnt, bilden lokale Merkmale Muster, die bei der Konvolution in eine Feature Map registriert werden. In diesem Fall könnte eine Feature Map die Kanten der Augen, der Nase und des Mundes darstellen.
- Weitere Faltungsschichten: Auf Faltungsschichten können weitere Faltungsschichten oder Pooling-Schichten folgen. Auf diese Weise würden die einzelnen Muster in der Kombination nach und nach ein menschliches Gesicht abbilden. Die nächsten Faltungsschichten kombinieren die einfachen Merkmale zu komplexeren Mustern. So könnten Kanten und Ecken zu Formen kombiniert werden, die Augen darstellen. Diese Schichten sehen größere Bereiche des Bildes (rezeptive Felder) und erkennen dadurch zusammengesetzte Strukturen, sogenannte Merkmalshierarchien innerhalb der Faltungsschichten. Eine spätere Schicht könnte erkennen, dass zwei Augen und ein Mund in einer bestimmten Anordnung ein Gesicht bilden.
- Pooling-Schichten: Diese reduzieren die Größe der Feature Maps und abstrahieren die Merkmale weiter. Dabei werden die wesentlichen Merkmale beibehalten und die Anzahl der zu verarbeitenden Daten reduziert.
- Fully Connected Layer: Abschließend entsteht die letzte Schicht des ConvNets, die vollständig verbundene Schicht. In diesem Fall würde es das Bild eines menschlichen Gesichts ergeben, dass dank der Konvolution eindeutig von einem anderen Gesicht zu unterscheiden wäre.
Darüber hinaus optimieren Techniken wie Dropout und Regularisierung die Netzwerke, indem sie Überanpassung verhindern. Aktivierungsfunktionen wie ReLU (Rectified Linear Unit) sorgen für Nicht-Linearität und helfen dem Netzwerk, komplexere Muster zu erkennen, indem nicht alle Neuronen die gleichen Berechnungen durchführen. Zusätzlich stabilisiert und beschleunigt die Batch-Normalisierung das Training, indem die Daten gleichmäßiger verarbeitet werden.
Anwendungsgebiete von Convolutional Neural Networks
Bevor es CNNs gab, wurden manuelle, zeitaufwändige Methoden der Merkmalsextraktion verwendet, um Objekte in Bildern zu identifizieren. Faltende neuronale Netze bieten einen skalierbareren Ansatz für Bildklassifikations- und Objekterkennungsaufgaben. Sie nutzen Prinzipien der linearen Algebra, insbesondere die Matrix-Multiplikation, um Muster in einem Bild zu erkennen. CNNs finden heutzutage vielseitige Anwendung in:
- Bild- und Spracherkennung: Automatische Erkennung von Objekten oder Personen in Bildern und Videos, zum Beispiel für Fototagging-Dienste in Smartphones, Facial Recognition Systems oder Sprachassistenten wie Siri bzw. Alexa.
- Medizinische Diagnostik: Analyse von medizinischen Bildern dank KI-Bilderkennung zur Unterstützung der Diagnosestellung, zum Beispiel Röntgenbildern, CT-Scans und MRTs.
- Autonome Fahrzeuge: Erkennung von Straßenmerkmalen und Hindernissen, beispielsweise für selbstfahrende Autos.
- Social Media: CNNs werden beispielsweise im Zusammenhang mit Text Mining in solchen Plattformen eingesetzt, um Inhalte automatisch zu moderieren und personalisierte Werbung zu erstellen.
- Marketing und Einzelhandel: Z. B. visuelle Produktsuche und Produktplatzierung dank Data-Mining.
- 100 % DSGVO-konform und sicher in Deutschland gehostet
- Die leistungsstärksten KI-Modelle auf einer Plattform
- Kein Vendor Lock-in durch Open Source
Convolutional Neural Networks: Vor- und Nachteile
CovNets können relevante Merkmale automatisch aus den Daten extrahieren und erreichen dabei eine hohe Genauigkeit. Jedoch erfordert das effektive Training von CNNs erhebliche Rechenressourcen, da sie große Mengen an gelabelten Daten und leistungsstarke GPUs benötigen, um gute Ergebnisse zu liefern.
Vorteile | Nachteile |
---|---|
Automatisierte Merkmalsextraktion | Hoher Rechenaufwand |
Hohe Genauigkeit | Bedarf an großen Datensätzen |
CNNs haben das Feld der künstlichen Intelligenz revolutioniert und bieten immense Vorteile in verschiedenen Bereichen. Zukünftige Entwicklungen wie beispielsweise Hardware-Verbesserungen, neue Methoden zur Datenerhebung oder fortschrittliche Architekturen wie Capsule Networks könnten eine weitere Optimierung und Integration in verschiedene Technologien ermöglichen, wodurch CNNs noch breiter eingesetzt werden könnten.