PaperarXiv
Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
A 2015 paper by Sergey Ioffe and Christian Szegedy that proposed normalising each layer's inputs per training mini-batch, which allowed higher learning rates, looser initialisation and much faster training of deep networks.
arXiv ID 1502.03167 Era Deep learning
The problem
Deep networks are trained by repeatedly nudging their parameters in the direction that reduces error. Every layer sees the output of the layer below it, so when the parameters of one layer change, the numbers arriving at the next layer change as well. The authors gave this a name: internal covariate shift, the change in the distribution of network activations caused by the change in network parameters during training[1].
That shifting input distribution makes training awkward. A layer has to keep adapting to a moving target, and small changes early in the network can be amplified into large changes later. The usual practical response is to train slowly — small learning rates — and to start from carefully chosen initial weights so that activations do not blow up or vanish. Both make training deep networks expensive.
The method
Sergey Ioffe and Christian Szegedy posted their paper to arXiv on 11 February 2015[1], proposing a deliberately simple fix: normalise the inputs to a layer for each training mini-batch[1]. Instead of feeding a layer whatever numbers happen to arrive, the network standardises them first — subtracting the average of the current mini-batch and dividing by its spread — so that each layer receives inputs on a comparable scale regardless of how the layers below have just changed.
Because the statistics are computed from the mini-batch, the operation fits naturally into ordinary mini-batch training: it is one more step in the forward pass, and the adjustments flow back through it during backpropagation. The point is not to freeze the distribution but to keep it stable enough that the layers above can rely on it.
The results
The authors reported several practical consequences. The method allowed much higher learning rates and less careful initialisation[1], removing two of the constraints that had made deep networks fiddly to train. It also acted as a regulariser, in some cases removing the need for dropout[1] — the noise introduced by computing statistics over a mini-batch rather than the whole dataset seemed to have a stabilising effect on its own.
The headline number was about speed. Applied to a state-of-the-art image classification model, batch normalisation reached the same accuracy with 14 times fewer training steps[1]. The authors also said the method let them train deep networks far beyond what was practical before[1].
Why it matters
The paper's contribution is as much conceptual as technical. It named a problem — internal covariate shift — that practitioners had felt but not articulated, and it offered a cheap, general remedy that could be inserted into almost any feed-forward architecture without redesigning it.
Its consequences run in two directions. On the practical side, it changes what a training budget buys: fewer steps to the same accuracy, more tolerance for aggressive learning rates, and less time spent tuning initialisation. On the conceptual side, it reframes a layer as something that should receive well-behaved inputs, treating the scaling of activations as part of the architecture rather than an accident of initialisation. The trade-off is that a layer's output now depends on the other examples in the same mini-batch, so the statistics are tied to how batches are formed.
Notes and sources
- Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shifthttps://arxiv.org/abs/1502.03167
Cite this page: Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift. TellWorld, https://www.tellworld.net/papers/batch-normalization-2015. Updated 2026-11-07