Page cover

Convolutional Neural Network (CNN)

Convolutional Neural Networks (CNN) sind spezialisierte neuronale Netze, die besonders effektiv in der Verarbeitung von Bild- und Mustererkennungsaufgaben sind. Ihr Aufbau beinhaltet typischerweise Convolution Layers zur lokalen Mustererkennung, Pooling-Schichten zur Dimensionalitätsreduktion und vollvernetzte Schichten für die Klassifizierung. CNNs verwenden Filter oder "Kernel", um lokale Muster in den Eingabedaten zu erkennen. Diese Filter sind kleine Fenster, die über die Eingabedaten verschoben werden und dabei lokale Merkmale wie Kanten, Texturen oder andere visuelle Strukturen identifizieren. Durch das Lernen dieser Filter während des Trainings können CNNs automatisch relevante Merkmale aus den Daten extrahieren. Bei der Verwendung von CNNs ist es wichtig, die richtige Filtergröße und -anzahl zu wählen. Zusätzlich sollte auf Überanpassung geachtet werden, indem Regularisierungsmethoden wie bspw. Dropout angewendet werden.

Pooling

Pooling reduziert die Dimensionen von Feature-Maps durch Aggregation in kleinen Fenstern.

  • Dimensionsreduktion: Durch das Beibehalten relevanter Informationen werden Berechnungen effizienter.

  • Invarianz gegenüber Translation: Die gelernten Merkmale bleiben unabhängig von der Position im Bild erhalten.

  • Effiziente Berechnungen: Beschleunigt die Berechnungen in nachfolgenden Schichten.

  • Reduziert Überanpassung: Trägt dazu bei, Überanpassung zu verhindern, indem eine kompaktere Repräsentation geschaffen wird.

Es gibt unterschiedliche Pooling-Verfahren, wie beispielsweise Max- und Min-Pooling:

  • Max-Pooling: Wählt den maximalen Wert aus jedem Fenster, um die hervorstechendsten Merkmale zu extrahieren.

  • Min-Pooling: Wählt den minimalen Wert aus jedem Fenster, um Merkmale mit niedrigen Werten hervorzuheben.

Abbildung 22 visualisiert die schematische Architektur eines CNNs. Die Größen der einzelnen Schichten veranschaulichen, wie die Dimensionalität der Schichten immer weiter sinkt, um im Output die Ergebnisse den wenigen Klassen zuzuordnen.

Abbildung 22: Architektur eines CNNs

Nachfolgend werden die Vor- und Nachteile von CNNs analysiert:

Vorteile:

  • Bildverarbeitung: CNNs sind hervorragend für Bildverarbeitungsaufgaben geeignet. Es können Merkmale in Bildern extrahiert und räumliche Beziehungen erkannt werden.

  • Effizienz: Durch Pooling-Schichten reduzieren sie die Dimensionen, was zu effizienten Berechnungen führt.

Nachteile:

  • Eingeschränkte Anwendung: CNNs sind spezialisiert auf Bildverarbeitungsaufgaben und weniger geeignet für Text.

  • Rechenintensität: Die Anwendung von CNNs erfordert oft leistungsstarke Hardware, insbesondere beim Training großer Modelle oder bei der Verarbeitung hochauflösender Bilder.

In diesem Beispiel wird ein Convolutional Neural Network (CNN) erstellt, trainiert und evaluiert.

Mehr erfahren: Analytics Vidhya/Introduction to Convolutional Neural Networksarrow-up-right, Medium/Understanding the Convolutional Filter Operation in CNN’s.arrow-up-right, GeeksforGeeks/Einführung in die Pooling-Schichtarrow-up-right

Last updated