논문 리뷰

[논문 리뷰] EfficientNetV2: Smaller Models and Faster Training

망나 2021. 5. 16. 12:48

약 2년 전 공개했었던 EfficientNet은 다른 모델들에 비해 빠른 학습 속도와 좋은 성능으로 Image classification 분야에서 활발하게 활용되었습니다. 그리고 최근 구글에서 기존의 EfficientNet과 비교해서 학습 속도와 정확도를 더욱 개선한 EfficientNet V2를 발표했습니다. 기존의 모델에 비해서 빠른 학습 속도를 보여준다고 하는데 해당 논문의 핵심 부분만 간략하게 정리해보도록 하겠습니다.

논문에 첨부된 성능. 현저히 작은 수의 파라미터로 동일한 수준의 성능을 보여주는 것을 확인할 수 있습니다. 뿐만 아니라 모델의 학습 속도 또한 다른 모델들에 비해 훨씬 빠른 속도를 보여줍니다.

 

EfficientNet ?

네트워크의 파라미터 수를 감소시키면 모델이 작아지고 그에 따라서 메모리에 쉽게 올릴 수 있는 등 다양한 이점이 있습니다. 하지만 파라미터 수를 감소시키면 모델의 성능 또한 감소한다는 문제점이 발생합니다. 그렇기 때문에 성능 감소 없이 파라미터 수를 최소화하여 최적의 모델을 디자인 하는 문제가 활발하게 연구되고 있고 "Neural Network Architecture Search (NAS)" 분야가 지속적으로 많은 관심을 받고 있습니다.

 

기존의 EfficientNet은 효율적인 모델을 디자인하기 위해, 먼저 NAS를 활용해 baseline mocel (B0)을 생성한 뒤 "compound scaling"을 활용해서 파라미터는 많이 증가시키지 않은채로 네트워크의 capacity를 증가시키는 방법을 활용합니다. 더 자세한 내용은 제가 작성한 EfficientNet 논문 리뷰를 참고 부탁드립니다.

 

 

EfficientNet V2 ?

우선, 논문에서 주장하는 3가지 주요 컨트리뷰션입니다.

  • We introduce EfficientNetV2, a new family of smaller and faster models. Found by our training-aware NAS and scaling, EfficientNetV2 outperform previous models in both training speed and parameter efficiency.
  • We propose an improved method of progressive learning, which adaptively adjusts regularization along with image size. We show that it speeds up training, and simultaneously improves accuracy.
  • We demonstrate up to 11x faster training speed and up to 6.8x better parameter efficiency on ImageNet, CIFAR, Cars, and Flowers dataset, than prior art.

    요약하자면, 기존의 sota 모델들에 비해 학습이 빠르고 파라미터 효율적이면서 좋은 성능을 보이는 EfficientNetV2를 소개한다. 또한, 이미지 크기에 따라 정규화를 조정하는 향상된 progressive learning 방법을 제안합니다. 이 방법을 적용하여 학습 속도와 정확도를 향상시킬 수 있습니다. 마지막으로 소개하는 모델이 다양항 데이터 세트에 대해서 11배 빠른 학습 속도와 6.8배 파라미터 효율적이라는 것을 증명합니다.

위 내용을 보니 해당 논문에서 핵심적으로 봐야할 부분은 "progressive learning" 인 것 같습니다. 논문을 전체적인 흐름에 따라 정리해보도록 하겠습니다.

 

EfficientNetV2 구조 디자인

학습 효율성의 이해

논문에서 저자들은 EfficientNet에서 발생하는 훈련 병목 현상을 연구하고 그에 따른 훈련 시간 향상을 위한 간단한 기술들을 소개합니다.

 

Training with very large image sizes is slow

GPU/TPU의 메모리 사이즈가 정해져 있기 때문에 너무 큰 사이즈의 이미지를 사용하면 학습 속도가 떨어지고 메모리 사용 또한 효율적일 수 없습니다. 추론보다 훈련때 더 작은 이미지 크기를 사용하는 것으로 더 작은 계산이 필요로하고 큰 배치를 사용하여 학습 속도를 향상 시킬 수 있습니다.


Depthwise convolutions are slow in early layers

EfficientNet의 또 다른 병목은 extensive depthwise convolutions 때문에 발생한다고 합니다. 따라서 이를 MBConv와 Fused-MBConv 두 블록의 조합으로 대체하고 아래표를 보면 두 블록의 최적의 조합을 찾아 사용했다는 것을 알 수 있습니다.

 

Equally scaling up every stage is sub-optimal

기존의 EfficientNet에서는 간단한 compound scaling을 통해 모든 Stage에 대해 동일하게 모델을 확장한 반면, 이번 EfficientNetV2에서는 non-uniform scaling 전략을 활용해 뒤 쪽 Stage에서 점진적으로 모델을 확장시켰다고 합니다. 또한, 이미지 사이즈에 따른 훈련 효율 감소를 최소화 하기 위해서 이미지 사이즈에 대한 최대값을 정해놓았다고 합니다.

 

EfficientNetV2 구조

아래 표에 나와있는 것이 EfficientNetV2의 구조입니다.

기존의 EfficientNet과 구별되는 점은 다음과 같습니다.

  1. MBConv와 fused-MBConv를 구조를 사용합니다.
  2. MBConv에 대해서 작은 Expansion ratio를 사용합니다. (메모리 엑세스 오버헤드를 줄이기 위해)
  3. 3x3의 작은 커널 사이즈를 사용하고 그에 따른 receptive field 감소를 보완하기 위해서 더 많은 레이어를 사용합니다.
  4. 파라미터와 메모리 엑세스 오버헤드를 줄이기 위해서 기존의 EfficientNet에서의 마지막 stride-1 단계를 완전히 제거했습니다.

 

EfficientNetV2 확장

EfficientNetV2-S 모델을 기존의 compound scaling에 몇가지 추가적인 최적화를 더하여 EfficientNetV2-M/L 모델로 확장했다고 합니다. 

추가된 최적화

(1) 최대 추론 이미지 크기를 480으로 제한합니다. (너무 큰 이미지는 메모리와 훈련 시간에 오버헤드를 발생시킴)

(2) 뒤쪽 단계(단계 5, 6)에서 레이어를 점진적으로 추가합니다. (런타임 오버헤드 없이 네트워크의 capacity를 높이기 위해)

 

Progressive Learning

Motivation

이미지 크기는 모델의 훈련 시간에 많은 영향을 끼치고 이미지 크기를 변형시켜 학습하는 다양항 방법들이 있지만 몇몇 방법들은 결과적으로 모델의 성능을 저하시키기도 합니다.

 

저자는 여기서 정확도의 저하가 불균형한 정규화에서 비롯된 것이라고 가정합니다. 즉, 각기 다른 이미지 크기로 훈련 할 때 그에 따라서 정규화의 강도도 조정해야 된다는 것 입니다 (고정 정규화 사용 X). 동일한 네트워크에 대해 더 작은 이미지 크기에 더 약한 정규화가 필요하다고 합니다.

 

이 가설을 검증하기 위해, 모델을 다른 이미지 사이즈와 데이터 augmentation으로 학습시킵니다. 이미지 사이즈가 작을 때, 약한 augmentation에서 가장 성능이 좋고 반대로 이미지 사이즈가 크면 강한 augmentation에서 성능이 좋았습니다. 따라서 이를 기반으로 논문에서 모델을 학습 시킬 때, 이미지 사이즈에 따라서 조정된 정규화를 사용했다고 합니다.

image size, augmentation에 따른 모델 성능

 

아래 그림에서 progressive learning의 훈련 과정을 보여줍니다. 모델의 초기 학습 단계에는 네트워크가 간단한 표현을 쉽고 빠르게 배울 수 있도록 더 작은 이미지와 약한 정규화로 네트워크를 학습합니다. 그런 다음 점차 이미지 크기를 늘리면서 더 강력한 정규화를 추가하여 학습을 더 어렵게 만듭니다.

학습 과정

 

알고리즘

제안하는 progressive learning 학습은 일반적으로 기존의 모든 정규화와 호환됩니다. 논문에서는 주로 다음 세 가지의 정규화에 대해서만 다루었습니다.

 

  • Dropout (Srivastava et al., 2014): 무작위로 채널을 제거하여 co-adaptation을 줄이는 네트워크 레벨의 정규화
  • RandAugment (Cubuk et al., 2020): 이미지별 다양한 데이터 증가
  • Mixup (Zhang et al., 2018): 교차 이미지 데이터 증가

 

결론

동일한 모델 학습 세팅으로 EfficientNet과 EfficientNetV2의 비교표 입니다. 

또한, 아래 결과와 같이 다른 네트워크 (ResNets)에 progressive learning을 적용해도 학습 시간을 대폭 감소시키는 결과를 확인하였다고 합니다.

 

마지막으로, 본 논문에서 가장 중요한 핵심은 Adaptive Regularization입니다. 이미지의 크기에 따른 적응형 정규화로 모든 구조의 모델 학습에 간단하게 적용하여 모델 학습을 향상시킬 수 있는 방법론입니다.

 
아래 이미지의 Table 13을 보면 adaptive regularization을 적용했을 때 정확도가 향상하는 것을 확인 할 수 있고, Figure 6를 보면 adaptive regularization을 사용했을 때 학습 초기에 작은 이미지 사이즈에 대해서 작은 정규화를 사용하는 것이 모델의 빠른 수렴과 결과적으로 높은 정확도를 이끌어낸다는 것을 확인 할 수 있습니다.