<p>Because different features of the same object mean different things, and it's not logical to calculate some statistics over these values. They can have different range, mean, std, etc. E.g. one of your features could mean the age of a person and other one is the height of the person. If you calculate mean of these values you will not get any meaningful number.</p>
<p>In classic machine learning (especially in linear models and KNN) you should normalize your features (i.e. calculate mean and std of the specific feature over the entire dataset  and transform your features to (X-mean(X)) / std(X) ). Batch normalization is analogue of this applied to stochastic optimization methods, like SGD (it's not meaningful to use global statistics on mini batch, furthermore you want to use batch norm more often than just before the first layer). More fundamenal ideas could be found in the <a href="https://arxiv.org/abs/1502.03167" rel="nofollow noreferrer">original paper</a></p>
Batch normalization
<p>Why the batch normalization is working on the different samples of the same characteristics instead of different characteristics of the same sample？ Shouldn't it be the normalization of different features？ In the diagram, why do we use the first row and not the first column？
Could someone help me？</p>
<p><img src="https://i.stack.imgur.com/lxiY1.png" alt="enter image description here" /></p>
<p><img src="https://i.stack.imgur.com/6HlPa.png" alt="enter image description here" /></p>