Batch normalization is a technique that standardizes the inputs to each layer of a neural network during training, keeping the data distribution stable as it flows through the network. This speeds up training dramatically, allows higher learning rates, and acts as a mild regularizer. Without it, deep networks are prone to internal covariate shift, where each layer must constantly adapt to changing input distributions, slowing convergence.