배치 정규화(batch normalization) 기법을 자주 활용했으나, 정확한 작동 원리에 대해서 알지 못했기 때문에 논문을 읽고 내용을 정리해 보았습니다. 친절한 논문은 아니어서 읽는데 꽤 시간이 걸렸습니다. 또한 관련 자료를 탐색 하던 중 배치 정규화 논문에서 주장하는 covariate shift에 대해 반박하는 논문도 있다는 정보를 보았는데요. 이 논문도 따로 정리해 보겠습니다. 먼저 논문의 내용을 요약하면 다음과 같습니다.
- 뉴럴넷 학습을 방해하는 요소로 Internal Covariate Shift 현상을 지목합니다. 다시 말해 학습이 진행되는 동안 network parameter들이 변화하면서 network activation의 distribution이 변화하기 때문에 뉴럴넷의 학습이 느려진다는 것입니다.
- 배치 정규화는 각 레이어의 출력값을 평균 0, 분산 1의 표준정규분포로 변환하기 때문에 covariate shift 문제를 벗어날 수 있습니다.
- 배치 정규화를 적용하면 다음의 이점을 얻을 수 있습니다.
- 학습률을 크게 셋팅할 수 있기 때문에 배치 정규화를 적용하지 않았을 때 대비 수렴 속도가 빠릅니다. 따라서 학습률 감소(learning rate decay)를 기존 보다 빠르게 가져갈 수 있습니다.
- randomness를 주기 때문에 regularization 효과가 있습니다. 따라서 드롭 아웃을 제거 할 수 있으며, 오버 피팅이 방지되는 효과가 있습니다.
1 Introduction
각 레이어의 인풋은 모든 이전 레이어의 파라미터(저자는 가중치라는 표현 대신 파라미터라는 표현을 사용합니다)에 영향을 받습니다. 따라서 앞선 레이어 파라미터의 작은 변화는 네트워크의 층이 깊어질수록 증폭될 것입니다. 각 레이어들은 이전 레이어의 출력 분포의 변화에 맞춰서 계속 해서 학습을 이어나가야 하기 때문에 이전 레이어의 출력 분포의 변화는 네트워크의 학습을 방해합니다.
저자는 이러한 현상을 internal covariate shift라고 부릅니다. 만일 각 출력층의 분포를 일정하게 유지할 수 있다면 covariate shift 현상을 억제하여 각 레이어가 이전 레이어의 출력 분포의 변화에 재적응(readjust)할 필요가 없으므로 학습을 원할하게 진행시킬 수 있을 것입니다.
레이어 출력 분포를 일정하게 유지시키는 것은 gradient를 잘 흐를 수 있게 한다는 이점도 있습니다. 시그모이드 활성화 함수
따라서 저자는 배치 정규화 기법(batch normalization)의 도입이 네트워크의 각 레이어의 출력 분포를 일정하게 만들어서 네트워크를 빠르게 수렴시킬 수 있다고 주장합니다. 배치 정규화는 네트워크 각 레이어의 출력 분포를 일정하게 유지하여 internal covariate shift 문제를 완화시켜 딥 뉴럴넷의 학습을 가속화시킵니다. 배치 정규화의 자세한 과정은 뒤에서 다시 언급하도록 하겠습니다. 이제 좀더 자세히 알아 보도록 하죠 👊
2 Towards Reducing Internal Covariate Shift
본 섹션에서 저자는 covariate shift를 줄이기 위해 필요한
먼저 internal covariate shift를 정확히 정의해야하겠습니다. internal covariate shift는 학습이 진행되는 동안 네트워크의 파라미터가 지속적으로 갱신됨에 따라 발생하는 네트워크 각 레이어의 출력 분포의 변화를 뜻합니다. 뉴럴넷 학습 과정에서 whitening을 통해 분포를 고정(fixing)하는 것은 학습의 수렴을 빠르게 한다는 것이 기존 연구에 의해 알려져 있습니다([2]). activation을 whitening 하는 방법은 다양합니다. 하지만 중요한 점은 whitening 과정이 반드시 gradient descent 과정에 포함되어야 한다는 것입니다. 그렇지 않다면 어떻게 될까요? 예를 들어 input
만일 gradient descent 과정에서
는 에 비례하게 됩니다.epoch가 한번 돌면
는 로 업데이트 됩니다.따라서 새로운
는 아래와 같이 계산 됩니다.
분명히
간단한 레이어의 계산 그래프.
이제는 사고를 한차원 확장하여
위 식에서 두번째 term을 무시하게 되면 앞서 언급한
다시 논점으로 돌아와서, 이러한 셋팅에서 normalization을 진행하기 위해서는 다음과 같은 공분산 행렬과 그것의 inverse square root에 대한 연산이 필요하며 해당 연산들에 대한 미분값 역시 필요하게 됩니다. normalization 과정에 엄청난 연산이 요구되는 것이죠.
따라서 저자는 1) 미분 가능하면서(gradient descent 과정에 포함시키기 위해) 2) 전체 트레이닝 셋을 고려하지 않는 normalization기법을 고안하게 됩니다. 바로 배치 정규화 기법이죠!
3 Normalization via MIni-Batch Statistics
앞서 언급했다시피 full whitening은 매우 계산량이 높고, 모든 곳에서 미분이 가능하지 않다는 단점이 있습니다. 따라서 저자는 각각의 feature들을 독립적으로 zero mean and unit variance로 만드는 방법을 제안합니다. 이러한 normalization 방식은 feature 간 decorrelated가 되지 않았을 때도 모델의 수렴 속도를 빠르게 만든다는 것이 기존 연구에서 입증되었습니다(LeCun et al., 1998).
4 Experiments
5 Conclusion
Reference
Papers
Articles
배치 정규화 논문 리뷰 (Batch normalization) - Slow walking manhttps://arxiv.org/abs/1404.5997)