Definition Was ist ein Convolutional Neural Network?

Autor / Redakteur: Dipl.-Ing. (FH) Stefan Luber / Nico Litzel

Das Convolutional Neural Network ist eine besondere Form des künstlichen neuronalen Netzwerks. Es besitzt mehrere Faltungsschichten und ist für maschinelles Lernen und Anwendungen mit Künstlicher Intelligenz (KI) im Bereich Bild- und Spracherkennung sehr gut geeignet.

Anbieter zum Thema

(Bild: © aga7ta - stock.adobe.com)

Convolutional Neural Network bedeutet im Deutschen „Gefaltetes Neuronales Netzwerk“. Die Abkürzung lautet CNN. Es handelt sich um eine Sonderform eines künstlichen neuronalen Netzes, das speziell für maschinelles Lernen und die Verarbeitung von Bild- oder Audiodaten vorgesehen ist.

Die Funktionsweise ist zu einem gewissen Teil biologischen Vorgängen nachempfunden. Der Aufbau ist ähnlich der Sehrinde des Gehirns. Das Convolutional Neural Network besteht aus mehreren Schichten. Diese Schichten sind Faltungsschichten, Subsampling-Schichten und vollvermaschte Schichten. Das Training eines Convolutional Neural Networks findet gewöhnlich überwacht statt. Einer der Begründer des Convolutional Neural Networks ist Yann LeCun.

Aufbau eines Convolutional Neural Networks

Herkömmliche neuronale Netze bestehen aus voll- oder teilvermaschten Neuronen in mehreren Ebenen. Diese Strukturen stoßen bei der Verarbeitung von Bildern an ihre Grenzen, da eine der Pixelanzahl entsprechende Zahl an Eingängen vorhanden sein müsste. Die Zahl der Layer und der Verbindungen untereinander wäre riesig und nur von Rechnern mit sehr großer Leistung zu bewältigen. Das Convolutional Neural Network setzt sich aus verschiedenen Schichten zusammen und ist vom Grundprinzip ein zum Teil lokal vermaschtes neuronales Feedforward-Netz. Die einzelnen Schichten des CNN sind:

  • Die Convolutional-Schicht,
  • die Pooling-Schicht und
  • die vollständig vermaschte Schicht.

Die Pooling-Schicht folgt der Convolutional-Schicht und kann in dieser Kombination mehrfach hintereinander vorhanden sein. Da die Pooling-Schicht und die Convolutional-Schicht lokal vermaschte Teilnetze sind, bleibt die Anzahl an Verbindungen in diesen Schichten selbst bei großen Eingabemengen begrenzt und in einem beherrschbaren Rahmen. Den Abschluss bildet eine vollständig vermaschte Schicht.

Die Aufgaben der einzelnen Schichten

Die Convolutional-Schicht ist die eigentliche Faltungsebene. Sie ist in der Lage, in den Eingabedaten einzelne Merkmale zu erkennen und zu extrahieren. Bei der Bildverarbeitung können dies Merkmale wie Linien, Kanten oder bestimmte Formen sein. Die Verarbeitung der Eingabedaten erfolgt in Form einer Matrix. Es kommen Matrizen definierter Größe (Breite x Höhe x Kanäle) zum Einsatz.

Die Pooling-Schicht, auch Subsampling-Schicht genannt, verdichtet und reduziert die Auflösung der erkannten Merkmale. Hierfür verwendet die Schicht Methoden wie das Maximal-Pooling oder Mittelwert-Pooling. Das Pooling verwirft überflüssige Informationen und reduziert die Datenmenge. Die Leistungsfähigkeit beim maschinellen Lernen wird dadurch nicht verringert. Durch das reduzierte Datenaufkommen erhöht sich die Berechnungsgeschwindigkeit.

Den Abschluss des Convolutional Neural Networks bildet die vollständig verknüpfte Schicht. Sie schließt sich den sich wiederholenden Abfolgen der Convolutional- und Pooling-Schichten an. Alle Merkmale und Elemente der vorgelagerten Schichten sind mit jedem Ausgabemerkmal verknüpft. Die vollständig verbundenen Neuronen können in mehreren Ebenen angeordnet sein. Die Anzahl der Neuronen ist abhängig von den Klassen oder Objekten, die das neuronale Netz unterscheiden soll.

Vorteile eines Convolutional Neural Networks im Bereich Bilderkennung

Gegenüber herkömmlichen nicht gefalteten neuronalen Netzen bietet das Convolutional Neural Network zahlreiche Vorteile. Es eignet sich für maschinelles Lernen und Anwendungen der Künstlichen Intelligenz mit großen Mengen an Eingabedaten wie in der Bilderkennung. Das Netzwerk arbeitet robust und ist gegenüber Verzerrungen oder anderen optischen Veränderungen unempfindlich. Das CNN kann unter verschiedenen Lichtverhältnissen und in unterschiedlichen Perspektiven aufgenommene Bilder verarbeiten. Es erkennt dennoch die typischen Merkmale eines Bildes.

Da das CNN in mehrere lokale, teilvermaschte Schichten aufgeteilt ist, hat es einen wesentlich geringeren Speicherplatzbedarf als vollvermaschte neuronale Netze. Die Faltungsschichten reduzieren die Speicheranforderungen drastisch. Ebenfalls stark verkürzt ist die Trainingszeit des Convolutional Neural Networks. Mit dem Einsatz moderner Grafikprozessoren lassen sich CNNs sehr effizient trainieren. CNNs sind in der Bilderkennung die State-of-the-Art-Methode für maschinelles Lernen und Klassifizierung.

Die Arbeitsweise am Beispiel der Bilderkennung

Das CNN erkennt und extrahiert Merkmale der Eingangsbilder mithilfe von Filtern. Die Erkennung der Strukturen ist innerhalb des Bildes ortsunabhängig. Zunächst erkennt das CNN in den ersten Ebenen einfache Strukturen wie Linien, Farbtupfer oder Kanten. In den weiteren Ebenen lernt das Convolutional Neural Network Kombinationen aus diesen Strukturen wie einfache Formen oder Kurven. Mit jeder Ebene lassen sich komplexere Strukturen identifizieren. Die Daten werden in den Ebenen immer wieder neu abgetastet und gefiltert. Im letzten Schritt werden die Ergebnisse den zu erkennenden Klassen oder Objekten zugeordnet.

Anwendungsbereiche des Convolutional Neural Networks

Der wichtigste Anwendungsbereich für Convolutional Neural Networks ist die Bilderkennung. Zum Einsatz kommen die künstlichen neuronalen Netzwerke zum Beispiel im Bereich der Gesichtserkennung und Objekterkennung. Ein weiteres wichtiges Einsatzgebiet ist die Spracherkennung. Die CNNs erzielen sehr gute Ergebnisse beim semantischen Parsen, bei der Klassifizierung und Modellierung von Sätzen oder beim maschinellen Übersetzen.

(ID:45756863)