참고자료
우리가 다루는 딥러닝 모델은, 하나의 레이어만을 거쳐 output이 나오지 않는다. 여러 레이어를 거쳐 output이 나오게 된다. 다음 그림은 multi layer perceptron(MLP)의 예시이다.

이러한 구조에서 레이어를 하나 더 추가하여

이렇게 구성하여 한 레이어에서 다음 레이어로 전달되는 중간 features도 normalization해주자는 것이 batch normalization이다. 앞의 레이어의 output이 다음 layer의 학습에 영향을 주기 때문에, 중간 features도 normalize하여 학습이 더 잘 되도록 만들어주면 좋을 것이다.
일단 batch normalization 논문에서 말하는 연구의 목적은 Gradient Vanishing / Gradient Exploding 방지 이다.
이전에는 Activation 함수의 변화 (ReLU 등), Careful Initialization, small learning rate 등으로 해결했으나, 이러한 간접적인 방법보다는 ” training 하는 과정 자체를 전체적으로 안정화하여 학습 속도를 가속시킬 수 있는 근본적인 방법 찾기 “ 가 목적인 연구이다.
https://arxiv.org/abs/2002.10444 논문에서 정리한 batch normalization의 benefit은 다음과 같다
이에 대한 자세한 설명은 뒤쪽에서 하겠다