MNIST 수기문자 처리에서 볼 수 있듯이 10종의 수기 50000개를 일시에 처리하는 것이 아니고 예를 들자면 10종을 골고루 포함하는 100개 단위의 batch 를 택하여 수배회에 걸쳐 학습(train) 처리가 이루어진다. 이러한 과정에서 배치 정규화(Batch Normalization) 알고리듬이 도입이 가능할 것이다. 그 내용은 앞 입력층으로부터의 outcome들을 대상으로 통계적 평균과 표준편차를 구한 다음 outcome 으로부터 평균을 뺀 후(recentralizing) 표준편차로 나누어(resizing) 즉 통계학에서의 표준화 내지는 정규화(standardization) 를 실시하여 그 다음 hidden layer에 입력하는 과정을 뜻한다.
2015년 Sergey Ioff와 Christian Szegedy가 제안했는데 그 목적은 인공 신경망을 더 빠르고 안정적으로 만들고자 함이다. 경험적으로 성공은 했으나 활성화 함수를 적용하기 전에 매번 적용하기에는 곤란하다는 점도 많이 지적되고 있어 아직도 논의중이다. 그러나 초기화 시 배치 정규화는 실제로 deep 네트워크에서 심각한 기울기 폭발을 유발하기도 하므로 후반의 네트워크 연결에서 건너뛰기 방식으로 연결해야 만 완화가 가능하기도 하다. 2016년 발표된 ResNet에서 처럼 실제 한번씩 건너뛰기로 적용하는 경우가 바로 그 사례일 것이다. 물론 2012년 처음 발표된 AlexNet에서는 적용되지 않았으나 최근에 유포된 사전학습(pretrained)된 AlexNet 에서도 이미 적용이 되고 있다.
다음과같은 Deep Network 에서 입력 데이터세트를 읽어서 첫번째 웨이트 값 W1과 편향 b1을 도입하여 hypothesis 를 계산하게되며 이것이 바로 입력데이터로부터 얻어낸 outcome 이다.
아래와 같이 입력단 다음 층의 m개의 뉴론에 대해 평균과 표준편차를 계산하여 표준화가 가능하자. 분모의 엡실론은 나눗셈 과정에서 혹 0이 될지도 모르는 상황을 예방하기 위함이다.
아울러 배치정규 즉 h(norm)계산이 가능하게 되면 gamma 와 베타를 도입하여 rescaling 및 offsetting이 가능하다. 이들 파라메터 값들은 경험적으로 설정이 이루어진다.