Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift

icml
google
icml2015

#1

Batch Normalization을 네트워크 레이어 사이에 추가함으로써 14배나 적은 트레이닝 스텝만으로도 훨씬 더 나은 성능을 얻을 수 있었다고 주장합니다. Internal Covariate Shift를 줄여주는 Batch Normalization의 영향이라고 합니다.

  • Internal Covariate Shift 를 줄임
  • 더욱 빠른 학습이 가능해짐
  • Learning Rate을 높여도 Diverge 하는 경우가 줄어듦
  • Regularization의 역할도 함.

Internal Covariate Shift

Back-propagation에 의해서 트레이닝이 진행이 되면, 특정 레이어는 해당 레이어보다 낮은 레이어가 변함에 따라 영향을 받게 됩니다. Network 가 깊어질수록, 작은 파라미터 변화에도 큰 영향을 줄 수 있습니다.

이러한 이유가 네트워크의 학습을 느리게 만들고, 파라미터 초기화에 민감해지는 이유라고 설명하고 있습니다.

즉, 특정 레이어는 인풋이 새로운 Distribution으로 계속해서 변해가는 것에 적응하며 학습해야하는 점 때문에 어려워지는 것이라고 보는 것입니다.

또, Sigmoid Activation g(x) = 1 / {1 + exp(-1)} 의 경우에 |x| 가 증가함에 따라 기울기 g'(x) 가 0에 수렴하게 되므로, Gradient는 Vanish하는 효과를 가져와서 네트워크의 학습이 느려지게 됩니다. 이러한 문제 역시도 ReLU 나 기타 다른 논문을 통해 다루어지던 문제이기는 하지만, 역시 네트워크의 인풋이 일정 범위 내로 안정적으로 들어온다면 학습 과정이 더욱 쉬울 것입니다.

Batch Normalization

Normalization

논문에서는 다른 복잡한 (더 나은) 방법에 대해 언급하면서, 제안하는 방법은 매우 심플하고 간결하게 내놓습니다. 바로 각각의 scalar feature에 대해서 평균이 0이고 분산이 1이 되도록 만들겠다는 것입니다. 즉,

\hat{x}^{(k)} = \dfrac{x^{(k)} - E[x^{(k)}]}{\sqrt{Var[x^{(k)}]}}

의 연산을 특정 레이어의 d-dimensional input x = (x^{(1)} ... x^{(d)}) 에 대해 수행하겠다는 뜻입니다. 또 여기에 이러한 변환이 원래 레이어가 표현하던 것을 표현할 수 있도록 보장하기 위해서 identity transform을 추가하여 아래와 같은 normalization을 제안합니다.

y^{(k)} = \gamma^{(k)}\hat{x}^{(k)}+\beta^{(k)}

Minibatch Estimation

위의 Normalization을 전체 트레이닝 데이터에 대해 처리하는 것은 불가하니, SGD의 특성대로 추정하기로 합니다. 즉 미니배치 내에서만 위와 같은 노멀라이제이션 과정을 거치도록 합니다.

image

Batch Normalization Training

특별별한 내용은 추가된 것이 없고, 설명한 내용을 트레이닝 과정에 맞추어서 소개한 부분입니다.

또 Batch Normalization은 Nonlinear Activation 직전, 즉 Weight Matrix와 곱한 직후에 적용되게 되는데 이는 Activation 이후보다 훨씬 ‘가우시안스러운’ 분포를 띌 것이기 때문이라고 합니다.

z = g(BN(Wu))

Experiments

image

(a)는 BN이 추가되어 빠르게 Converge한 네트워크가 심지어 더 나은 성능임을 보여줍니다.

(b, c)는 각각 BN이 없는 경우와 BN이 있는 경우 특정 activation 직전의 값들의 분포를 보여주는데, 논문에서 주장했던 것 같이 BN이 추가된 경우에 0을 중심으로 매우 안정적인 분포를 유지하는 것을 확인할 수 있습니다.

BN을 추가함으로써 트레이닝 과정에서 아래와 같은 결과를 얻었다고 합니다.

  • Learning Rate 증가시켜도 됨.
  • Dropout 빼도 overfitting 증가 없음
  • L2 Weight Regularization 줄여도 됨
  • Learning Rate Decay 속도를 증가시켜도 됨
  • Local Response Normalization 제거해도 됨. BN이 그 역할 해줌.
  • 트레이닝 데이터를 더 잘 섞어야 함. 같은 배치에 같은 내용이 자주 등장하면 영향 미침.
  • photometric distortion 줄여도 됨.

image

BN이 추가된 모델의 성능으로 Learning Rate을 매우 높인 상태에서 트레이닝해도 BN없는 모델의 성능을 빠르게 따라잡는 것을 볼 수 있습니다.


Batch Renormalization: Towards Reducing Minibatch Dependence in Batch-Normalized Models
텐서플로우 가이드: 배치 노멀라이제이션