Group Normalization 배경 설명
- Group Normalization은 Kaming He가 저자로 포함된 ECCV 2018년 논문이다.
- Computer vision 분야의 필수 component인 Batch Normalization의 한계와 그를 해결하기 위한 Group Normalization을 제시하고 있다.
- Batch Normalization 관련 내용은 아래를 참고 바란다!
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가 저자로 들어간 논문은 아이디어가 매우 간단하고 직관적인데 임팩트가 큰 것 같다. 다시 한번 대단하다고 생각한다.
'머신러닝' 카테고리의 다른 글
Layer Normalization 논문 리뷰 (1) | 2024.04.01 |
---|---|
Batch Normalization (Accelerating DeepNetwork Training by Reducing Internal Covariate Shift) 논문 리뷰 (43) | 2023.11.10 |
Decision Tree(의사결정나무 ) (17) | 2023.08.29 |
t-SNE(t-distributed Stochastic Neighbor Embedding) (1) | 2023.04.26 |
Logistic Regression(로지스틱 회귀 분석(2)-다중 분류) (1) | 2023.04.23 |