Wprowadzenie
Batch Normalization (BatchNorm) to technika wprowadzona w 2015 roku przez Sergey Ioffe i Christiana Szegedy. Jest jedną z najważniejszych innowacji w historii głębokiego uczenia, która znacząco przyspiesza i stabilizuje trening sieci neuronowych.
Problem, który rozwiązuje
Podczas treningu głębokich sieci rozkład aktywacji w warstwach ciągle się zmienia (tzw. Internal Covariate Shift). To zmusza sieć do ciągłego dostosowywania się, co spowalnia trening i wymaga mniejszych learning rate’ów.
Jak działa Batch Normalization?
- Dla każdej mini-partii (batch) oblicza średnią i odchylenie standardowe
- Normalizuje dane do rozkładu o średniej 0 i wariancji 1
- Dodaje skalowanie (γ) i przesunięcie (β) – parametry uczone przez sieć
Zalety Batch Normalization
- Znacznie szybszy trening sieci (nawet 10–14×)
- Pozwala na większe wartości learning rate
- Działa jak regularizacja (zmniejsza potrzebę Dropout)
- Zmniejsza wrażliwość na inicjalizację wag
- Umożliwia trenowanie bardzo głębokich sieci
Wady i warianty
- Zależność od rozmiaru batcha (słabo działa przy małych batchach)
- Problemy w rekurencyjnych sieciach i GAN-ach
- Warianty: Layer Normalization, Instance Normalization, Group Normalization
Aktualny status (2026)
Batch Normalization nadal jest bardzo popularna, choć w najnowszych architekturach (np. Transformer, Diffusion Models) często zastępowana jest przez Layer Normalization lub RMSNorm. Mimo to pozostaje standardem w sieciach konwolucyjnych (CNN) i wielu modelach tabularnych.