Wie viele Schichten hat ein Deep-Learning-Modell?
Eine feste Zahl gibt es nicht: Ein Deep-Learning-Modell kann drei Schichten haben oder mehrere Hundert. Entscheidend ist, was Sie überhaupt als Schicht zählen und welche Aufgabe das Netz lösen soll. Nach diesem Artikel wissen Sie, wie Tiefe (Depth) definiert ist, wie viele Gewichtsschichten Architekturen wie ResNet oder GPT-3 tatsächlich haben und wie Sie die passende Tiefe für Ihr eigenes Modell festlegen.
Was als Schicht zählt
Jedes neuronale Netz hat drei funktionale Blöcke:
- Eingabeschicht (Input Layer): nimmt die Rohdaten auf, ein Neuron pro Merkmal (bei einem 28×28-Pixel-Bild also 784 Eingänge). Sie enthält keine gelernten Gewichte und wird deshalb oft nicht mitgezählt.
- Verborgene Schichten (Hidden Layers): hier passiert die eigentliche Berechnung. Jede Schicht transformiert die Ausgabe der vorherigen mit einer Gewichtsmatrix und einer Aktivierungsfunktion.
- Ausgabeschicht (Output Layer): liefert das Ergebnis, zum Beispiel zehn Neuronen mit Softmax für zehn Klassen oder ein einzelnes Neuron für eine Regression.
Der Begriff „deep” bezieht sich auf die verborgenen Schichten. Ein Netz mit genau einer verborgenen Schicht heißt flach (shallow); ab zwei verborgenen Schichten spricht man üblicherweise von einem tiefen Netz. Das ist keine willkürliche Grenze: Der Universal-Approximation-Satz besagt, dass schon eine einzige, ausreichend breite verborgene Schicht jede stetige Funktion annähern kann. Nur braucht sie dafür oft absurd viele Neuronen. Mehrere Schichten lösen dieselbe Aufgabe mit deutlich weniger Parametern, weil jede Schicht auf den Merkmalen der vorherigen aufbaut.
Gewichtsschichten versus Hilfsschichten
Wenn von einem „50-Schichten-Netz” die Rede ist, sind fast immer die Schichten mit lernbaren Gewichten gemeint: Convolutional Layers und Fully-Connected (Dense) Layers. Nicht mitgezählt werden in der Regel:
- Pooling-Schichten (MaxPooling, AveragePooling) – verkleinern die Datenmenge, ohne Gewichte.
- Aktivierungsschichten (ReLU, Sigmoid, Softmax) – reine Funktionen.
- Dropout – schaltet im Training zufällig Neuronen ab, keine Gewichte.
- Normalisierung (BatchNorm, LayerNorm) – hat zwar minimale lernbare Parameter, zählt aber nicht zur „Tiefe”.
Das erklärt, warum in Frameworks wie Keras len(model.layers) eine viel größere Zahl anzeigt als der Name der Architektur suggeriert: Dort ist jede dieser Hilfsschichten ein eigenes Layer-Objekt.
Reale Zahlen bekannter Architekturen
Die folgenden Werte beziehen sich jeweils auf Gewichtsschichten und sind stabile, oft zitierte Eckdaten:
| Architektur (Jahr) | Gewichtsschichten | Typischer Einsatz |
|---|---|---|
| LeNet-5 (1998) | ca. 5–7 | Ziffernerkennung |
| AlexNet (2012) | 8 (5 Conv + 3 Dense) | Bildklassifikation |
| VGG-16 / VGG-19 (2014) | 16 bzw. 19 | Bildklassifikation |
| GoogLeNet / Inception v1 (2014) | 22 | Bildklassifikation |
| ResNet (2015) | 18, 34, 50, 101, 152 | Bild-Backbone |
| BERT-base / BERT-large (2018) | 12 bzw. 24 Encoder-Blöcke | Sprachverarbeitung |
| GPT-3 (2020) | 96 Transformer-Blöcke | Textgenerierung |
Zwei Dinge fallen auf. Erstens: Ab etwa 2015 wurden Netze sprunghaft tiefer. ResNet demonstrierte auf CIFAR-10 sogar Varianten mit über 1000 Schichten. Zweitens: Bei großen Sprachmodellen wird ein „Layer” nicht als einzelne Matrix gezählt, sondern als kompletter Transformer-Block aus Self-Attention plus Feed-Forward-Netz. BERT-base hat 12 solcher Blöcke, GPT-3 hat 96.
Für ganz aktuelle proprietäre Modelle (etwa GPT-4 oder vergleichbare) veröffentlichen die Anbieter die genaue Schichtzahl nicht mehr – hier kursieren nur Schätzungen.
Warum sehr tiefe Netze lange nicht funktionierten
Bis etwa 2012 blieben Netze flach, weil das Training tiefer Modelle scheiterte – am vanishing gradient: Beim Backpropagation-Verfahren werden Gradienten Schicht für Schicht rückwärts multipliziert. Bei Aktivierungsfunktionen wie Sigmoid werden diese Werte immer kleiner, bis die vorderen Schichten praktisch nichts mehr lernen. Der Loss bleibt hängen.
Drei Bausteine haben das gelöst und sind bis heute Standard:
- ReLU statt Sigmoid/Tanh als Aktivierung – der Gradient bleibt im positiven Bereich konstant 1.
- Batch Normalization (2015) – stabilisiert die Verteilung der Aktivierungen zwischen den Schichten.
- Residual Connections / Skip Connections (ResNet, 2015) – eine Abkürzung, die die Eingabe einer Schicht direkt zur Ausgabe addiert. Dadurch kann der Gradient ungehindert durch das gesamte Netz fließen.
Erst diese Skip Connections machten Netze mit 50, 100 oder mehr Schichten überhaupt trainierbar. Bewegt sich der Loss bei einem tiefen Modell nicht, fehlt fast immer eine dieser drei Zutaten – das ist der erste Punkt, den Sie prüfen sollten. Dass Tiefe auch Rechenleistung kostet, merken Sie spätestens bei der GPU-Wahl – siehe Welche Grafikkarte für Deep-Learning?.
Wie Sie die Schichten in Ihrem Modell zählen
In Keras / TensorFlow genügt:
model.summary() # Tabelle aller Layer inkl. Parameterzahl
print(len(model.layers)) # Gesamtzahl der Layer-Objekte
model.summary() listet jede Schicht mit Ausgabeform und Parameteranzahl. Achtung: Dropout, Pooling und Aktivierungen erscheinen hier als eigene Zeilen, obwohl sie nicht zur „Tiefe” zählen.
In PyTorch gibt es kein summary() in der Standardbibliothek. Ein print(model) zeigt die Struktur; die Gewichtsschichten zählen Sie am zuverlässigsten so:
weight_layers = sum(
1 for m in model.modules()
if isinstance(m, (torch.nn.Conv2d, torch.nn.Linear))
)
print(weight_layers)
Für eine Keras-ähnliche Tabelle installieren Sie torchinfo (pip install torchinfo) und rufen summary(model, input_size=(1, 3, 224, 224)) auf.
Wie viele Schichten sind für Ihr Projekt sinnvoll?
Mehr Schichten sind nicht automatisch besser. Ab einem gewissen Punkt bringt jede zusätzliche Schicht kaum Genauigkeit, kostet aber Rechenzeit und erhöht das Risiko der Überanpassung (Overfitting) – das Netz lernt die Trainingsdaten auswendig, versagt aber bei neuen Daten. Als praktische Orientierung:
- Tabellendaten: Zwei bis fünf verborgene Schichten reichen fast immer. Häufig schlagen hier ohnehin Gradient-Boosting-Verfahren wie XGBoost die neuronalen Netze.
- Bilder: Bauen Sie nicht bei null an. Nehmen Sie ein erprobtes Backbone wie ResNet-50 und nutzen Sie Transfer Learning – ein vortrainiertes Netz, das Sie nur auf Ihre Daten nachtrainieren. Die Schichtzahl ist dann vorgegeben.
- Text / Sequenzen: Vortrainierte Transformer (BERT und Nachfolger) sind der Standard; die Tiefe wählen Sie über die Modellgröße (base, large), nicht per Hand.
Die pragmatische Faustregel lautet: klein anfangen, dann vertiefen. Startet ein Modell mit deutlichem Underfitting (auch die Trainingsgenauigkeit ist schlecht), fügen Sie Schichten oder Neuronen hinzu. Overfittet es (Trainingsgenauigkeit hoch, Validierung schlecht), reduzieren Sie eher die Tiefe oder setzen auf Regularisierung: Dropout, Weight Decay, Data Augmentation und Early Stopping.
Häufige Fehler
- Tiefe und Breite verwechseln: Die Anzahl der Schichten (Tiefe) ist etwas anderes als die Anzahl der Neuronen pro Schicht (Breite). Beides wirkt unterschiedlich.
- Ohne Skip Connections zu tief bauen: Ein 40-Schichten-Netz ohne Residual-Verbindungen trainiert oft schlechter als ein flacheres. Nutzen Sie bewährte Bausteine.
- Hilfsschichten mitzählen und sich über die scheinbar riesige Layer-Zahl in
model.summary()wundern.
FAQ
Ab wann gilt ein Netz als „deep”? Sobald es mehr als eine verborgene Schicht hat, also mindestens zwei. Mit einer einzigen verborgenen Schicht spricht man von einem flachen Netz. Eine harte Obergrenze gibt es nicht – „deep” reicht von zwei bis über tausend Schichten.
Zählt die Eingabeschicht als Schicht? Meist nicht. Die Eingabeschicht enthält keine lernbaren Gewichte, sondern reicht die Daten nur weiter. Wenn von einem „N-Schichten-Netz” die Rede ist, sind die verborgenen Schichten plus die Ausgabeschicht gemeint.
Warum sind moderne Sprachmodelle so tief? Weil jeder Transformer-Block ein anderes Abstraktionsniveau lernt – von Syntax in frühen Schichten bis zu Bedeutung und Kontext in späteren. Mehr Blöcke plus mehr Trainingsdaten korrelieren empirisch mit besseren Ergebnissen, weshalb Modelle wie GPT-3 auf 96 Blöcke skaliert wurden. Ein Vergleich verschiedener Systeme findet sich unter ChatGPT oder Deep AI.