Startseite topics Was sind neuronale Faltungsnetze (Convolutional Neural Networks)? Was sind konvolutionale neuronale Netze?
Entdecken Sie die Neural Network Lösung von IBM Abonnieren Sie KI-Updates
Illustration mit Collage von Cloud-Piktogrammen, Tortendiagramm, Grafikpiktogrammen zu folgenden Themen
Was sind konvolutionale neuronale Netze?

Konvolutionale neuronale Netze verwenden dreidimensionale Daten zur Bildklassifizierung und Objekterkennung.

Neuronale Netze sind eine Teilmenge des maschinellen Lernens und das Herzstück von Deep-Learning-Algorithmen. Sie bestehen aus Knotenschichten, die eine Eingabeschicht, eine oder mehrere verborgene Schichten sowie eine Ausgabeschicht enthalten. Jeder Knoten ist mit einem anderen Knoten verbunden und verfügt über eine bestimmte Gewichtung und einen Schwellenwert. Wenn der Output eines einzelnen Knotens über dem festgelegten Schwellenwert liegt, wird dieser Knoten aktiviert und sendet Daten an die nächste Schicht des Netzes. Andernfalls werden keine Daten an die nächste Schicht des Netzes weitergegeben.

Wir haben uns in diesem Artikel hauptsächlich auf Feedforward Networks konzentriert. Es gibt jedoch verschiedene Arten von Neural Networks , die für unterschiedliche Anwendungsfälle und Datentypen eingesetzt werden. Zum Beispiel werden rekurrente Neural Networks häufig für die Verarbeitung natürlicher Sprache und Spracherkennung verwendet, während Convolutional Neural Networks (ConvNets oder CNNs) häufiger für Klassifizierungs- und Computer-Vision-Aufgaben eingesetzt werden. Vor CNNs wurden manuelle, zeitaufwändige Merkmalextraktionsmethoden verwendet, um Objekte in Bildern zu identifizieren. Convolutional Neural Networks bieten jetzt jedoch einen skalierbareren Ansatz für Bildklassifizierungs- und Objekterkennungsaufgaben, indem sie Prinzipien der linearen Algebra, insbesondere die Matrixmultiplikation, nutzen, um Muster in einem Bild zu erkennen. Sie können allerdings rechenintensiv sein und erfordern grafische Verarbeitungseinheiten (GPUs), um Modelle zu trainieren.

Der Datenspeicher für KI

Erfahren Sie, wie wirkungsvoll die Integration einer Data-Lakehouse-Strategie in Ihre Datenarchitektur sein kann, einschließlich Verbesserungen zur Skalierung von KI und Möglichkeiten zur Kostenoptimierung.

Ähnliche Inhalte

Leitfaden für Datenverantwortliche lesen

Wie funktionieren konvolutionale neuronale Netzwerke?

Konvolutionale neuronale Netze unterscheiden sich von anderen neuronalen Netzen durch ihre überlegene Leistung bei Bild-, Sprach- oder Audiosignaleingaben. Sie verfügen im Wesentlichen über folgende drei Arten von Schichten:

  • Konvolutionale Schicht
  • Pooling-Schicht
  • Vollständig verbundene (FC) Schicht

Die konvolutionale Schicht ist die erste Schicht eines konvolutionalen Netzes. Auf konvolutionale Schichten können weitere konvolutionale Schichten oder Pooling-Schichten folgen; die vollständig verbundene Schicht ist die letzte Schicht. Mit jeder Schicht nimmt die Komplexität des CNN zu, sodass immer größere Teile des Bildes identifiziert werden. Frühere Schichten konzentrieren sich auf einfache Merkmale wie Farben und Kanten. Wenn die Bilddaten die Schichten des CNN durchlaufen, beginnt das konvolutionale Netz, größere Elemente oder Formen des Objekts zu erkennen, bis schließlich das beabsichtigte Objekt identifiziert wird.

Konvolutionale Schicht

Die konvolutionale Schicht ist der Kernbaustein eines CNN und dort findet der Großteil der Berechnungen statt. Sie erfordert einige Komponenten, nämlich Eingabedaten, einen Filter und eine Feature-Map. Nehmen wir an, dass es sich bei der Eingabe um ein Farbbild handelt, das aus einer Pixelmatrix in 3D besteht. Das bedeutet, dass die Eingabe drei Dimensionen (Höhe, Breite und Tiefe) aufweist, die RGB in einem Bild entsprechen. Zudem gibt es einen Merkmalsdetektor, der auch als Kernel oder Filter bezeichnet wird. Er bewegt sich über die rezeptiven Felder des Bildes und prüft, ob das jeweilige Merkmal vorhanden ist. Dieser Prozess wird als Konvolution bezeichnet.

Der Merkmalsdetektor ist ein zweidimensionales (2-D) Array von Gewichten, das einen Teil des Bildes darstellt. Sie können zwar unterschiedlich groß sein, die Filtergröße ist jedoch typischerweise eine 3x3-Matrix; dies bestimmt auch die Größe des rezeptiven Feldes. Der Filter wird dann auf einen Bereich des Bildes angewendet und es wird ein Skalarprodukt aus den Eingabepixeln und dem Filter berechnet. Dieses Skalarprodukt wird dann in ein Ausgabearray eingespeist. Danach verschiebt sich der Filter Schritt für Schritt und wiederholt den Vorgang, bis der Kernel das gesamte Bild erfasst hat. Die endgültige Ausgabe aus der Reihe von Skalarprodukten aus der Eingabe und dem Filter wird als Feature-Map (Merkmalskarte), Aktivierungskarte oder konvolviertes Merkmal bezeichnet.

Beachten Sie, dass die Gewichte im Merkmalsdetektor fest bleiben, während er sich über das Bild bewegt, was auch als Parameter-Sharing bekannt ist. Einige Parameter, wie die Gewichtungswerte, werden während des Trainings durch den Prozess der Backpropagation und des Gradientenabstiegs angepasst. Es gibt jedoch drei Hyperparameter, die die Volumengröße der Ausgabe beeinflussen und die eingestellt werden müssen, bevor das Training des neuronalen Netzwerks beginnt. Dazu gehören:

1. Die Anzahl der Filter beeinflusst die Tiefe der Ausgabe. So würden beispielsweise drei verschiedene Filter drei verschiedene Merkmalskarten ergeben, was eine Tiefe von drei ergibt. 

2. Stride ist die Entfernung oder Anzahl der Pixel, die der Kernel über die Eingabematrix bewegt. Eine Schrittweite von zwei oder mehr ist zwar selten, aber eine größere Schrittweite führt zu einer kleineren Ausgabe.

3. Zero-Padding wird normalerweise verwendet, wenn die Filter nicht zum Eingabebild passen. Dadurch werden alle Elemente, die außerhalb der Eingabematrix liegen, auf Null gesetzt, wodurch eine größere oder gleich große Ausgabe erzeugt wird. Es gibt drei Arten der Polsterung:

  • Gültige Polsterung: Dies wird auch als „keine Polsterung“ bezeichnet. In diesem Fall wird die letzte Faltung gelöscht, wenn die Dimensionen nicht übereinstimmen.
  • Gleiche Polsterung: Diese Polsterung stellt sicher, dass die Ausgabeebene dieselbe Größe wie die Eingabeebene hat.
  • Volle Füllung: Diese Art von Füllung erhöht die Größe der Ausgabe, indem Nullen zum Rand der Eingabe hinzugefügt werden.

Nach jedem Konvolutionsvorgang wendet ein CNN eine ReLU (Rectified Linear Unit)-Transformation auf die Feature-Map an und führt so Nichtlinearität in das Modell ein.

Zusätzliche konvolutionale Schicht

Wie bereits erwähnt, kann auf die erste Konvolutionsschicht eine weitere Konvolutionsschicht folgen. In diesem Fall kann die Struktur des CNN hierarchisch werden, da die späteren Schichten die Pixel innerhalb der rezeptiven Felder der vorherigen Schichten sehen können.  Nehmen wir beispielsweise an, dass wir ermitteln möchten, ob ein Bild ein Fahrrad enthält. Man kann sich das Fahrrad als eine Summe von Teilen vorstellen. Es besteht aus einem Rahmen, einem Lenker, Rädern, Pedalen und so weiter. Jedes einzelne Teil des Fahrrads bildet ein niedriger gelagertes Muster in dem Neural Network und die Kombination aller Teile stellt ein höher gelagertes Muster dar. So entsteht eine Merkmalshierarchie innerhalb des CNN. Letztendlich wandelt die konvolutionale Schicht das Bild in numerische Werte um, sodass das neuronale Netzwerk relevante Muster interpretieren und extrahieren kann.

Pooling-Schicht

Durch das Pooling von Schichten, auch „Downsampling“ genannt, wird eine Dimensionsreduktion erzielt, d. h. es wird die Anzahl der Parameter in der Eingabe reduziert. Ähnlich wie bei der konvolutionalen Schicht wird beim Pooling ein Filter über die gesamte Eingabe gezogen. Der Unterschied besteht jedoch darin, dass dieser Filter keine Gewichtungen hat. Stattdessen wendet der Kernel eine Aggregationsfunktion auf die Werte innerhalb des rezeptiven Feldes an und füllt so das Ausgabearray. Es gibt im Wesentlichen zwei Arten von Pooling:

  • Max. Pooling: Beim Verschieben des Filters über die Eingabe wird das Pixel mit dem höchsten Wert ausgewählt und an das Ausgabearray gesendet. Dieser Ansatz wird in der Regel häufiger verwendet als das Durchschnitts-Pooling.
  • Durchschnitts-Pooling: Wenn sich der Filter über die Eingabe bewegt, wird der Durchschnittswert innerhalb des rezeptiven Felds berechnet und an das Ausgabearray gesendet.

In der Pooling-Schicht gehen zwar viele Informationen verloren, doch das Pooling bietet auch einige Vorteile für das CNN. Die Komplexität wird reduziert, die Effizienz wird verbessert und das Risiko einer Überanpassung (Overfitting) wird verringert. 

Vollständig verbundene Schicht

Der Name der vollständig verbundenen Schicht lässt bereits darauf schließen, was sie auszeichnet. Wie bereits erwähnt, sind die Pixelwerte des Eingabebildes in teilweise verbundenen Schichten nicht direkt mit der Ausgabeschicht verbunden. In der vollständig verbundenen Schicht ist jedoch jeder Knoten in der Ausgabeschicht direkt mit einem Knoten in der vorherigen Schicht verbunden.

Diese Schicht führt die Klassifizierungsaufgabe basierend auf den Merkmalen, die durch die vorherigen Schichten und ihre verschiedenen Filter extrahiert wurden, aus. Während konvolutionale und Pooling-Schichten in der Regel ReLu-Funktionen verwenden, nutzen FC-Schichten für gewöhnlich eine Softmax-Aktivierungsfunktion, um Eingaben angemessen zu klassifizieren und eine Wahrscheinlichkeit zwischen 0 und 1 zu erzeugen.

Arten von konvolutionalen neuronalen Netzwerken

Kunihiko Fukushima und Yann LeCun legten mit ihren Arbeiten aus dem Jahr 1980 (Link befindet sich außerhalb von ibm.com) und „Backpropagation Applied to Handwritten Zip Code Recognition“ im Jahr 1989 den Grundstein für die Forschung im Bereich der konvolutionalen neuronalen Netze. Bekannter ist, dass Yann LeCun erfolgreich Rückwärtspropagierung (Backpropagation) anwendete, um Neural Networks zu trainieren, die Muster in einer Reihe von handgeschriebenen Postleitzahlen identifizieren und erkennen können. Er setzte seine Forschungsarbeiten mit seinem Team im Laufe der 1990er Jahren fort. Diese gipfelten in „LeNet-5“, das die gleichen Prinzipien früherer Forschung auf die Dokumentenerkennung anwendete. Seitdem sind im Zuge der Einführung neuer Datensätze wie MNIST und CIFAR-10 sowie Wettbewerben wie ImageNet Large Scale Visual Recognition Challenge (ILSVRC) verschiedene Varianten von CNN-Architekturen entstanden. Zu diesen anderen Architekturen gehören:

  • AlexNet (Link befindet sich außerhalb von ibm.com)
  • VGGNet (Link befindet sich außerhalb von ibm.com)
  • GoogLeNet (Link befindet sich außerhalb von ibm.com)
  • ResNet (Link befindet sich außerhalb von ibm.com)
  • ZFNet

LeNet-5 ist jedoch als die klassische CNN-Architektur bekannt.

Konvolutionale neuronale Netze und Computer Vision

Konvolutionale neuronale Netze unterstützen Bilderkennungs- und Computer Vision-Aufgaben. Computer Vision ist ein Bereich der künstlichen Intelligenz (KI), der es Computern und Systemen ermöglicht, aus digitalen Bildern, Videos und anderen visuellen Eingaben aussagekräftige Informationen abzuleiten und auf der Grundlage dieser Eingaben Maßnahmen zu ergreifen. Durch diese Fähigkeit, Empfehlungen zu geben, unterscheidet sie sich von Bilderkennungsaufgaben. Gängige Computer-Vision-Anwendungen sind aktuell in diesen Bereichen anzutreffen:

  • Marketing: Social-Media-Plattformen machen Vorschläge dazu, wer auf einem Foto, das auf einem Profil gepostet wurde, zu sehen sein könnte, und erleichtern so das Taggen von Freunden in Fotoalben. 
  • Gesundheitswesen: Computer Vision wurde in Radiologietechnologie integriert und ermöglicht es Ärzten, Krebstumoren in gesunder Anatomie besser zu identifizieren.
  • Einzelhandel: Visuelle Suche wurde in einige E-Commerce-Plattformen integriert und ermöglicht es Marken, Artikel zu empfehlen, die gut zu einer bestehende Garderobe passen würden.   
  • Automobilbranche: Das Zeitalter der fahrerlosen Autos ist zwar noch nicht ganz angebrochen, aber die zugrundeliegende Technologie hat bereits ihren Weg in die Automobilbranche gefunden und erhöht die Sicherheit von Fahrern und Passagieren durch Funktionen wie die Fahrspurerkennung.
Weiterführende Lösungen
IBM SPSS Neural Networks

IBM SPSS Neural Networks kann Ihnen helfen, komplexe Zusammenhänge zu entdecken und einen höheren Wert aus Ihren Daten zu ziehen.

Entdecken Sie IBM SPSS Neural Networks
IBM Watson Studio

Erstellen und skalieren Sie vertrauenswürdige KI in jeder Cloud. Automatisieren Sie den KI-Lebenszyklus für ModelOps.

Erfahren Sie mehr über IBM Watson Studio
Ressourcen Konvolutionale neuronale Netzwerke mit Python

Implementieren Sie mit Python ein einfaches Network, das handgeschriebene Ziffern klassifiziert.

Einführung in konvolutionale neuronale Netzwerke

Lernen Sie die verschiedenen Schritte, die zur Erstellung eines Convolutional Neural Networks erforderlich sind, kennen.

Doppelt konvolutionale neuronale Netze

In diesem Paper stellt IBM Research die These auf, dass doppelt konvolutionale neuronale Netze (DCNNs) die Leistung von CNNs erheblich verbessern können.

Erlernen konvolutionaler neuronaler Netze mit Deep Part Embeddings

IBM-Forscher schlagen ein neuartiges Konzept von Deep Part Embeddings (DPEs) vor, mit dem neue konvolutionale neuronale Netze (CNNs) für verschiedene Klassen erlernt werden können.

Trainieren eines YOLOv8-Objekterkennungsmodells in Python

Feinabstimmung eines vortrainierten Objekterkennungsmodells.

Machen Sie den nächsten Schritt

Trainieren, validieren, optimieren und implementieren Sie generative KI, Foundation Models und maschinelle Lernfunktionen mit IBM watsonx.ai, einem Studio der nächsten Generation für AI Builder in Unternehmen. Erstellen Sie KI-Anwendungen mit einem Bruchteil der Zeit und Daten.

watsonx.ai erkunden Buchen Sie eine Live-Demo