ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [논문 리뷰] Group Normalization
    AI Tech 공부 기록 2023. 4. 6. 22:41

    이번 주에는 Group Normalization(https://arxiv.org/abs/1803.08494) 논문을 읽어보기로 했습니다. 이 논문을 선택하게 된 이유는 과거의 논문 중 우리가 배워보고 싶은 것을 찾던 중 Nomalization이라는 주제에 대해 공부해보자는 이야기가 나왔고 여러 Normalization 논문 중 많은 방법을 내포하고 있는 이 논문을 고르게 되었습니다.(아래 나오는 모든 그림과 표는 논문에서 발췌하였습니다)

    1.Introduction

    Batch Normalization(이하 BN)은 이전부터 deep learning 학습에서 굉장히 효과적인 방법으로 알려졌습니다. 하지만 이 방법에서 문제점이 존재했는데 바로 batch size에 굉장히 의존적이라는 것이었습니다. 왜냐하면 batch 단위로 normalization을진행해 batchbatch size가 작아지면 표본의 수가 부족해 전체 데이터를 대표하지 못하기 때문입니다. 그래서 최근의 여러 모델 중, 낮은 batch size를 요구하는 model들에서는 BN은 좋은 정규화 방법이 아니었습니다. 그래서 이 논문에서는 그 대안책으로 Group Nomalization(이하 GN)을 BN의 대안책으로 제시합니다. 이 방법은 channel을 group으로 나누고 그 그룹에서 정규화를 진행하는 방법입니다.

    특히 GN은 batch size에 독립적이기 때문에 batch size의 변화에 굉장히 안정적인 결과를 보여줍니다.

    또한 Layer Normalization(LN), Instance Normalization(IN) 등도 존재하지만 여러 sequential model과 generative models에서 GN이 더 나은 결과를 나타낸다는 것을 이후의 실험에서 보여줄 것입니다. 그래서 이 논문은 GN이 기존의 normalization을 충분히 대체가능 하다는 것을 보여주려 합니다.

    2. Related Work

    • Normalization: 일반적으로 input data를 normalizing 한 경우 traning을 좀 더 빠르게 해준다고 알려져 있습니다. 이 중 BN은 deep learning에서 널리 사용되는 방법이었습니다. BN은 효과적이었지만 batch size에 크게 의존한다는 단점이 존재했습니다. 그래서 이런 단점을 보완한 Normalization 인 LN, IN, WN 등이 제시되었습니다. 하지만 BN의 accuracy 만큼은 성능을 내지 못했습니다. 이 논문에서는 이런 여러 Normalization 방법을 실험을 통해 비교해줄 것입니다.
    • Addressing small batches: 앞서 말한 BN의 small batch 문제를 해결한 Batch Renormalization이란 방법이 등장 했습니다. 이 방법은 2가지의 parameter를 통해 BN의 mean과 variance을 일정한 범위 내로 조절해주어 small batch 문제를 해결해주려 하였습니다. 하지만 이 방법또한 결국 batch에 의존하게 되어 batch size가 작아질 때 accuracy 또한 낮아졌습니다.

    3. Group Normalization

    여러가지 Normalization에 어떤 차이가 있는지를 보겠습니다. 먼저 BN입니다.

    여기서 i=(iN,iC,iH,iW) 로 4D vector이고 Si 는 이런 i 의 iC와 같은 C를 갖는(channel이 같은) k들의 집합입니다.

    마찬가지로 LN은 

    IN은

    GN은

    이런 식을 가집니다. 이것은 그림으로 보면 더 직관적으로 확인할 수 있습니다.

    시각적으로 보는 각각의 차이

    4. Expriments

    4.1 Image Classification in ImageNet

     

    먼저 batch size를 32로 고정한 ResNet의 model을 이용해 IamgeNet의 classification을 진행해보았습니다. 그 결과

    그 결과 BN이 가장 높은 성능을 보였고 가장 근접한 성능을 보인게 GN이었습니다.

    이번에는 batch size를 조정해 보았습니다.

    batch size가 클때는 BN이 작을 때는 GN이 더 좋은 성능을 보인 것을 확인할 수 있었습니다. 이를 통해 BN의 small batch 문제와 GN의 안정적인 성능을 확인할 수 있었습니다.

     

    그 다음으로는 Group을 어떻게 나누는 지에 따른 모델 성능 차이를 보았습니다.

    이 결과를 보았을 때 우리는 group 수에 따라, group 당 channel의 수에 따라 성능이 다르다는 것을 알 수 있었습니다. 또한 GN의 group 수가 1일 때 GN=LN인 것과, GN의 group 당 channel 수가 1일 때 GN=IN인 것을 보았을 때 GN이 일반적으로 LN, IN의 성능보다 뛰어난 것을 확인할 수 있었습니다. 

     

    마지막으로 Normalization을 진행하지 않은 VGG-16 model과 BN과 GN을 적용한 model을 비교해 보았습니다.

    이처럼 BN과 GN은 model에 비슷한 영향을 주는 것을 확인할 수 있었습니다. 

     

    4.2 Object Detection and Segmentation in COCO

    이번에는 computer vision에서 object detection 및 segmentationfine-tuning 의 fine-tuning model을 통해 실험해 보았습니다. 일반적으로 이런 작업에서는 고해상도가 필요하기 때문에 batch size가 작은 편입니다. 또한 이 실험에서 BN*은 BN이 pretranined model에서 pre-computed 된 계수들을 통해 선형 변환되고 freeze된 것을 의미합니다.

    C-4 backbone을 통해 실험을 진행해 보았습니다.

    마찬가지로 FPN backbone을 통해 실험을 진행해 보았습니다.

    그 결과 GN이 전체적으로 더 좋은 성능을 나타낸 것을 보였습니다. 특히 box head에서의 GN의 역할이 큰 것을 확인할 수 있었습니다. 이를 통해 GN은 transferring 할 때 도움을 준다는 것을 알 수 있었습니다.

     

    다음으로는 backbone, box head, mask head 에 전부 GN을 적용한 경우와 아닌 경우에 결과들을 비교했습니다.

    이 또한 GN이 전체적으로 좋은 성능을 나타냈고 long 같은 경우 iterations를 180k 에서 270k로 높인 모델인데 이 경우 더 좋은 성능을 나타냈습니다.

     

    이 논문에서는 pre-traing model을 사용하지 않고 scratch 부터 구현도 해보았습니다.

    이 때 나온 결과는 그 당시 발표된 COCO의 결과 중 제일 좋은 from scatch 성능 수치를 보였습니다.(41.0 box AP와 36.4 mask AP)

    4.3 Video Classification in Kinetics 

    마지막은 video classification 에서 비교를 해보았습니다. 32-frame에서의 8,4 clips/GPU와 64-frame 에서 4clips/GPU 총 3가지 실험을 진행했습니다.

    batch size가 클 때에는 BN이, 작을 때는 GN이 좋은 성능을 보였습니다. 32-frame에서의 결과를 보면 GN은 batch size에 상관없이 일정한 성능을 나타내는 것을 볼 수 있었습니다. 이러한 결과들로 봤을 때 GN은 BN의 충분한 대안책이 될 수 있음을 저자는 말합니다.

     

    5. Discussion and Future Work

    우리는 GN은 batch dimension에 상관하지 않는 효과적인 Normalization임을 확인할 수 있었습니다. 하지만 BN이 많은 분야에서 이미 활용되었기에 기존의 많은 모델들이 BN을 기준으로 제작되었습니다. 그래서 우리가 GN을 활용하기 위해서는 scatch부터 짜야한다는 것입니다. 

    GN은 IN,LN과 관련이 있음을 확인할 수 있었습니다. IN, LN은 recurrent(RNN/LSTM), generatice(GAN) model에서 효과적인데 이것은 GN 또한 이런 분야에 활용할 수 있다는 것을 이야기 합니다.

     

    6. 추가적으로 공부하고 싶은 것들

    이번 논문을 읽으면서 여러 normalization 기법에 대해 알 수 있었습니다. 어떤 경우에 어떤 normalization을 쓰면 더 좋은 성능을 낼 수 있을지에 대해 생각하게 되었고 비교적 예전 논문이기에, 최근에 나온 normalizaion은 무엇이 있을까에 대해 궁금했습니다. 또한 논문에서 사용된 intialize 방법과 여러 실험 과정을 통해서 model을 만들 때 더 좋은 성능을 내기 위해선 여러 요소들을 항상 고려해야 됨과 그러기 위해선 많은 기법들을 익혀야겠다는 생각이 들었습니다.

     

    추가 학습하고 싶은 논문들:

     

    Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification:

    initailize에 관한 논문(https://arxiv.org/abs/1502.01852)

    Local Context Normalization: Revisiting Local Normalization:

    Group Normalization 이후의 normalization 논문(https://arxiv.org/abs/1912.05845)

     

    'AI Tech 공부 기록' 카테고리의 다른 글

    [7주차] 화요일  (0) 2023.04.19
    [7주차] 월요일  (0) 2023.04.18
    [6주차] 주간회고  (0) 2023.04.17
    [6주차] 월요일 공부 기록  (0) 2023.04.11
    [5주차] 월요일 기록  (0) 2023.04.04

    댓글

Designed by Tistory.