얼레벌레

논문리뷰) Batch Normalization 본문

AI/DL

논문리뷰) Batch Normalization

낭낭이 2023. 7. 27. 15:26

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

Abstract

1 Introduction

2 Towards Reducing Internal Covariate Shift

3 Normalization via Mini-Batch Statistics

각 layer을 전부 whitening하는 것은 비용이 많이 들고 모든 곳이 미분가능하지 않기 때문에 다른 방법을 사용할 수 있다.

평균0, 분산 1을 가지게 함으로써 각 scalar feature을 독립적으로 정규화하여 convergence를 빠르게 하고 feature들을 decorrelated한다.

각 훈련스텝이 전체훈련세트에 기반하는 batch setting에서는 activation을 정규화하기 위해 전체 세트를 사용해야 하는데 이는 stochastic optimization을 사용할 때 실용적이지 않다. 

확률적경사훈련에서 미니배치를 사용하는 경우 각 미니배치는 평균과 분산의 추정치를 산출하는데 normalization에 사용된 통계량을 전부 gradient backpropagation에 사용한다. 

3.1 Training and Inference with Batch-Normalized Networks

x를 입력값으로 받은 layer에 이제 BN(x)를 받게 한다. training과정에선 데이터가 batch단위로 들어오기 때문에 배치단위의 평균과 분산을 계산하여 정규화를 수행하지만 inference과정에선 미니배치단위가 아닌 population을 이용해 배치단위의 고정된 평균과 분산을 이용하여 정규화를 수행한다. mini-batch 단위를 사용한다면 학습데이터로부터 얻은 데이터의 특성을 적절히 활용할 수 없기 때문에 학습데이터를 대표할 수 있는 값을 사용한다. 

moving average(이동평균)을 사용해 미니배치의 분산들로 전체 분산을 추정하고 inference과정에서 평균과 분산이 고정돼있어서 훈련되는 동안 모델정확도를 tracking할 수 있다. test과정에서 표본 분산의 평균값에 m/(m-1)을 곱하여 모분산으로 향하지 않는 unbiased variance estimate를 사용한다. 

3.2 Batch-Normalized Convolutional Networks

 

3.3 Batch Normalization enables higher learning rates

너무 높은 learning rate는 local minima에 빠지거나 기울기폭주/사라짐을 야기할 수 있는데, 이를 batch normalization으로 해결할 수 있다.

- network전반의 activation을 정규화함으로써, 파라미터의 작은 변화를 더 크고 차선인 변화로 확대되는 것을 막는다.

- parameter scale에 backpropagation이 영향을 받지 않고 larger weights가 더 작은 기울기를 갖게 하며 parameter growth를 안정화하고 더 유동성있는(resilient) 훈련이 가능하게 한다

scale a가 Jacobian layer에 영향을 미치지 않고 결과적으로 gradient propagation에도 영향을 미치지 않게 된다.

- batch 정규화가 layer Jacobian을 훈련에 유용한, 1에 가까운 단일값을 가지게한다는 추측을 했지만 transformation이 linear이 아니며 정규화된 값이 Gaussian이거나 독립적이라는 것을 보장할 수 없어 이 점에 대해선 추후 연구에서 다룬다고 한다.

 

3.4 Batch Normalization regularizes the model

Network generlization -> batch normalization으로 훈련하는 경우, 훈련샘플은 미니배치의 다른 샘플들과 결합되고 훈련 network는 주어진 훈련샘플을 위한 결정값(deterministic value)를 더이상 만들어내지 않는다. 

4 Experiments

4.1 Activations over time

28*28 이진이미지를 입력값으로, 각 100개의 activation을 포함한 3개의 FClayer을 포함한 network로 각 은닉층은 sigmoid nonlinearity로 계산하며 W는 랜덤 가우시안 값으로 초기화하여 MNIST dataset을 이용한 batch normalization 실험을 진행한다. MNIST에 뛰어난 성능을 얻어내려는 목적보다는 baseline과 batch 정규화된 network사이의 비교에 초점을 맞춘다. 

배치정규화된 네트워크는 높은 test accuracy를 보이고, original network는 이후의 layer의 훈련을 복잡케 하는 평균, 분산 모두에서 확연한 변화를 보이지만 배치정규화된 네트워크는 높은 test accuracy를 보이며 훈련이 진행됨에 따라 분포가 훨씬 더 안정적인 것을 볼 수 있다. 

 

4.2 ImageNet classification

momentum을 이용한 SGD를 사용하고 ImageNet 분류로 훈련된 inception network의 변형에 배치 정규화를 적용

- 해당 논문에서 이 모델을 Inception이라고 칭한다.

 

4.2.1 Accelerating BN Networks

단순히 배치정규화를 network에 추가하는 것이 아니라 network와 훈련파라미터에 변화를 줌으로써 배치정규화의 이점을 더 잘 활용할 수 있다.

- learning rate를 높인다

- Dropout를 제거한다 -> overfitting을 증가시키지 않으면서도 modified BN-Inception으로부터 dropout를 제거함으로써 훈련속도를 높인다.

- L2 가중치정규화를 감소시킨다 -> Inception의 경우 L2 loss가 오버피팅을 막지만 BN-Inception의 경우 이 loss의 가중치는 5의 배수만큼씩 줄어들어 검증데이터를 나누는 과정에 정확도를 높인다.

- learning rate decay(학습이 진행됨에 따라 learning rate를 점차 줄이는 것)를 가속화한다 -> Inception보다 6배 빠르게 learning rate를 낮춘다

- local response normalization을 제거한다 -> Inception이나 다른 networks의 경우에는 local response normalization을 필요로 하지만 batch normalization은 필수적이지 않다

- training examples를 철저히 셔플한다 -> mini-batch에서 동일한 샘플이 항상 나오는 것을 막는 셔플링을 통해 정확도 1%의 개선을 이룰 수 있다

- Photometric distortion(광도 왜곡)을 줄인다 -> batch normalization이 학습이 빨리됨에 따라 학습 샘플을 더 적게 관찰하게 되는데, 왜곡이 덜 이뤄지게 함으로써 trainer가 실제 이미지에 더 집중하게 한다.

 

4.2.2 Single-Network Classification

Batch normalization없는 Inception모델의 최대정확도는 72.2%로 Batch normalization을 사용한 다른 모델들은 이 정확도를 달성할 때 없는 모델보다 훨씬 적은 수의 step만을 거쳐 달성할 수 있다. BN-x5-Sigmoid는 69.8%의 정확도를 가지지만 batch normalization이 없다면 이보다 나은 정확도를 내지 못한다.

 

4.2.3 Ensemble Classification

5 Conclusion

 deep networks의 훈련을 가속화하고, 훈련을 복잡하게 하는 covariate shift를 제거함으로써 훈련에 도움을 주기 위해 batch normalization은 제시되었다. 근본적인 원인으로 covairate shift를 꼬집으며 적절한 normalization과 scale/shift를 이를 위한 해결방안으로 제시한다. 정규화가 네트워크를 훈련하기 전에 적절한 최적화 방법으로 다뤄지는 것을 보장하며 통계적 최적화 방법을 사용가능하게 하여 각 미니배치마다 정규화를 수행하고 정규화 파라미터를 통해 경사를 backpropagate할 수 있게 되었다. 

batch normalization을 통해 learning rate를 높이고 dropout을 제거하며 작은 training step으로 이전의 기법들의 정확도를 따라잡을 수 있게 되었다.

또한 이를 통해 훈련동안 activation value의 안정적인 분포를 이루어 비선형성이전에 이를 적용해 더 안정적인 분포를 만들고자 한다. 

Comments