본문 바로가기

Paper Review

Paper Review #1 - Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift

Batch Normalization: Accelerating Deep Network Training by
Reducing Internal Covariate Shift (2015.03.02) - https://arxiv.org/abs/1502.03167
 

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

Training Deep Neural Networks is complicated by the fact that the distribution of each layer's inputs changes during training, as the parameters of the previous layers change. This slows down the training by requiring lower learning rates and careful param

arxiv.org

 

Research direction & Motivation


Main Purpose

Improvement of training speed & stability using Batch Normalization

Internal Covariant Shift

 Deep Learning을 통해 학습하는 동안 데이터가 여러 layer들을 거치면서 input data의 분포가 변화하는 Internal Covariate Shift가 발생하는데, Internal Covariate Shift는 saturated regime에 쉽게 빠지게 만드며 gradient vanishing and explosion 이 발생해 학습을 방해하게된다. 이는 곧 초기에 학습속도의 저하로 이어짐에따라 초기에 설정한 parameter에 제약성이 커지며 낮은 수준의 learning rate가 요구되게 된다. 특히 sigmoid activation의 경우 input 분포가 다를경우 back-propagation시에 gradient가 양극단으로 치우질 가능성이 증가해 gradient vanishing 문제가 발생할 가능성이 매우 높아지게된다. 본 논문은 이러한 Internal Covariate Shift의 개선을 통한 학습속도의 향상에 초점을 맞춘다.

 

Related research


Whitening

- Whitening은 평균 0, 분산 1, decorrelated 해주는 선형 변환을 의미한다. 각 layer의 입력값에 whitening을 적용시키면 internal covariate shift를 감소시킬수 있으나 문제점이 존재한다.

- 문제점:

 

  • Covariance matrix 및 Inverse 연산이 필요하기 때문에 계산량이 많다.
  • Whitening은 loss function을 변화시키지 않으므로 일부 parameter들의 영향이 무시되어 gradient descent 효과를 감소시킨다.

=> 하지만 Whitening 기법을 모든 layer 입력 값에 적용하면, optimization 단계에서 문제가 생겨 gradient descent의 효과를 감소시킨다.

 

Statistical Approach

- Trainset셋에서 이미지 작업시 통계적 기법을 활용해, 주어진 위치의 서로 다른 feature map을 사용한 방식이 존재했다.

- 하지만 이는 네트워크의 표현역량을 변화시키는 단점이 존재한다.

 

Contribution


Batch Noramlization

 

Internal Covariant Shift

 논문에서는 앞서 언급한 문제점인 Internal Covariant Shift를 극복하기위해 Batch Noramlization이라는 방식을 제시했다. 이는 activation function을 noramlization시키는 방식으로, Channel별 feature를 독립적으로 normalization 시킴으로써 input에서의 분포를 유지시켜주는 방법이다.

 해당 정규화는 전체 데이터 분포가 아닌 mini batch 단위로 각각 normalize를 시켜준다. 이때 비선형성을 특징으로가지는 sigmoid activation function의 표현력을 보완해주기위해 학습과정에서 학습되는 값인  γ (정규화된 분포를 scaling 하는 parameter), β(정규화된 분포를 shift 시키는 parameter)라는 parameter를 추가했다. 

 

 마지막으로 Inference 시에는 deterministical한 output이 필요하므로, 앞서 mini batch 단위로 시행되었던 평균과 분산을 이용해서 투입되는 input들을 normalization한다. 평균들은 mini batch에서 각각의 평균의 평균을 산출하여 모평균을 추정하게되고 분산 역시 unbiased variance를 이용해 모분산을 추정한다. 이렇게 모집단에 대해 추정된 평균과 분산을 통해 고정적인 값으로 Inference를 실행하게된다.

 

 

Experiments & Findings

 

In MNIST, test accuracy / input distribution

 우선, Batch Normalization의 효과를 평가하기위해 MNIST 셋과 ImageNet을 이용해 일반 네트워크와 BN을 사용한 네트워크를 비교했다. 실험은 Fully-connected network를 사용했으며 모든 hidden layer에 BN을 적용했다. 실험결과, BN을 사용하여 학습한 결과가 더 높은 정확도가 산출되었으며 내부의 activation에서도 더 안정적인 input의 분포를 보여주었다. 동시에 학습속도도 높아졌으며 최대 정확도 역시 더 높아졌다.

 

 또한 저자들은 효과적인 BN의 적용을 위해 'Accelerating BN Networks' 라는 부분을 기술했다. 단순히 BN을 적용하는 것보다 BN이 가져오는 최대의 장점을 이끌어내기위한 일종의 사용법으로 Inception 모델을 통해 다양한 hyper-parameter들을 조절하며 최적의 조건들을 찾고자했다. 그 결과, BN은 다음과 같은 조건에서 가장 효과적이라고 주장한다.

 

  • Increase learning rate
  • Remove Dropout
  • Reduce the L2 weight regularization
  • Shuffle training examples more thoroughly

 

 결론적으로, BN은 normalization을 통해 Internal Covariant Shift 를 해소하고 그에 따라 발생하는 학습 속도 및 성능의 저하를 해결한다. 효과적인 적용을 위한 위와 같은 조건들을 발견했으며 BN을 적용할 경우 높은 learning rate를 통한 안정적인 학습이 가능해짐에 따라 학습속도가 빨라지고 initial parameter에 대한 gradients의 의존성을 줄여준다.