Convolutional Neural Network (CNN)
Ein faltendes neuronales Netz (CNN) lernt Bildmerkmale mithilfe gemeinsam genutzter, gleitender Filter. Hier geht es um seine Schichten, Eigenschaften und wichtige Modelle sowie um den Vergleich von CNNs und ViTs.
Ein faltendes neuronales Netzwerk (CNN) ist eine Architektur für Deep Learning, die gitterförmige Daten, meistens Bilder, mit kleinen lernbaren Filtern verarbeitet, die über die Eingabe verschoben werden. Jeder Filter verwendet an jeder Position dieselben Gewichte wieder. So erkennt ein CNN ein Muster wie eine Kante oder ein Rad unabhängig davon, wo es auftritt, und benötigt dabei viel weniger Parameter als ein vollständig verbundenes Netzwerk. Gestapelte Schichten bilden eine Hierarchie von Merkmalen: von Kanten und Texturen in den ersten Schichten bis hin zu Objektteilen und ganzen Objekten in tieferen Schichten. CNNs haben seit AlexNets Sieg bei der ImageNet-Challenge im Jahr 2012 die meisten Fortschritte in der Computer Vision vorangetrieben und sind nach wie vor die häufigste Wahl für Echtzeit-Computer Vision auf Edge-Hardware.
So funktioniert ein CNN#
Ein CNN wiederholt einige wenige Schichttypen in mehreren Stufen. Jede Stufe arbeitet mit einer geringeren Auflösung als die vorherige:
- Faltungs schichten: Jede Schicht verschiebt eine Reihe lernbarer Filter, typischerweise mit einer Größe von 3×3, über Höhe und Breite der Eingabe. Jeder Filter erzeugt einen Kanal der Ausgabe-Merkmalskarte. Eine Schicht mit 64 Filtern gibt daher 64 Kanäle aus.
- Normalisierung und Aktivierung: Die Batch-Normalisierung hält die Ausgaben jeder Schicht während des Trainings in einem stabilen Wertebereich. Eine nichtlineare Aktivierungsfunktion wie ReLU oder SiLU ermöglicht es gestapelten Schichten, mehr als eine lineare Transformation darzustellen.
- Verkleinerung der Auflösung: Max-Pooling oder eine Faltung mit Schrittweite 2 halbiert Höhe und Breite. Dadurch vergrößert sich das rezeptive Feld späterer Schichten und der Rechenaufwand sinkt. Viele moderne Architekturen verkleinern die Auflösung überwiegend durch Faltungen mit Schrittweite.
- Kopf: Bei der Bildklassifizierung reduziert globales Average Pooling jeden finalen Kanal auf eine Zahl. Eine vollständig verbundene Schicht bildet diese Zahlen auf Klassenwerte ab. Detektions- und Segmentierungsmodelle ersetzen diesen Kopf durch Schichten, die Begrenzungsrahmen oder Masken für einzelne Pixel vorhersagen.
Wichtige Eigenschaften von CNNs#
Drei Eigenschaften erklären, warum sich Faltungen für Bilder eignen. Die lokale Verknüpfung bedeutet, dass jede Ausgabe nur von einer kleinen Nachbarschaft der Eingabe abhängt. Das entspricht der starken Korrelation benachbarter Pixel. Durch gemeinsame Gewichte wird ein Filter für das gesamte Bild verwendet, sodass die Anzahl der Parameter unabhängig von der Eingabegröße gleich bleibt. Translationsäquivarianz bedeutet, dass eine Verschiebung der Eingabe die Merkmalskarte um denselben Betrag verschiebt. Ein in einer Bildecke gelerntes Muster wird dadurch überall erkannt. Pooling-Schichten sorgen zusätzlich für eine gewisse Toleranz gegenüber kleinen Verschiebungen. Zusammen bilden diese Eigenschaften die induktive Verzerrung eines CNN: die eingebauten Annahmen, dank derer es mit weniger Bildern lernen kann als ein Transformer.
Das folgende PyTorch-Codebeispiel vergleicht eine Faltungsschicht mit einer vollständig verbundenen Schicht, die auf dasselbe RGB-Bild mit 224×224 Pixeln angewendet werden.
import torch
from torch import nn
image = torch.randn(1, 3, 224, 224)
# 64 learnable 3x3 filters, each reused at every position of the RGB image
conv = nn.Conv2d(in_channels=3, out_channels=64, kernel_size=3, padding=1)
# A fully connected layer mapping the same flattened image to only 64 numbers
dense = nn.Linear(3 * 224 * 224, 64)
conv_params = sum(p.numel() for p in conv.parameters())
dense_params = sum(p.numel() for p in dense.parameters())
print(f"Conv2d: output {tuple(conv(image).shape)}, {conv_params:,} parameters")
print(f"Linear: output {tuple(dense(image.flatten(1)).shape)}, {dense_params:,} parameters")Ausgegeben werden Conv2d: output (1, 64, 224, 224), 1,792 parameters und Linear: output (1, 64), 9,633,856 parameters. Dank gemeinsam genutzter Gewichte erzeugt die Faltung mit 1.792 Parametern 64 Merkmalskarten in voller Auflösung. Die vollständig verbundene Schicht benötigt 5.376-mal so viele Parameter, um nur 64 Zahlen auszugeben.
Wegweisende CNN-Architekturen#
- LeNet-5 (1998): Yann LeCuns Netzwerk zum Lesen handgeschriebener Ziffern etablierte das Muster aus abwechselnden Faltungs- und Pooling-Schichten, auf die vollständig verbundene Schichten folgen. Es wurde kommerziell zum Lesen von Bankschecks eingesetzt.
- AlexNet (2012): Das mit ReLU-Aktivierungen und Dropout auf zwei GPUs trainierte Modell gewann die ILSVRC-Challenge 2012 mit einem Top-5-Testfehler von 15,3 %, gegenüber 26,2 % beim zweitbesten Beitrag.
- VGG (2014): Zeigte, dass das Stapeln kleiner 3×3-Faltungen auf eine Tiefe von 16 bis 19 Gewichtsschichten die ImageNet-Genauigkeit deutlich verbessert.
- ResNet (2015): Residualverbindungen ermöglichten das Training von Netzwerken mit bis zu 152 Schichten. Ein Ensemble aus ResNets gewann ILSVRC 2015.
- U-Net (2015): Ein faltendes Encoder-Decoder-Netzwerk mit Übersprungverbindungen, das zur Standardarchitektur für die biomedizinische Bildsegmentierung wurde.
- ConvNeXt (2022): Ein mit Gestaltungsentscheidungen aus der Transformer-Ära modernisiertes ResNet, das eine Top-1-Genauigkeit von 87,8 % auf ImageNet erreicht und Swin Transformer bei der COCO-Detektion übertrifft.
Einsatzbereiche von CNNs#
- Objekterkennung: Einstufige CNN-Detektoren finden und klassifizieren Objekte in einem einzigen Durchlauf. Das ist schnell genug für Videos auf Kameras, Smartphones und eingebetteten Platinen.
- Medizinische Bildanalyse: CNNs nach dem Vorbild von U-Net segmentieren Organe, Tumoren und Läsionen in CT- und MRT-Aufnahmen, bei denen die Beschriftung jedes Pixels wichtig ist.
- Posenschätzung: CNNs sagen Körper-Schlüsselpunkte für Sportanalysen, Ergonomie und Fitness-Apps voraus.
- Signale jenseits von Bildern: Eindimensionale Faltungen verarbeiten Audio-Wellenformen und Sensor-Zeitreihen. Zweidimensionale CNNs klassifizieren Spektrogramme für die Spracherkennung.
CNNs und Vision Transformer#
Ein Vision Transformer (ViT) teilt ein Bild in Ausschnitte und verknüpft mithilfe von Selbstaufmerksamkeit jeden Ausschnitt mit allen anderen. Dadurch verfügt er bereits in der ersten Schicht über globalen Kontext. Seine schwächere induktive Verzerrung hat jedoch ihren Preis: Der ursprüngliche ViT blieb ähnlich großen ResNets hinterher, wenn er nur mit ImageNet trainiert wurde, und konnte erst nach Vortraining mit 14 bis 300 Millionen Bildern gleichziehen oder sie übertreffen. Außerdem steigen die Kosten der Aufmerksamkeit mit dem Quadrat der Ausschnittzahl. Dadurch wird eine hohe Eingabeauflösung teuer, während die Kosten einer Faltung nur linear mit der Pixelzahl steigen. Viele aktuelle Modelle kombinieren daher beide Ansätze: Sie verwenden bei hoher Auflösung Faltungsstufen und fügen Aufmerksamkeit hinzu, wenn die Merkmalskarte klein ist. YOLO26 folgt diesem Muster: Conv-Blöcke (Faltung, Batch-Normalisierung und SiLU) sowie C3k2-Blöcke übernehmen den Großteil der Arbeit. Mehrkopf-Selbstaufmerksamkeit wird nur auf der Merkmalskarte mit Schrittweite 32 ausgeführt, einem Raster von 20×20 für ein Bild mit 640×640 Pixeln.










