ResNet-50

dl_model_resnet_50.png
Quelle: Wikimedia.org

ResNet-50 (Paper: Deep Residual Learning for Image Recognition) ist ein tiefes neuronales Netzwerk, das auf der ResNet-Architektur (Residual Network) basiert und 50 Schichten tief ist. Die Schlüsselinnovation von ResNet ist die Idee von "Residual Learning" oder "Shortcut Connections". Diese "Verknüpfungen" erlauben es dem Modell, die Ausgabe einer Schicht nicht nur als Eingabe für die nächste Schicht zu verwenden, sondern sie auch direkt weiter unten in der Netzwerkarchitektur zu nutzen. Diese Art von Verknüpfung hilft, das Problem des "verschwindenden Gradienten" zu bekämpfen, das häufig in sehr tiefen neuronalen Netzwerken auftritt.

Jede Residual Unit in ResNet besteht aus mehreren Schichten, normalerweise einem Convolution Layer, gefolgt von einer Batch Normalization Layer und einer ReLU (Rectified Linear Unit) Activation Layer. Bei ResNet-50 werden manchmal "bottleneck" Blöcke mit drei Schichten verwendet, um die Anzahl der Parameter zu reduzieren und die Rechenleistung zu verbessern.

Das Modell wird typischerweise für Bildklassifikationsaufgaben verwendet und kann mit einer grossen Menge an Daten trainiert werden, um Muster und Merkmale in den Bildern zu erkennen. Es wird oft als Backbone-Netzwerk für viele Computer-Vision-Aufgaben verwendet, da es sehr effizient ist und hervorragende Ergebnisse liefert.

Das ResNet-50 wurde bei dieser Competition als Benchmark-Modell verwendet. Daher haben wir uns anfangs entschieden den Benchmark zu Rekreieren und dann den zu versuchen, das bestmögliche aus dem Modell herauszuholen, um zu sehen, was wir am Benchmark noch verbessern können.

Architektur in Python

from torchvision.models import resnet50, ResNet50_Weights

# Using pretrained weights:
model = resnet50(weights=ResNet50_Weights.IMAGENET1K_V1)

print(model)