Was ist Convolutional Neural Network (CNN)?

Ein neuronales Netz, das hauptsächlich aus Faltungsschichten besteht, die kleine Filter (Kernels) über die Eingabe schieben und Summen von Produkten berechnen, zusammen mit Pooling-Schichten und weiteren Schichten. Da derselbe Filter über die ganze Eingabe wiederverwendet wird, hat es weit weniger Parameter als vollständig verbundene Schichten und extrahiert lokale Merkmale wie Kanten und Texturen eines Bildes unabhängig von ihrer Position. Eingesetzt wird es für Bilderkennung, Objekterkennung, Audioverarbeitung und anderes.

Japanische Bezeichnung: 畳み込みニューラルネットワーク(CNN)

„Convolutional Neural Network (CNN)“ kommt in 1 Übungsfragen aus 1 Themen vor, z. B. Grundlagen des maschinellen Lernens.

Fachgebiet: Grundlagen des maschinellen Lernens

Berechnung in einer Faltungsschicht

Eine Faltungsschicht schiebt zum Beispiel einen 3×3-Filter von links oben über das Bild, jeweils um eine feste Schrittweite (den Stride), und berechnet die Summe der Produkte aus den überlappenden Pixeln und den Filtergewichten; so entsteht eine Feature Map. Die Ausgabegröße beträgt (N + 2P − F) ÷ S + 1 bei Eingabegröße N, Filtergröße F, Padding P und Stride S. Jede Schicht verwendet mehrere Filter, von denen jeder ein anderes Merkmal extrahiert, etwa senkrechte Kanten, waagerechte Kanten oder Farbwechsel. Tiefere Schichten reagieren auf größere, komplexere Merkmale wie Augen oder Räder.

Warum wenige Parameter genügen

Eine Faltungsschicht, die 64 Filter der Größe 3×3 auf eine Eingabe mit 3 Kanälen anwendet, hat 3 × 3 × 3 × 64 + 64 = 1792 Parameter, unabhängig von der Bildgröße. Wird dasselbe 32×32×3-Bild mit einer vollständig verbundenen Schicht mit 64 Ausgaben verbunden, sind 32 × 32 × 3 × 64 + 64 = 196.672 Parameter nötig. Weil nur benachbarte Pixel betrachtet werden (lokale Verbindungen) und derselbe Filter überall wiederverwendet wird (geteilte Gewichte), lernt das Netz effizient mit wenigen Parametern.

Pooling und Gesamtaufbau

Eine Pooling-Schicht nimmt für Bereiche wie 2×2 den Höchstwert (Max-Pooling) oder den Mittelwert und verkleinert so die Daten; das senkt den Rechenaufwand und macht das Netz unempfindlicher gegen kleine Positionsverschiebungen. Ein typisches CNN stapelt mehrere Gruppen aus Faltungsschicht, Aktivierungsfunktion (etwa ReLU) und Pooling-Schicht und klassifiziert am Ende mit vollständig verbundenen Schichten und einer Softmax-Funktion. Residualverbindungen, die Signale an Schichten vorbeileiten, ermöglichen das Training von Netzen mit mehr als 100 Schichten.

Jetzt üben: Fragen zu Convolutional Neural Network (CNN)

Welche Beschreibung trifft auf Transfer Learning zu, bei dem ein mit großen Datenmengen trainiertes Modell für eine andere Aufgabe mit wenigen Daten genutzt wird?

  1. AAusgehend von den Gewichten des trainierten Modells wird die Ausgabeschicht für die neue Aufgabe ersetzt, oder ein Teil des Modells oder das ganze Modell wird mit den neuen Daten nachtrainiert (Fine-Tuning)
  2. BDas trainierte Modell wird nicht genutzt; alle Schichten werden nur mit den wenigen Daten der neuen Aufgabe von zufällig initialisierten Gewichten aus neu trainiert
  3. CEin kleines Modell wird darauf trainiert, die Ausgaben eines großen Modells nachzuahmen, damit dieselbe Aufgabe mit weniger Rechenaufwand und Speicher gelöst werden kann
Antwort und Erläuterung anzeigen

Antwort: A. Ausgehend von den Gewichten des trainierten Modells wird die Ausgabeschicht für die neue Aufgabe ersetzt, oder ein Teil des Modells oder das ganze Modell wird mit den neuen Daten nachtrainiert (Fine-Tuning)

Transfer Learning nutzt die Merkmale, die ein Modell bei einer Aufgabe gelernt hat, für eine andere Aufgabe. Die eingangsnahen Schichten eines mit sehr vielen Bildern trainierten CNN können zum Beispiel allgemeine Merkmale wie Kanten und Texturen extrahieren; daher wird nur die Ausgabeschicht ersetzt und für die neue Aufgabe trainiert, oder das ganze Netz wird mit kleiner Lernrate nachtrainiert (Fine-Tuning). So lässt sich mit weniger Daten und Rechenaufwand als beim Training von Grund auf leicht eine hohe Leistung erreichen; das Verfahren wird auch eingesetzt, um Sprachmodelle an bestimmte Anwendungen anzupassen.

Häufige Fragen

Ist die Berechnung in einer Faltungsschicht dasselbe wie die mathematische Faltung?

Die meisten Frameworks nennen eine Berechnung Faltung, die streng genommen eine Kreuzkorrelation ist: eine Summe von Produkten ohne Spiegelung des Filters. Da die Filtergewichte gelernt werden, hat es keinen Einfluss auf die Leistung des Modells, ob der Filter gespiegelt wird.

Lassen sich CNNs auch für anderes als Bilder verwenden?

Ja. Für Audiosignale und Zeitreihendaten werden eindimensionale Faltungen verwendet, für Videos und volumetrische medizinische Bilder dreidimensionale. Sie eignen sich für gitterförmig angeordnete Daten, bei denen benachbarte Werte zusammenhängen.

„Convolutional Neural Network (CNN)“ in den Erläuterungen

Fragen mit „Convolutional Neural Network (CNN)“ (1)

  1. Welche Beschreibung trifft auf Transfer Learning zu, bei dem ein mit großen Datenmengen trainiertes Modell für eine andere Aufgabe mit wenigen Daten genutzt wird?

Verwandte Begriffe

Transfer Learning (Transferlernen) Aktivierungsfunktion Bestärkendes Lernen (Reinforcement Learning) Gradientenabstieg (Gradient Descent) Hauptkomponentenanalyse (PCA) k-Means-Algorithmus Konfusionsmatrix (Wahrheitsmatrix) Kreuzvalidierung Precision und Recall Regularisierung

Zur Glossarübersicht