Batch normalization

Choi Yeonung·2021년 5월 26일
0

머신러닝 기초

목록 보기
1/2

이 포스트는 논문 Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift의 내용을 정리합니다.

해결하려는 문제

Internal covariate shift

학습할 때 네트워크의 파라미터 변화 때문에 네트워크 activiation 분포가 변하는 현상이다. 이 때문에 신경망 학습이 저하된다.

해결 방법

Layer input의 normalization

Input: Values of xx over a mini-batch: B={x1...m};\mathcal{B}=\{x_{1...m}\};
Output: {yi=BNγ,β(xi)}\{y_i={\mathrm{BN}}_{\gamma,\beta}(x_i)\}

μB1mi=1mxi\mu_\mathcal{B}\gets{1\over m}\sum_{i=1}^mx_i                       // mini-batch mean
σB21mi=1m(xiμB)2\sigma_\mathcal{B}^2\gets{1\over m}\sum_{i=1}^m(x_i-\mu_\mathcal{B})^2       // mini-batch variance
xi^xiμBσB2+ϵ\hat{x_i}\gets\frac{x_i-\mu_\mathcal{B}}{\sqrt{\sigma_\mathcal{B}^2+\epsilon}}                                // normalize
yiγxi^+βBNγ,β(xi)y_i\gets\gamma\hat{x_i}+\beta\equiv\mathrm{BN}_{\gamma,\beta}(x_i)   // scale and shift
이 때, γ\gammaβ\beta는 학습 가능한 파라미터이다.

효과

  • 더 큰 learning rate를 사용할 수 있게 함
  • Parameter initialization에 덜 민감하게 함
  • Dropout을 필요 없게 함

실험 결과

  • State-of-the-art 이미지 분류 모델에 적용했을 때, 14만큼 적은 training step으로 같은 accuracy 달성.
  • 원래 모델보다 더 높은 정확도 달성.
  • 앙상블을 사용하여 ImageNet classification에 당시 최고의 결과를 얻음. Top-5 validation error 4.9% 달성, human 정확도를 넘음.
profile
Code as a hobby

0개의 댓글