반응형

Group Normalization 배경 설명

  • Group Normalization은 Kaming He가 저자로 포함된 ECCV 2018년 논문이다. 
  • Computer vision 분야의 필수 component인 Batch Normalization의 한계와 그를 해결하기 위한 Group Normalization을 제시하고 있다.
  • Batch Normalization 관련 내용은 아래를 참고 바란다!

2023.11.10 - [머신러닝] - Batch Normalization (Accelerating DeepNetwork Training by Reducing Internal Covariate Shift) 논문 리뷰

Batch Normalization (Accelerating DeepNetwork Training by Reducing Internal Covariate Shift) 논문 리뷰

항상 문제에 봉착하기 전에는 내가 모르는 것이 뭐인지 모르게 된다. 항상 Batch Normalization은 당연하게 사용하였지, 그 의미에 대해서 대략적으로만 알고 있었던 것 같아서, 이번 기회에 Batch Normal

devhwi.tistory.com

 

Abstract

  • Batch Normalization(BN)은 딥러닝의 milestone 기술이 됐다. 
  • 하지만, Batch 방향의 normalization은 batch size가 작아질수록 error가 커진다. 
  • 이 논문에서는 BN을 대체할 수 있는 "Group Normalization(GN)"을 제안한다.
  • GN은 channel 방향으로 그룹을 나눠, 각 그룹에 대해 normalization을 위한 mean과 variance를 구한다. 
  • GN의 연산은 batch size에 독립적이어서, batch size가 변해도 accuracy가 안정적으로 유지된다. 
  • ResNet-50을 이용한 ImageNet 학습에서 GN은 2 batch size의 BN에 비해 10.6%의 낮은 error율을 보였다. 
  • 추가적으로 GN은 pre-training에서 fine-tuning으로 쉽게 전환 가능하다.
  • COCO 데이터셋에서의 object detection과 segment 등에서 GN은 BN을 대체할 수 있음을 보였다.

 

Introduction

[배경 - BN의 한계]

  • Batch Normalization은 딥러닝 분야에서 매우 중요한 component이다. 
  • BN은 feature를 batch 단위로 mean과 variance를 이용한 normalize를 진행하여, optimize와 네트워크의 converge를 빠르게 해 준다. 
  • BN의 이런 장점에도 불구하고, batch 방향의 normalize로 인한 특징이 존재한다. 예를 들어, batch size가 충분히 많아야 한다는 것이다.  적은 양의 batch는 batch statistics에 대한 부정확한 추정이 된다. 
  • 따라서, BN의 사이즈가 작아지면, model error가 급격하게 증가한다. 
  • 특히, model의 용량이 커서, 큰 batch를 가져가지 못하는, detection, segmentation, video recognition 등의 task들은 이 error에 더 치명적이다. 

 
[소개]

  • 이 논문에서는 Group Normalization(GN) 이라는 BN의 간단한 대체 방법을 소개한다. 
  • GN은 channel을 몇개의 group으로 나누고, 각 group에서 feature들을 normalize 한다. 
  • GN은 batch dimension을 이용하지 않기 때문에, batch size 변화에 무관하다. 

 
[BN과 비교 실험]

  • GN은 batch size에 매우 안정적이여서 , ImageNet 학습 ResNet-50 model의 2 batch size에서 BN을 적용한 것보다 10.6% 낮은 error를 보였다. 
  • 일반적인 batch size에서도 GN은 BN과 error 0.5% 이내의 적은 차이를  보이며, 다른 normalize 방법을 압도할 정도로 좋은 성능을 보인다. 
  • batch size가 변하더라도 GN은 pre-training, fine-tuning task에서도 자연스럽게 적용된다. 
  • GN은 OD, segmentation, video classification 등에서 BN의 좋은 대체가 될 수 있음을 보인다. 

 
[다른 BN 대체들과 비교 실험]

  • Layer Normalization, Instance Normalization과 같은 방법들은 논문과 비슷하게 batch dimension의 normalization을 피했다. 
  • 이런 방법들은 RNN/LSTM 같은 sequential model이나, GAN과 같은 generative model에는 효과적이나, visual recognition에서는 한계가 있음을 보였다. 
  • 반면에 GN은 visual recognition 성능도 좋으면서, sequential model과 generative model에 사용 가능하다. 

 

Group Normalization

  • visual feature에서 channel은 각기 독립적이다. 
  • SIFT, HOG, GIST 같은 전통적 feature들은 group 단위의 histogram 등을 통해 만들어지고, 이러한 feature들은 group 단위의 normalization 등에 사용된다. VLAD나 Fisher Vector도 group을 cluser에 대해 계산된 sub-vector로 생각될 수 있다.
  • 높은 차원의 layer는 더 추상적이고, 직관적이지 않지만, 빈도, 모양, 조명, 질감과 같은 많은 정보들이 전통적 방법처럼 group화로 이어질 수 있다. 
  • 이러한 특성과 인간의 시각 지각 시스템에서 영감을 받아, 딥러닝 네트워크를 위한 group-wise normalization을 제안한다.

Formulation

  • 일반적인 feature normalization은 다음 식으로 정의된다. (x: feature, i: index) 
  • 많은 종류의 feature normalization 방법들은 set(위의 식에서 S)를 어떻게 정의하느냐에 따라 달라진다. 
  • Batch Norm(BN)은 set을 아래와 같이 정의한다. (C: channel)
  • Layer Norm(LN)은 set을 아래와 같이 정의한다. (N : batch axis)
  • Instant Norm(IN)은 set을 아래와 같이 정의한다.
  • BN, LN, IN은 normalization 단계에서 소실된 표현력 복구를 위해, 아래와 같은 선형 변환을 진행한다.  (gamma: trainable scale param, beta: trainable shift param)
  • Group Norm은 mean과 variance를 구하기 위한, set을 아래와 같이 정의한다. (G: group number - default 32)
  • GN에서는 C(Channel) 방향의 C/G개의 Group 들에 대한 H, W 방향의 mean과 shift를 구한다. 

 
Relation to Prior Work

  • LN, IN, GN은 모두 batch axis에 대해 independent하다. 
  • GN의 극단적인 케이스를 각기 LN과 IN으로 볼 수 있다. 
  • 우선 LN과의 관계를 보면, GN에서 group number를 1로 설정하였을때, LN이 된다. LN은 모든 channel을 동일한 역할을 한다고 본다. 
  • 하지만, 이러한 가정은 FC에선 맞는데, convolution 연산에서는 틀릴 수 있다. GN은 LN보다 유연하여, 각 group에 각기 다른 distribution을 학습할 수 있다. 이것은 GN의 표현력이 LN보다 좋은 이유가 된다. 
  • group number를 channel size로 설정하였을 때, GN은 IN이 된다. IN은 spatial dimension에만 의존하기 때문에, channel 간 관계를 사용할 수 있는 여지를 사용하지 못한다. 

 
Implementation

  • GN은 pytorch나 tensorflow로 몇 개의 line만으로 쉽게 구현 가능하다.  (아래 Tensor flow 코드)

 

Experiments

  • 실험 환경 : ImageNet 학습을 RseNet model로 비교하였다. GN의 group number는 32로 설정하였다. 

 
comparison of feature normalization methods

  • 우선 일반적인 상황에서 실험을 위해 32개 batch size에서 실험하였다. 
  • 이런 환경에서 알려진 것처럼 BN은 좋은 성능을 보였다. 
  • LN과 IN등이 BN 방법보다 높은 validation set error율을 보이지만, GN은 0.5% 정도의 작은 error율 차이만 있다. 
  • GN과 BN의 error율 차이는 GN이 BN의 regularization 역할을 조금 상실하기 때문이다. 이것은 GN에 적당한 regularizer를 달면 완화될 것이다. 
  • Training set error율을 보면, GN이 더 작은 error율을 보임을 확인할 수 있는데, GN이 optimization이 더 쉽게 된다는 것을 의미한다. 

 
 
Small batch sizes

  • BN이 stochasticity를 통한 장점을 갖지만, batch size가 작아지면 uncertainty가 높아지면서, error가 늘어난다. 
  • batch size를 각각 32, 16, 8, 4,2 image로 학습을 진행했다. 
  • GN은 batch size 변화에 대해 안정적인 분포를 보인다. GN은 batch size에 상관없이 거의 비슷한 curve를 보이는 것을 확인할 수 있다. 
  • batch size가 2일 때는 GN은 24.1%의 error율로 34.7%의 BN보다 10.6%가량 낮은 error율을 보인다. 
  • 이것은 batch mean, variance의 추정이 부정확하였다는 것이다. 

 
OD and Segmentation

  • fine-tuning task에서도 비교해 보았다. 
  • COCO에서 OD, segmentation 성능(Mask R-CNN, ResNet-50)은 다음과 같다. 
  • COCO에서 OD, segmentation 성능(Mask R-CNN, ResNet-50 FPN)은 다음과 같다. 

 
 
 

Reference

WU, Yuxin; HE, Kaiming. Group normalization. In: Proceedings of the European conference on computer vision (ECCV). 2018. p. 3-19.
 
 

총평

  • 사실 BN을 기계적으로 사용하다가, 최근 연구에서 다른 Normalization 기법들(LN, GN)을 사용하는 것을 보고, 이유를 찾아보기 시작했다.
  • 그동안 이용에만 관심있었지, 왜 이런  normalization을 사용하는지 제대로 이해하고 가지 않은 것 같다. 
  • Kaiming He가 저자로 들어간 논문은 아이디어가 매우 간단하고 직관적인데 임팩트가 큰 것 같다. 다시 한번 대단하다고 생각한다. 

+ Recent posts