Weight Initialization (Gewichtsinitalisierung) legt die Startwerte aller trainierbaren Gewichte eines neuronalen Netzes fest, bevor das Training beginnt. Sie ist der erste Schritt beim Aufbau eines Modells und entscheidet maßgeblich darüber, ob das Training überhaupt konvergiert.
Warum die Initialisierung wichtig ist
Bei einem tiefen Netz werden die Aktivierungen Schicht für Schicht weitergegeben. Sind die Startgewichte zu groß, wachsen die Aktivierungen an und die Gradienten explodieren; sind sie zu klein, schrumpfen sie und die Gradienten verschwinden (Vanishing Gradients). Beides macht das Lernen über Backpropagation unmöglich.
Verbreitete Verfahren
- Zufällige Initialisierung: Kleine Zufallswerte, z.B. gleichverteilt im Intervall [-0,5; 0,5] — einfach, aber für tiefe Netze riskant.
- Xavier/Glorot (2010): Von Xavier Glorot und Yoshua Bengio vorgeschlagen; skaliert die Varianz mit der Zahl der Ein- und Ausgänge einer Schicht. Geeignet für Aktivierungen wie Sigmoid und Tanh.
- He/Kaiming (2015): Kaiming He und Kollegen erweiterten das Verfahren für ReLU-Aktivierungen, die die Hälfte ihrer Werte auf null setzen — Standard für moderne Netze.
Die Wahl hängt also von der Aktivierungsfunktion ab. Gute Startwerte wirken wie eine erste Regularisierung und erlauben höhere Learning Rates; zusammen mit Batch Normalization und Weight Decay wird das Training deutlich stabiler. Grundlage aller Verfahren bleibt der Gradient Descent, der die Gewichte Schritt für Schritt in Richtung des steilsten Abstiegs bewegt — ein falscher Startpunkt verlängert diesen Weg erheblich.
Praxis-Tipp
Frameworks wie PyTorch und TensorFlow initialisieren Standard-Netze automatisch mit He- oder Xavier-Verfahren. Wer eigene Schichten baut, sollte die Initialisierung explizit setzen und bei Problemen mit Deep Learning zuerst die Gewichte prüfen, bevor er die Learning Rate verändert.
Verwandte Grundlagen: Batch Normalization, Learning Rate Scheduler, KI-Training.