Was sind konvolutionale neuronale Netze?
Erfahren Sie, wie konvolutionale neuronale Netze dreidimensionale Daten zur Bildklassifizierung und Objekterkennung verwenden
IBM Newsletter abonnieren
Schwarz-blauer Hintergrund
Was sind konvolutionale neuronale Netze?

Der Learn-Hub-Artikel „Neuronale Netze“ erläutert Folgendes: 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 die Ausgabe eines einzelnen Knotens über dem angegebenen 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-Netze konzentriert. Es gibt jedoch verschiedene Arten von neuronalen Netzen, die für unterschiedliche Anwendungsfälle und Datentypen eingesetzt werden. Zum Beispiel werden rekurrente neuronale Netze häufig für die Verarbeitung natürlicher Sprache und Spracherkennung verwendet, während konvolutionale neuronale Netze (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. Konvolutionale neuronale Netze 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.

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.

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.

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 neuronalen Netz und die Kombination aller Teile stellt ein höher gelagertes Muster dar. So entsteht eine Merkmalshierarchie innerhalb des CNN.

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: Wenn sich der Filter über die Eingabe bewegt, 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 (PDF, 1,1 MB) (Link liegt außerhalb von IBM) 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 neuronale Netze 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 (PDF, 1,4 MB) (Link befindet sich außerhalb von IBM)
  • VGGNet (PDF, 195 KB) (Link befindet sich außerhalb von IBM)
  • GoogLeNet (PDF, 1,3 MB) (Link befindet sich außerhalb von IBM)
  • ResNet (PDF, 800 KB) (Link befindet sich außerhalb von IBM)
  • 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
Gehen Sie den nächsten Schritt

IBM leistet seit Jahrzehnten Pionierarbeit in der Entwicklung von KI-Technologien und neuronalen Netzen, insbesondere durch die Entwicklung und Weiterentwicklung von IBM Watson. Watson ist nun eine zuverlässige Lösung für Unternehmen, die fortschrittliche visuelle Erkennungs- und Deep-Learning-Techniken auf ihre Systeme anwenden möchten und dabei einen bewährten mehrstufigen Ansatz für die Einführung und Implementierung von KI verfolgen.

Entdecken Sie jetzt IBM Watson® Studio