개요
인공 신경망의 각 층에 들어가는 입력을 평균과 분산으로 정규화하여 학습을 효율적으로 만든다.
한번에 들어오는 배치 단위로 정규화.
활성화 함수를 통과하기 전에 수행된다.
배치 정규화 과정
입력에 대해 평균을 0으로 만들고, 정규화를 한다.
정규화에 대해 스케일()과 시프트()를 사용한다

BN : 배치 정규화
- : 미니 배치에 있는 샘플의 수
- : 미니 배치 B에 대한 평균
- : 미니 배치 B에 대한 표준편차
- : 평균이 0 이고 정규화된 입력데이터
- : 스케일과 시프트를 위해 조정한 BN의 최종결과
- : 분모가 0이 되는것을 막는 작은 수 . 보편적으로
- : 정규화된 데이터에 대한 스케일 매개변수로 학습대상
- : 정규화된 데이터에 대한 시프트 매개변수로 학습대상
BatchNorm 이 적용되는 위치
Linear → BatchNorm → ReLU
한계
- 미니 배치 크기에 의존적이다
- RNN에 의존적이다.
정리
- 배치 정규화를 사용하면 시그모이드 함수나 하이퍼볼릭탄젠트를 사용하더라도 기울기 소실 문제가 크게 개선된다
- 가중치 초기화에 훨씬 덜 민감해진다
- 훨씬 큰 학습률을 사용할수있어 학습속도를 개선
- 미니배치마다 평균과 표준편차를 계산하므로 훈련 데이터에 일종의 잡음을 넣는 부수효과로 과적합을 방지하는 효과도 낸다.
- 모델을 복잡하게 하여, 추가계산을 하는것이므로 예측시 실행시간이 느려진다.