z [논문 리뷰] How Does Batch Normalization Help Optimization?, 2018
본문 바로가기

Others

[논문 리뷰] How Does Batch Normalization Help Optimization?, 2018

728x90

배치 정규화에 대한 고찰. (How Does Batch Normalization Help Optimization?, 2018)

개요

배치 정규화는 DNN 학습의 속도 향상 및 안정에 좋은 영향을 줍니다.
이와 같은 현상에 대한 이유와 널리 퍼져있는 오해에 대해 실험을 통하여 분석하고 밝혀내고자 합니다.

Abstract

Batch Normalization은 DNN 학습의 속도 향상 및 안정화를 가능하게 합니다. 하지만 Batch Normalization이 널리 알려저 있음에도 불구하고 오해가 널리 퍼져 있습니다.

이 논문에서 주장하는 "오해" 는 layer's input distribution의 변화를 조정함으로써 Internal Covariate Shift를 막는 다는 것 입니다.
Internal Covariate Shift : 이전 layer의 parameter 변화로 인해 현재의 분포가 바뀌는 현상

이 논문에서의 실험을 통한 증명 : Batch Normalization은 layer input의 분포적인 안정성에 영햐을 거의 주지 않는다.

Introduction

논문에서의 Contributions : "Our point of start is demonstrating that there does not seem to be any link between the performance gain of BatchNorm and the reduction of internal covariate shift"

내부 공변량 변화의 감소와 BN으로부터 얻는 성능적 효과는 관련이 없음을 보여주는 것 !

BatchNorm은 최적화 문제와 대응하는 landscape를 smooth 하게 만들어 줌을 밝혔고, 이는 loss와 gradient의 Lipschizness를 증가시킨다고 할 수 있습니다. (natural condition 하에서)
그리고 꼭 Batch Normalzation이 아니더라도 다른 Normalization에 대해서도 비슷한 효과를 보입니다.

Batch normalization and internal covariate shift

ICS 와 BatchNorm 사이의 관계를 밝히기 위한 실험으로,

  • random noise + BatchNorm (Noise는 time step마다 변경합니다. 따라서 매번 distribution이 다름을 알 수 있습니다. ICS 심화)
  • BatchNorm
  • standard (BN 적용 x)

레이어의 input에 대한 분포를 확인한 결과.

결과를 보면 알 수 있듯이 "noisy" Batch-Norm layers와 Batch-Norm layers 는 차이가 거의 없습니다.
또한 위의 두 방법이 Standard network보다 성능이 뛰어남을 알 수 있습니다. ("noisy" BathNorm의 distribution이 standard보다 불안정합니다!)

figure7을 보면, Noisy BatchNorm이 Standard보다 ICS가 훨씬 심함을 알 수 있습니다.

Is BatchNorm reducing ICS?

네, 위에서는 ICS가 더 큰 network가 성능이 더 좋은 경우를 보여줬습니다. 그래서 BatchNorm이 실제로 ICS를 제거하고, ICS는 훈련에 정말 영향을 미치는가? 를 알아보고자 합니다.
그럼 훈련에 가장 영향을 미칠 시기는 언제일까요?? 논문에서는 "훈련에서 가장 자연스로운 목적에 해당하는 부분은 gradient"임을 언급하고, 1. 전 layer가 update 되기 전 2. 전 layer가 update 된 후에 대한 차이를 관찰하기로 합니다.
논문에서는 activation의 ICS를 l2 norm을 이용하여 수식화 시킵니다. (위와 동일한 의미임.)

수치화된 실험의 결과입니다. 실제로 standard NN에서 ICS는 거의 일어나지 않으며, 오히려 BatchNorm을 적용시켰을 떄 ICS가 증가 함을 알 수 있습니다.

Why does BatchNorm Work?

BN의 이점 :

  • Vanishing, Exploding Gradient를 방지함.
  • hyperparameter의 변화에 robust함.
  • 대부분의 activation을 비선형 포화 영역에서 멀리 떨어지도록 함.
    .. 다른 이점은..?

The smoothing effect of BatchNorm

실제로 BN은 최적화 문제에서 landscape를 smooth하게 만듭니다.

  • Loss Function의 Lipschitzness 향상. loss의 변화도가 낮아짐을 의미합니다.
  • gradients의 Lipschitzness 향상. grad의 크기가 작아짐을 의미합니다.
  • gradients의 Lipschitzness 향상.
    ![betasmooth]이를 "effective" β-smoothness로 표현합니다.

"effective" β-smoothness에 대한 BN과 vanila 사이의 비교 입니다. 위의 설명과 같은 결과가 나옴을 알 수 있습니다.

Is BatchNorm the best (only?) way to smoothen the landscape?

다른 Normalization은 안되나요? 가능합니다!
논문에서는 이를 증명하기 위해 l_p-normalization을 적용하여 각 성능을 시험해봅니다. (l_p-normalization은 vanila보다 larger distributional shift를 이끌어 냅니다.)

 

 

이에 대한 결과입니다. 다른 \(l_{p}-normalization\) 은 ICS를 크게 일으켰지만, 최적화 수행에 대해서는 나은 성능을 보여줍니다.

공부하면서..

처음 BN에 대한 공부를 할 때 Google 서치를 통해서 이에 대한 포스트를 보며 공부를 했었습니다. 대부분의 포스트에서 BN의 가장 큰 이점으로 ICS를 방지 하는 것 이라고 올려뒀었어서 당연히 그런가보다 하고 지나갔었습니다.
하지만 계속 공부하고, 여러 논문을 읽으면서 더 깊은 지식을 탐구하다보니 이 논문까지 읽게 되었습니다. 평소에 당연시하게 생각했던 지식이 잘못된 정보임을 깨달았을 때 받아들이기 쉽지 않았지만 논문에서 많은 실험을 바탕으로 간단하게 설명 해줬기 때문에 잘 이해할 수 있었습니다.
이렇게 혼자 공부해가면서 새로운 지식을 알 때 (특히, 만연히 당연시 되었던 오해에 대해 깨우칠 때) 보람을 느끼고는 합니다. 이번 공부에서 공부 하는 원동력을 느끼게되어 기분이 좋았습니다:)

728x90