Deep Learning from Scratch1 - Ch6 배치정규화 알고리즘
less than 1 minute read
배치정규화(Batch Normalization) 알고리즘
- 2015년에 제안된 방법으로 각 층이 활성화를 적당히 퍼뜨리도록 ‘강제’하는 알고리즘
- 데이터분포를 정규화하는 ‘배치정규화(Batch Norm)’ 계층을 신경망에 삽입한다.
배치정규화의 장점
- 학습을 빠르게 진행할 수 있다.
- 초깃값에 크게 의존하지 않는다.
- 오버피팅을 억제한다.
수식
- 미니배치 B={x1, x2, … xm}이라는 m개의 입력 데이터의 집합에 대해 평균과 분산을 구한다.
- 입력 데이터를 평균이 0, 분산이 1이 되도록 정규화한다.
- ε(엡실론)은 작은 값으로, 0으로 나누는 사태를 예방한다.
- 이 단계를 활성화함수 앞(혹은 뒤)에 삽입함으로써 데이터 분포를 적절하게 만들 수 있다.
- 배치 정규화 계층마다 정규화된 데이터에 확대(scale)와 이동(shift)변환을 수행한다.
- γ가 확대를, β가 이동을 담당하고, 처음에는 γ=1, β=0부터 시작하여 학습을 통해 적합한 값으로 조정해간다.
배치정규화의 효과
- MNIST 데이터셋을 사용하여 배치정규화의 학습효과를 확인
- 초깃값 분포를 다르게 두고 학습 진행이 어떻게 달라지는지 관찰
- 실선이 배치정규화를 사용한 경우, 점선이 사용하지 않은 경우
- 거의 모든 경우에서 배치정규화를 사용할 때의 학습진도가 빠른 것으로 나타난다.
- 배치정규화를 이용하지 않은 경우에 초깃값이 잘 분포되어 있지 않으면 학습이 전혀 진행되지 않는 모습도 확인할 수 있다.
[참고자료]
Leave a comment