What is batch normalization and how is it used in deep learning and computer vision models? How does batch normalization improve training speed and stability of neural networks? What problem does batch normalization solve during training? How does it affect gradient flow and model performance? What are the advantages and limitations of using batch normalization in computer vision tasks?