이 포스트는 논문 Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift의 내용을 정리합니다.
해결하려는 문제
Internal covariate shift
학습할 때 네트워크의 파라미터 변화 때문에 네트워크 activiation 분포가 변하는 현상이다. 이 때문에 신경망 학습이 저하된다.
해결 방법
Layer input의 normalization
Input: Values of x over a mini-batch: B={x1...m}; Output:{yi=BNγ,β(xi)}
μB←m1∑i=1mxi // mini-batch mean σB2←m1∑i=1m(xi−μB)2 // mini-batch variance xi^←σB2+ϵxi−μB // normalize yi←γxi^+β≡BNγ,β(xi) // scale and shift
이 때, γ와 β는 학습 가능한 파라미터이다.
효과
더 큰 learning rate를 사용할 수 있게 함
Parameter initialization에 덜 민감하게 함
Dropout을 필요 없게 함
실험 결과
State-of-the-art 이미지 분류 모델에 적용했을 때, 14만큼 적은 training step으로 같은 accuracy 달성.
원래 모델보다 더 높은 정확도 달성.
앙상블을 사용하여 ImageNet classification에 당시 최고의 결과를 얻음. Top-5 validation error 4.9% 달성, human 정확도를 넘음.