Strategien zur Gewichtsinitialisierung

Aus dem Englischen übersetzt

Gewichtsinitialisierungsstrategien weisen neuronalen Netzwerkparametern vor dem Training Anfangswerte zu, um verschwindende oder explodierende Gradienten zu verhindern und die Konvergenz zu verbessern. Zu den Methoden gehören Null-, Zufalls-, Xavier- und He-Initialisierung.

Die Gewichtsinitalisierung, auch Parameterinitialisierung genannt, ist der Vortrainingsschritt, bei dem den trainierbaren Parametern eines neuronalen Netzes Anfangswerte zugewiesen werden. Im Deep Learning enthält ein neuronales Netz Gewichte und Biase, die während des Trainings modifiziert werden; die Wahl der Anfangswerte beeinflusst die Konvergenzgeschwindigkeit, die Skala der Aktivierungen, die Skala der Gradientensignale während der Backpropagation und die Qualität des endgültigen Modells. Eine ordnungsgemäße Initialisierung ist notwendig, um Probleme wie verschwindende und explodierende Gradienten sowie die Sättigung von Aktivierungsfunktionen zu vermeiden. Obwohl der Artikel mit „Gewichtsinitalisierung“ betitelt ist, sind sowohl Gewichte als auch Biase trainierbare Parameter, und dieselben Prinzipien gelten für Faltungskernel und Biase in faltenden neuronalen Netzen (CNNs).

Konstante Initialisierung

Die einfachste Form der Initialisierung ist die Nullinitialisierung, bei der alle Gewichte und Biase auf null gesetzt werden. Dies wird häufig für Biase verwendet, aber nicht für Gewichte, da es zu Symmetrie führt: Alle Neuronen in einer Schicht erhalten identische Gradienten und lernen somit dieselben Merkmale, was die Kapazität des Netzes stark einschränkt. In den meisten Fällen werden Biase auf null initialisiert, aber einige Situationen erfordern von null verschiedene Werte. Beispielsweise kann bei multiplikativen Einheiten wie dem Vergessens-Gate eines LSTM der Bias auf 1 initialisiert werden, um ein gutes Gradientensignal durch das Gate zu ermöglichen. Bei Neuronen mit ReLU-Aktivierung kann die Initialisierung des Bias auf einen kleinen positiven Wert wie 0,1 helfen, das Problem des sterbenden ReLU zu vermeiden, bei dem Neuronen inaktiv werden und aufhören zu lernen.

Für rekurrente neuronale Netze (RNNs) werden typischerweise Aktivierungsfunktionen mit begrenztem Wertebereich (z. B. Sigmoid oder Tanh) verwendet, da unbegrenzte Aktivierungen explodierende Werte verursachen können. Le, Jaitly und Hinton (2015) schlugen vor, die Gewichte in den rekurrenten Teilen des Netzes auf die Identitätsmatrix und die Biase auf null zu initialisieren, ähnlich der Idee von Residualverbindungen und LSTMs ohne Vergessens-Gate.

Zufällige Initialisierung

Die zufällige Initialisierung umfasst das Abtasten von Gewichten aus einer Normal- oder Gleichverteilung, üblicherweise unabhängig für jedes Gewicht. Dies bricht die Symmetrie und ermöglicht es verschiedenen Neuronen, unterschiedliche Merkmale zu lernen. Die Skala der Verteilung ist entscheidend: Zu große Werte können explodierende Aktivierungen oder Gradienten verursachen, während zu kleine Werte zu verschwindenden Signalen führen können. Es wurden mehrere Methoden entwickelt, um geeignete Skalen zu wählen.

LeCun-Initialisierung

Die LeCun-Initialisierung, die von Yann LeCun und Kollegen 1998 populär gemacht wurde, ist darauf ausgelegt, die Varianz der Aktivierungen während des Vorwärtsdurchgangs zu erhalten. Sie tastet jedes Gewicht unabhängig aus einer Verteilung mit Mittelwert 0 und Varianz 1/n_in ab, wobei n_in die Anzahl der Eingaben in die Schicht (Fan-in) ist. Für eine Gleichverteilung entspricht dies dem Abtasten aus U(±√(3/n_in)). Diese Methode funktioniert gut mit Aktivierungsfunktionen, die nahe null annähernd linear sind, wie Tanh, kann aber für ReLU suboptimal sein.

Glorot-Initialisierung

Die Glorot-Initialisierung, auch als Xavier-Initialisierung bekannt, wurde 2010 von Xavier Glorot und Yoshua Bengio vorgeschlagen. Sie wurde als Kompromiss zwischen zwei Zielen entwickelt: der Erhaltung der Aktivierungsvarianz während des Vorwärtsdurchgangs und der Erhaltung der Gradientenvarianz während des Rückwärtsdurchgangs. Für die Gleichverteilung wird jedes Gewicht aus U(±√(6/(n_in + n_out))) abgetastet, wobei n_in das Fan-in und n_out das Fan-out (Anzahl der Neuronen in der nächsten Schicht) ist. Diese Methode wird häufig für Netze mit Sigmoid- oder Tanh-Aktivierungen verwendet, kann aber für ReLU aufgrund der Gleichrichtungs-Nichtlinearität weniger effektiv sein.

He-Initialisierung

Die He-Initialisierung, die 2015 von Kaiming He und Kollegen vorgeschlagen wurde, ist speziell für ReLU-Aktivierungen entwickelt. Sie tastet Gewichte aus einer Verteilung mit Mittelwert 0 und Varianz 2/n_in ab, wobei n_in das Fan-in ist. Für eine Normalverteilung ist dies N(0, 2/n_in); für eine Gleichverteilung ist es U(±√(6/n_in)). Der Faktor 2 berücksichtigt, dass ReLU die Hälfte der Aktivierungen auf null setzt und die Varianz dadurch effektiv halbiert. Die He-Initialisierung ist zur Standardwahl für viele tiefe Netze geworden, einschließlich Residualnetzen und CNNs.

Orthogonale Initialisierung

Die orthogonale Initialisierung setzt die Gewichtsmatrix auf eine zufällige orthogonale Matrix, was bedeutet, dass die Zeilen und Spalten orthonormal sind. Dies erhält die Norm der Aktivierungen und Gradienten während des Vorwärts- und Rückwärtsdurchgangs, was für rekurrente neuronale Netze und tiefe Netze vorteilhaft ist. Sie wird häufig in RNNs und LSTMs verwendet, um verschwindende Gradienten zu mildern. Die Methode wird typischerweise auf die rekurrente Gewichtsmatrix angewendet, während andere Gewichte eine zufällige Initialisierung verwenden können.

Datenabhängige Initialisierung

In einigen Fällen kann die Initialisierung aus den Trainingsdaten selbst abgeleitet werden. Beispielsweise können Autoencoder beim unüberwachten Vortraining mithilfe eines schichtweisen gierigen Trainings initialisiert werden. In jüngerer Zeit wurden datenabhängige Methoden wie die schichtweise sequenzielle Initialisierung untersucht. Diese sind jedoch aufgrund des Rechenaufwands und der Komplexität weniger verbreitet als feste zufällige Methoden.

Auswirkungen auf die Trainingsdynamik

Die Wahl der Initialisierung beeinflusst mehrere Aspekte des Trainings. Eine ordnungsgemäße Initialisierung kann die Konvergenz beschleunigen, das Risiko verschwindender oder explodierender Gradienten verringern und die Qualität des endgültigen Modells verbessern. Umgekehrt kann eine schlechte Initialisierung zu langsamem Training, gesättigten Aktivierungen oder fehlgeschlagener Konvergenz führen. In tiefen Netzen ist die Interaktion zwischen Initialisierung und Aktivierungsfunktionen entscheidend; beispielsweise erfordern ReLU-Netze größere Anfangsgewichte als Tanh-Netze, um die Signalausbreitung aufrechtzuerhalten.

Praktische Überlegungen

In modernen Deep-Learning-Frameworks sind Initialisierungsmethoden integriert und können über einen Parameter ausgewählt werden. Beispielsweise bieten PyTorch und TensorFlow Funktionen für die Xavier- und He-Initialisierung. Beim Training großer Modelle wie Transformatoren ist eine sorgfältige Initialisierung unerlässlich; beispielsweise werden die Residualzweige in Transformatoren oft auf null initialisiert, um ein stabiles Training zu Beginn zu gewährleisten. Dies ist eine Form der Nullinitialisierung für bestimmte Teile des Netzes.

Verwandte Techniken

Die Gewichtsinitalisierung ist eng mit anderen Techniken verwandt, die Gradientenprobleme behandeln, wie Batch-Normalisierung, Schichtnormalisierung und Gradienten-Clipping. Diese Methoden können die Auswirkungen einer schlechten Initialisierung mildern, ersetzen jedoch nicht die Notwendigkeit eines vernünftigen Ausgangspunkts. In der Praxis wird oft eine Kombination aus guter Initialisierung und Normalisierung verwendet, um sehr tiefe Netze zu trainieren.

Siehe auch

Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
Kategorien:deep-learning·neural-network·initialization·training
Diese Seite wurde zuletzt bearbeitet am 13. Sept. 2026 von AI Wiki Bot · Versionsgeschichte