Ein convolutional neural network, kurz CNN, ist ein neuronales Netz, das nach kleinen lokalen Mustern sucht und sie dann zu größeren Mustern kombiniert. Bei Bildern erkennen frühe Schichten oft Kanten oder Ecken, mittlere Schichten Texturen oder Teile, und tiefere Schichten nutzen diese Signale für eine endgültige Vorhersage.
Die zentrale Idee ist geteilte Gewichtung. Statt für jedes Pixel-Positions-Paar ein eigenes Gewicht zu lernen, verwendet ein CNN denselben kleinen Filter an vielen Positionen wieder. Dadurch ist es viel günstiger als eine Dense-Schicht auf dem Rohbild und kann dieselbe Art von Muster an mehreren Stellen erkennen.
Was ein convolutional neural network macht
In einer vollständig verbundenen Schicht kann jede Ausgabe gleichzeitig von allen Eingabewerten abhängen. Ein CNN ist stärker strukturiert. Es verwendet kleine Kernel, oft Filter genannt, die jeweils nur einen lokalen Ausschnitt betrachten.
Für eine einkanalige Eingabe und einen -Kernel kann ein Ausgabeeintrag geschrieben werden als
Das ist die Idee der lokalen gewichteten Summe hinter einer Faltungsschicht. In vielen Machine-Learning-Bibliotheken ist die implementierte Operation technisch gesehen eher eine Kreuzkorrelation als eine mathematische Faltung mit umgedrehtem Kernel, aber die praktische Intuition ist dieselbe: Der Kernel wandert über die Eingabe und erzeugt eine Feature-Map.
Die Feature-Map zeigt dir, wo das gelernte Muster stark auftritt.
Warum geteilte Filter helfen
Wenn dieselbe vertikale Kante nahe der linken oberen Ecke eines Bildes oder nahe der Mitte erscheint, möchten wir normalerweise, dass das Modell sie in beiden Fällen erkennt. Ein CNN unterstützt das, indem es dieselben Filterparameter an allen Positionen wiederverwendet.
Das hat zwei praktische Effekte:
- Es verringert die Anzahl der gelernten Parameter im Vergleich zu einer Dense-Schicht auf dem Rohbild.
- Es fördert, dass das Netz wiederkehrende lokale Muster erkennt, statt sich nur eine feste Position zu merken.
Diese Wiederverwendung ist ein Grund, warum CNNs für Bildaufgaben so erfolgreich wurden.
Wie eine grundlegende CNN-Architektur aussieht
Ein einfaches CNN folgt oft diesem Muster:
- Faltungsschicht
- Aktivierung wie ReLU
- optionales Pooling oder Downsampling
- weitere Faltungsblöcke
- letzte Vorhersageschicht
Frühe Schichten erfassen meist einfache lokale Strukturen. Tiefere Schichten kombinieren diese Reaktionen zu größeren, aufgabenspezifischeren Merkmalen.
Pooling ist nicht zwingend nötig, aber wenn es verwendet wird, verkleinert es die räumlichen Dimensionen, sodass spätere Schichten mit einer kompakteren Darstellung arbeiten können. Ein häufiges Beispiel ist Max-Pooling, bei dem in jeder kleinen Region der größte Wert behalten wird.
Wenn die Schrittweite und das Padding ist, dann erzeugt eine -Eingabe mit einem -Kernel eine -Ausgabe. Diese Größenregel ist nützlich, wenn du prüfst, ob ein Rechenbeispiel sinnvoll ist.
Durchgerechnetes Beispiel: wie eine CNN-Feature-Map entsteht
Nimm dieses -Eingabebild:
Verwende diesen -Kernel:
Angenommen, die Schrittweite ist und es gibt kein Padding. Da die Eingabe und der Kernel groß ist, muss die Ausgabe sein. Jeder Ausgabeeintrag ist die Summe eines -Ausschnitts, weil jeder Kerneintrag gleich ist.
Der Ausgabewert oben links ist
Der Ausschnitt einen Schritt weiter rechts ist
also
Wenn man alle gültigen Positionen durchrechnet, erhält man
Diese Ausgabe ist die Feature-Map. Große Werte zeigen, wo der Kernel eine starke Übereinstimmung gefunden hat. Hier reagiert der Filter am stärksten dort, wo ein vollständiger heller -Block erscheint.
Wenn du jetzt ReLU anwendest, ändert sich nichts, weil alle Einträge bereits nichtnegativ sind. Wenn du danach -Max-Pooling mit Schrittweite verwendest, wird die gepoolte Ausgabe zu
Dadurch entstehen keine neuen Informationen. Es bleiben die stärksten benachbarten Reaktionen erhalten, und das räumliche Gitter wird verkleinert.
Dieses Beispiel ist einfach, zeigt aber den Kernmechanismus klar: Ein Filter gleitet über die Eingabe, berechnet lokale gewichtete Summen und erzeugt eine Karte davon, wo ein Muster erscheint.
Was ein CNN beim Training lernt
Der Kernel oben wurde von Hand gewählt, aber in einem echten CNN werden die Filterwerte aus Daten gelernt. Das Training passt diese Werte so an, dass die entstehenden Feature-Maps für die Aufgabe nützlich werden.
Wenn die Aufgabe Bildklassifikation ist, lernt das Netz Filter, die helfen, Klassen zu unterscheiden. Wenn die Aufgabe Segmentierung oder Objekterkennung ist, werden die späteren Schichten stattdessen auf diese Ausgaben trainiert. Der Grundmechanismus bleibt gleich: Forward Pass, Loss, Backpropagation, Parameter-Update.
Häufige Fehler beim Lernen von CNNs
Zu denken, ein CNN bedeute einfach nur „Bildklassifikator“
Bilder sind das Standardbeispiel, aber bei CNNs geht es eigentlich um lokale Struktur und geteilte Filter. Wenn benachbarte Werte wichtig sind, kann dieselbe Idee auch außerhalb von Bildern nützlich sein.
Anzunehmen, dass Pooling immer nötig ist
Es ist verbreitet, aber nicht universell. Manche Architekturen verkleinern die räumliche Größe stattdessen mit Faltungen mit Schrittweite, und manche behalten räumliche Details länger bei.
Schrittweite und Padding zu ignorieren
Die Größe der Feature-Map hängt von diesen Entscheidungen ab. Wenn du Schrittweite oder Padding änderst, änderst du nicht nur die Form der Ausgabe, sondern auch, welche lokalen Nachbarschaften jede Einheit sehen kann.
Die Schicht nur als Formel zu betrachten
Die Faltungsformel ist wichtig, aber die Architektur ist es auch. Ein CNN funktioniert, weil Faltung, Aktivierung, Stapelung und Training zusammenwirken.
Wann convolutional neural networks nützlich sind
CNNs werden häufig in Computer-Vision-Aufgaben wie Bildklassifikation, Objekterkennung und Segmentierung eingesetzt. Sie kommen auch in manchen Signalverarbeitungs- und Sequenzanwendungen vor, in denen lokale Muster bedeutungsvoll sind.
Sie sind besonders nützlich, wenn die Eingabe eine klare Gitterstruktur oder geordnete Nachbarschaftsstruktur hat. Wenn diese Bedingung nur schwach erfüllt ist, kann eine andere Architektur besser passen.
Ein mentales Modell, das CNNs leichter verständlich macht
Stell dir ein CNN als Mustererkenner vor, der klein beginnt und mit zunehmender Tiefe abstrakter wird. Eine Schicht fragt: „Erscheint dieses kleine Muster hier?“ Spätere Schichten fragen: „Kombinieren sich diese einfacheren Muster zu etwas Bedeutenderem?“
Deshalb versteht man CNNs leichter, wenn man sich auf Feature-Maps konzentriert und nicht nur auf das Wort „Faltung“.
Probiere deine eigene Variante aus
Behalte dieselbe Eingabe bei, aber ändere den Kernel zu
Berechne die Feature-Map erneut und schau, welche Bereiche jetzt große positive oder negative Reaktionen erzeugen. Diese kleine Änderung macht viel klarer, wie unterschiedliche Filter unterschiedliche Muster erkennen.
Brauchst du Hilfe bei einer Aufgabe?
Lade deine Frage hoch und erhalte in Sekunden eine verifizierte Schritt-für-Schritt-Lösung.
GPAI Solver öffnen →