Residual Networks (ResNet)
Ein Residualnetz (ResNet) addiert die Eingabe jedes Blocks über eine Skip-Verbindung zu dessen Ausgabe, sodass sich sehr tiefe Netze trainieren lassen. Behandelt Blöcke, Varianten und Code.
Ein Residuelles Netz (ResNet) ist ein tiefes faltendes neuronales Netz (CNN) aus Residualblöcken. Dabei addiert eine Abkürzungsverbindung die Eingabe jedes Blocks zu dessen Ausgabe. Jeder Block lernt dadurch nur eine Korrektur seiner Eingabe, sodass sich Netze mit 50, 152 oder über 1.000 Schichten zuverlässig trainieren lassen. Kaiming He, Xiangyu Zhang, Shaoqing Ren und Jian Sun von Microsoft Research stellten ResNet 2015 in der Arbeit Deep Residual Learning for Image Recognition vor. Ein Ensemble aus Residuellen Netzen gewann die Klassifizierungsaufgabe der ILSVRC 2015 mit einem Top-5-Fehler von 3,57 % auf ImageNet. Residualverbindungen gehören seither zum Standard der meisten tiefen Architekturen, darunter Transformer und Echtzeit-Objektdetektoren.
Das Degradationsproblem#
Vor ResNet führte das Hinzufügen von Schichten zu einem einfachen Stapel aus Faltungsschichten schließlich zu schlechteren Ergebnissen. Die ResNet-Autoren zeigten, dass ein einfaches Netzwerk mit 56 Schichten einen höheren Trainingsfehler aufwies als ein Netzwerk mit 20 Schichten, sodass Überanpassung den Leistungsabfall nicht erklären konnte. Das tiefere Netzwerk hätte das flachere nachbilden können, indem es seine zusätzlichen Schichten auf die Identitätsabbildung setzte, doch Gradientenabstieg fand diese Lösung nicht. Die Autoren bezeichneten dies als Degradationsproblem. Das Problem des verschwindenden Gradienten war durch normalisierte Gewichtsinitialisierung und Batch-Normalisierung bereits weitgehend behoben, sodass einfache tiefe Netzwerke zwar konvergierten, jedoch nur zu schlechteren Lösungen.
So funktionieren Residualblöcke#
Ein Residualblock berechnet y = F(x) + x. Dabei ist x die Eingabe des Blocks und F ein kleiner Stapel von Schichten, üblicherweise zwei oder drei Faltungen mit Batch-Normalisierung und ReLU. Liegt die beste Abbildung für den Block nahe an einer Identitätsabbildung, müssen die Schichten F nur gegen null verschieben. Das ist deutlich einfacher, als die Identität von Grund auf zu lernen. Die Abkürzung bietet Gradienten außerdem einen direkten Rückweg durch jeden Block. Identitätsverbindungen erfordern keine Parameter und verursachen nahezu keinen zusätzlichen Rechenaufwand. Ändert ein Block die Anzahl der Kanäle oder verringert sie durch einen Schritt von 2 die Auflösung, stimmen die Formen von x und F(x) nicht mehr überein. Eine 1×1-Faltung projiziert die Abkürzung dann auf die neue Form.
ResNet-18 und ResNet-34 bestehen aus diesem grundlegenden Block mit zwei Faltungen. ResNet-50, ResNet-101 und ResNet-152 verwenden einen Engpassblock aus drei Faltungen: Eine 1×1-Faltung verringert die Anzahl der Kanäle, eine 3×3-Faltung verarbeitet sie und eine zweite 1×1-Faltung stellt die ursprüngliche Kanalzahl wieder her. So bleiben tiefe Modelle erschwinglich. ResNet-50 hat etwa 25,6 Millionen Parameter. In der Originalarbeit trainierten die Autoren außerdem ein Netz mit 1.202 Schichten auf CIFAR-10 auf einen Trainingsfehler von unter 0,1 %. Sein Testfehler von 7,93 % war jedoch höher als der Fehler von 6,43 % eines Netzes mit 110 Schichten. Die Autoren führten diesen Unterschied auf Overfitting bei dem kleinen Datensatz zurück.
ResNet-Varianten#
- ResNet mit Voraktivierung: In einer Folgearbeit von 2016 verlegten dieselben Autoren Batch-Normalisierung und ReLU vor jede Faltung, sodass der Pfad der Abkürzungsverbindung eine reine Identität blieb. Außerdem trainierten sie ein Netz mit 1.001 Schichten auf CIFAR-10.
- ResNeXt: Teilt jeden Engpass in zahlreiche parallele Pfade mit geringer Breite auf, deren Anzahl als Kardinalität bezeichnet wird. Dadurch steigt die Genauigkeit bei gleichen Rechenkosten.
- Wide ResNet: Verwendet weniger, dafür breitere Blöcke und zeigt, dass größere Breite einen Teil der Tiefe ersetzen kann.
- Modernisierte ResNets: ConvNeXt (2022) überarbeitete das ResNet-Design mit größeren Kerneln, Layer-Normalisierung und GELU-Aktivierungen, um mit Vision-Transformern zu konkurrieren.
Ein vortrainiertes ResNet verwenden#
Vortrainierte ResNets sind weiterhin gängige Baselines und Backbones für Transfer Learning. Die ResNet-Modelle von torchvision werden mit ImageNet-Gewichten und passender Vorverarbeitung ausgeliefert. So lässt sich ein Bild klassifizieren, indem du nur wenige Codezeilen ausführst:
import urllib.request
import torch
from torchvision.io import decode_image
from torchvision.models import ResNet50_Weights, resnet50
# Load ResNet-50 with ImageNet weights and its matching preprocessing
weights = ResNet50_Weights.DEFAULT
model = resnet50(weights=weights).eval()
preprocess = weights.transforms()
# Download and decode a sample image
data = urllib.request.urlopen("https://ultralytics.com/images/bus.jpg").read()
image = decode_image(torch.frombuffer(bytearray(data), dtype=torch.uint8))
# Classify the image and report the most likely ImageNet class
with torch.no_grad():
probs = model(preprocess(image).unsqueeze(0)).softmax(dim=1)
score, index = probs.max(dim=1)
print(f"{weights.meta['categories'][index.item()]}: {score.item():.2f}")Ausgegeben wird minibus: 0.25, die der Stadtbus im Foto am ehesten entsprechende Klasse unter den 1.000 ImageNet-Klassen. Für eine eigene Aufgabe kannst du die letzte vollständig verbundene Schicht ersetzen und das Modell anhand neuer Kennzeichnungen feinabstimmen. So nutzt du die Merkmale wieder, die die Residualstufen auf ImageNet gelernt haben.
ResNet und verwandte Architekturen#
- Einfache Netze wie VGG: VGG stapelt 3×3-Faltungen ohne Abkürzungen und umfasst höchstens 19 Gewichtsschichten. ResNet-152 ist achtmal tiefer und zugleich weniger komplex als VGG-19.
- Highway-Netze: Sie wurden parallel zu ResNet entwickelt und ergänzen gelernte Tore, die die Abkürzung schließen können. Die Identitätsverbindungen von ResNet werden nie geschlossen und benötigen keine Parameter.
- DenseNet: Verknüpft die Ausgaben aller vorherigen Schichten eines Blocks, anstatt eine einzelne Abkürzungsverbindung zu addieren. So werden Merkmale wiederverwendet, allerdings auf Kosten einer wachsenden Kanalzahl.
- U-Net: Seine Skip-Verbindungen führen Merkmalskarten des Encoders zum Decoder und verknüpfen sie dort. So werden weit auseinanderliegende Stufen miteinander verbunden, statt einzelne Blöcke zu umschließen.
- Vision-Transformer (ViT): Ersetzen Faltungen durch Selbstaufmerksamkeit, behalten aber Residualverbindungen um jede Aufmerksamkeits- und Feedforward-Teilschicht bei, wie alle Transformer.
Residualverbindungen in modernen Modellen#
Die Residualidee überdauerte die konkreten ResNet-Architekturen. Jede Schicht eines großen Sprachmodells (LLM) addiert ihre Ausgaben aus Aufmerksamkeit und Feedforward-Netz zurück in einen fortlaufenden Residualstrom. Die meisten CNN-Detektoren bauen ihre Backbones aus Residualblöcken auf. In YOLO26 bestehen die C3k2-Blöcke aus Engpassmodulen, die x + F(x) zurückgeben, wenn Eingabe- und Ausgabekanäle übereinstimmen. Das Ultralytics-Paket enthält außerdem Konfigurationen von Baidus RT-DETR mit ResNet-50- und ResNet-101-Backbones. Die ResNet-Arbeit erhielt 2016 den Best Paper Award der CVPR. Eine Analyse aus dem Jahr 2025 in Nature stufte sie als meistzitierte Arbeit des 21. Jahrhunderts ein.










