NEW
Technique that normalizes layer inputs per mini-batch to stabilize training and enable higher learning rates.
DESCRIPTION
Batch Normalization standardizes activations within a mini-batch, then scales and shifts them with learnable parameters. It mitigates internal covariate shift, accelerates convergence, and allows larger learning rates. During training, it uses batch statistics; at inference, it relies on running averages. While effective in CNNs, it can underperform with very small batches or certain sequence models. Alternatives like LayerNorm and GroupNorm address small-batch or sequence scenarios.
ALTERNATIVE DEFINITIONS
Wikipedia
In deep learning, batch normalization is a technique used to improve the training of deep neural networks by normalizing the inputs to each layer.
Focuses on normalization of layer inputs to improve training.
Ioffe and Szegedy (2015)
We present a new mechanism, called Batch Normalization, that allows us to normalize the activations of each layer for each mini-batch, reducing internal covariate shift.
Original paper introducing mechanism and motivation.
PyTorch
Applies Batch Normalization over a 4D input (a mini-batch of 2D inputs with additional channel dimension) as described in the paper Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift.
Operational definition tied to common 2D convolutional case.
RELATED TERMS
Weight Normalization Residual Connection Internal Covariate Shift Dropout Activation Function Learning Rate
COMPETING TERMS
Layer Normalization Group Normalization
RELATIONS
- Broader: Normalization
KNOWLEDGE AREAS
TARGET AUDIENCE
AI Engineer Data Scientist MLOps Engineer
EXTERNAL SOURCES
- Wikipedia - Batch normalization
- arXiv - Original BatchNorm paper
- PyTorch - BatchNorm modules in PyTorch
- Keras - Keras BatchNormalization layer
TOP QUESTIONS
Why does Batch Normalization speed up training?
By normalizing activations, it stabilizes gradients and permits higher learning rates, often reducing epochs to converge.
Category: Relevancy
Does Batch Normalization always help?
No; very small batches or certain sequence models may see degraded performance; consider LayerNorm or GroupNorm.
Category: Mistakes
How does Batch Normalization behave at inference?
It uses running averages of mean and variance accumulated during training instead of batch statistics.
Category: Operations
What are gamma and beta in Batch Normalization?
They are learnable scale (gamma) and shift (beta) parameters that restore representational capacity after normalization.
Category: Concept
How does Batch Normalization interact with dropout?
Their order matters; typically apply BatchNorm before dropout to stabilize activations before random dropping.
Category: Practice
Where should Batch Normalization be placed in a block?
Commonly after linear/convolution and before nonlinearity (e.g., Conv โ BatchNorm โ ReLU).
Category: Best practices
What problems can Batch Normalization introduce?
With small batches, noisy statistics cause instability; also watch for train/eval mode mismatches in frameworks.
Category: Risk
Is Batch Normalization useful for transformers?
Transformers typically use LayerNorm, which is better suited to sequence modeling and small-batch regimes.
Category: Comparison
How to tune Batch Normalization momentum?
Adjust momentum to balance responsiveness and stability of running statistics; defaults often work, but small datasets may need higher momentum.
Category: Tuning