Wprowadzenie
Weight Initialization Methods to techniki określania początkowych wartości wag w sieciach neuronowych. Poprawna inicjalizacja wag ma ogromny wpływ na szybkość treningu, stabilność gradientów oraz ostateczną jakość modelu.
Dlaczego inicjalizacja jest ważna?
- Źle zainicjowane wagi mogą powodować Vanishing Gradient lub Exploding Gradient
- Wpływa na to, jak szybko model będzie się uczył
- Ma znaczenie dla głębokich sieci (powyżej 10–20 warstw)
- Różne funkcje aktywacji wymagają różnych strategii
Główne metody inicjalizacji
1. Xavier / Glorot Initialization (2010)
Najpopularniejsza metoda dla aktywacji sigmoidalnych i tanh. Wagi są losowane z rozkładu normalnego lub jednostajnego z wariancją:
Var(W) = 2 / (fan_in + fan_out)
Najlepiej działa z aktywacjami: Sigmoid, Tanh.
2. He / Kaiming Initialization (2015)
Stworzona specjalnie dla aktywacji ReLU i jej wariantów (Leaky ReLU, PReLU). Uwzględnia fakt, że ReLU zeruje połowę aktywacji.
Var(W) = 2 / fan_in
Najczęściej używana w nowoczesnych sieciach konwolucyjnych i Transformerach z ReLU/GELU.
3. LeCun Initialization
Zalecana dla aktywacji SELU i w sieciach Fully Connected. Wariancja:
Var(W) = 1 / fan_in
Porównanie metod
- Xavier/Glorot → sigmoid / tanh
- He/Kaiming → ReLU, Leaky ReLU, GELU (najpopularniejsza obecnie)
- LeCun → SELU, sieci w pełni połączone
- Orthogonal Initialization – dobra dla RNN i bardzo głębokich sieci
Najlepsze praktyki (2026)
- W większości przypadków używaj He Initialization z ReLU/GELU
- W Transformerach często łączy się He z LayerNorm
- Zawsze sprawdzaj rozkład aktywacji po pierwszej warstwie (powinien być zbliżony do normalnego)
- W PyTorch i TensorFlow metody te są dostępne domyślnie (kaiming_uniform, xavier_uniform itd.)
Powiązane pojęcia
Vanishing Gradient • Exploding Gradient • ReLU • Layer Normalization • Xavier Glorot • Kaiming He • Residual Connections • Training Stability