Eine Convolution ist nur ein kleines Zahlengitter (der Filter oder Kernel), das über das Bild geschoben wird. An jeder Position: Werte übereinanderlegen, multiplizieren, aufsummieren — eine Zahl. Alle Positionen zusammen ergeben die Feature-Map.
Der einzige Unterschied zum klassischen Bildfilter: Beim CNN sind die 9 Zahlen im Filter lernbare Gewichte — das Training findet selbst heraus, welche Filter der Aufgabe helfen.
Interaktiv: Filter über ein Mini-Bild schieben
Das 8×8-Bild hat eine vertikale Kante (Mitte) und eine horizontale (unten). Wähle einen Filter und fahre über die Feature-Map rechts — links siehst du, welchen 3×3-Ausschnitt die Zelle ansieht:
Input 8×8
Filter 3×3
1
0
-1
2
0
-2
1
0
-1
Feature-Map 6×6 — grün +, violett −
0.0
0.0
-2.8
-2.8
0.0
0.0
0.0
0.0
-2.8
-2.8
0.0
0.0
0.0
0.0
-2.8
-2.8
0.0
0.0
0.0
0.0
-2.8
-2.8
0.0
0.0
0.0
0.0
-2.1
-2.1
0.0
0.0
0.0
0.0
-0.7
-0.7
0.0
0.0
Der Kanten-Filter feuert genau dort, wo seine Kante verläuft — und ist überall sonst still. Genau das ist eine Feature-Map: eine Karte, wo im Bild ein bestimmtes Muster vorkommt. Eine Conv-Schicht lernt 32 oder 64 solcher Filter parallel.
Die übrigen Bausteine
ReLU — max(0, x) auf jede Zahl der Feature-Map. Negative Aktivierungen werden zu 0; erst diese Nichtlinearität macht das Stapeln von Schichten sinnvoll (sonst wäre alles zusammen wieder nur eine einzige lineare Operation).
MaxPooling (2×2) — aus jedem 2×2-Block bleibt das Maximum: halbe Auflösung, „war das Muster hier irgendwo?“ statt exakter Position. Macht das Netz robust gegen kleine Verschiebungen und viertelt die Datenmenge.
Flatten + Dense + Softmax — am Ende werden die letzten Feature-Maps zu einem Vektor und eine normale Softmax-Schicht klassifiziert: Logistic Regression auf gelernten Features.
Mit jeder Stufe schrumpft die Fläche (Pooling) und wächst die Zahl der Filter — das Netz tauscht Wo-Information gegen Was-Information. Genau dieses Modell bauen wir in der nächsten Lektion in Keras.
🤔Warum eigentlich? — Warum ausgerechnet max beim Pooling?›
Eine Feature-Map sagt, wie stark ein Muster an jeder Stelle vorkommt. Für die Klassifikation zählt meist ob es vorkommt, nicht der exakte Pixel — das Maximum eines Blocks ist genau diese Information. Mittelwert-Pooling würde ein starkes, kleines Signal mit drei leeren Nachbarn verwässern. Moderne Architekturen ersetzen Pooling teils durch Convolutions mit Schrittweite 2 (strided convolutions) — gleiche Wirkung, lernbar.
⚠️Häufiger Denkfehler — Padding und Größen-Schwund vergessen›
Ohne Padding schrumpft jede 3×3-Convolution das Bild um 2 Pixel (unser 8×8 → 6×6). Bei tiefen Netzen summiert sich das, und irgendwann passt kein Filter mehr aufs Restbild — der Klassiker unter den Shape-Errors in Keras. padding="same" hält die Größe konstant, geschrumpft wird dann kontrolliert per Pooling. Faustregel: Conv erhält die Größe, Pooling halbiert sie.
🔬Tiefer rein — Receptive Field: wie weit ein Neuron sieht›
Ein Neuron der ersten Schicht sieht 3×3 Pixel. Eines der zweiten Schicht sieht 3×3 Feature-Map-Zellen, die je 3×3 Pixel decken — effektiv 5×5, nach Pooling noch mehr. Mit jeder Schicht wächst dieses Receptive Field, bis späte Neuronen das halbe Blatt überblicken. Erst dadurch kann das Netz große Strukturen (Fleckenmuster, Blattform) erfassen, obwohl jeder einzelne Filter winzig ist. Zu flaches Netz + zu großes Objekt = das Netz kann das Muster prinzipiell nicht sehen.
🔗Hängt zusammen mit… — Hängt zusammen mit…›
Der CNN-Intuition (warum diese Bausteine genau die drei Bild-Annahmen umsetzen), dem Keras-Training (nächste Lektion: dieselbe Architektur als Code) und der Features-Lektion — der Sobel-Filter oben ist exakt das, was klassische Bildverarbeitung von Hand gebaut hat.