논문

[논문 리뷰] EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks

괜찮나요닝겐 2024. 9. 6. 00:35
728x90
반응형

https://arxiv.org/abs/1905.11946

 

EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks

Convolutional Neural Networks (ConvNets) are commonly developed at a fixed resource budget, and then scaled up for better accuracy if more resources are available. In this paper, we systematically study model scaling and identify that carefully balancing n

arxiv.org

오늘은 그 유명한 EfficientNet을 한번 리뷰해보려고 한다. EfficientNet은 Google AI에서 발표한 논문으로, 모델 스케일링에 대한 새로운 방식과 효율적인 CNN 아키텍처를 제안한 연구이다. 이 논문은 2019년 ICCV에서 발표되었으며, 모델 성능과 계산 효율성 간의 균형을 최적화하는 것이 주요 목표이다. 

 

Abstract 

  • 복합 스케일링 방법: 깊이, 너비, 해상도를 모두 균일하게 확장하는 방식으로, 간단하지만 매우 효과적인 방법이다.
  • 기존 모델과의 비교: 이 스케일링 방법을 MobileNet과 ResNet에 적용해 효과를 입증했다.
  • EfficientNet 설계: 나아가 신경망 아키텍처 검색(Neural Architecture Search)을 사용해 새로운 기준 네트워크를 설계하고 이를 확장하여 EfficientNet이라는 모델 계열을 개발했다.
  • 효율성과 성능: EfficientNet-B7 모델은 ImageNet 데이터셋에서 84.3%의 Top-1 정확도를 기록하며, 기존의 최첨단 ConvNet 대비 8.4배 더 작고, 추론(inference) 속도는 6.1배 더 빠르다.
  • 전이 학습 성능: EfficientNet은 CIFAR-100, Flowers 등 다양한 전이 학습 데이터셋에서도 뛰어난 성능을 발휘하며, 다른 모델들보다 훨씬 적은 파라미터로도 높은 정확도를 달성했다. 

Model Size vs ImageNet Accuracy

 

모델 스케일링의 문제점

딥러닝에서 모델 스케일링은 모델의 성능을 높이기 위해 네트워크의 크기를 확장하는 과정을 의미한다. 예를 들어, 더 깊은 네트워크를 구성하거나, 각 레이어의 필터 수를 늘리거나, 입력 이미지의 해상도를 높이는 방법을 사용한다. 하지만, 이러한 확장 방식은 각기 다른 차원(깊이, 너비, 해상도)을 별도로 고려하기 때문에 최적화되지 않을 수 있다.

기존 스케일링 방법의 한계

  • 깊이(Depth): 네트워크의 층을 늘려 더 복잡한 패턴을 학습할 수 있습니다. 하지만 너무 깊으면 기울기 소실 문제가 발생해 학습이 어려워진다.
  • 너비(Width): 각 레이어의 필터 수를 늘리면 정보 처리량이 증가하지만, 지나치게 너비가 넓으면 계산 비용이 급격히 증가한다.
  • 해상도(Resolution): 입력 이미지의 해상도를 높이면 더 세밀한 특징을 학습할 수 있지만, 고해상도 이미지는 처리 비용이 많이 든다.

이처럼 각 차원을 독립적으로 확장하는 것은 계산 자원에 비해 성능 향상이 비효율적인 문제가 있다. 

 

복합 스케일링(Compound Scaling)의 제안

이 방법은 네트워크의 깊이, 너비, 해상도균일하게 동시에 확장하여 더 나은 성능을 얻는 것을 목표로 한다. 

복합 계수(compound coefficient)

복합 스케일링은 세 가지 차원을 조정하는 단일 파라미터인 복합 계수(φ)를 도입해 모델을 확장한다. 각 차원을 조정하는 비율은 미리 고정되며, 복합 계수를 통해 전체 모델을 균일하게 확장하며, 이 방식은 기존의 하나의 차원만 확장하는 방법보다 더 효율적이다.

복합 계수는 아래의 수식을 따른다:

 

여기서 α,β,γ는 각각 깊이, 너비, 해상도를 제어하는 상수이며, φ는 스케일링 계수이다. 이 수식에 따라 모든 차원이 균일하게 확장되므로, 자원 제한 내에서 성능을 극대화할 수 있다. 

 

새로운 기준 네트워크 설계

복합 스케일링 방법을 적용하기 위해, EfficientNet에서는 기존 MobileNet과 ResNet 구조를 확장하는 대신, 신경망 아키텍처 검색(Neural Architecture Search)을 통해 새로운 기본 네트워크(Baseline Network)를 설계했다.

신경망 아키텍처 검색(Neural Architecture Search, NAS)

이 방법은 자동화된 알고리즘을 통해 네트워크 아키텍처를 탐색하여 최적의 기본 네트워크를 찾는 과정이다. 기존의 수작업 방식보다 더 나은 성능을 발휘할 수 있으며, 특히 자원 효율성을 극대화하는 모델을 설계하는 데 유용하다. EfficientNet 논문에서는 이러한 NAS를 통해 최적화된 기본 네트워크 EfficientNet-B0를 설계했고, 이를 복합 스케일링 방법으로 확장하여 EfficientNet-B1에서 B7까지 다양한 크기의 모델을 개발했다. 

EfficientNetB0 baseline network

 

EfficientNet의 성능

EfficientNet 모델은 ImageNet 데이터셋에서 뛰어난 성능을 보였으며, 기존 최첨단 모델들과 비교했을 때도 매우 높은 효율성을 자랑한다.

ImageNet 성능

EfficientNet-B7 모델은 ImageNet에서 84.3%의 Top-1 정확도를 기록하며, 기존 ConvNet보다 8.4배 더 작고, 추론(inference) 속도는 6.1배 더 빠르다

전이 학습(Transfer Learning) 성능

EfficientNet은 ImageNet 외에도 다른 데이터셋에 대한 전이 학습 성능에서도 매우 우수한 결과를 보였다. CIFAR-100, Flowers와 같은 다양한 전이 학습 데이터셋에서도 기존 모델을 능가하는 성능을 기록했다. EfficientNet은 더 적은 파라미터로도 CIFAR-100에서 91.7%, Flowers에서 98.8%의 정확도를 달성했으며, 이는 다른 ConvNet에 비해 파라미터 수가 한 자릿수 감소한 상태에서 얻어진 성과이다.

 

EfficientNet Performance Results on ImageNet

 

결론

EfficientNet은 CNN 모델 스케일링의 문제를 해결하기 위해 복합 스케일링이라는 혁신적인 방법을 제안했다. 이 방법을 통해 모델의 깊이, 너비, 해상도를 균형 있게 확장하여 자원 효율성을 극대화하면서도 성능을 극대화할 수 있었다고한다. 특히, EfficientNet-B7은 ImageNet에서 한 때는 최고 성능을 달성했으며, 더 적은 자원으로 더 나은 결과를 보여줬다. 또한 다양한 전이 학습 데이터셋에서도 우수한 성능을 입증하며, EfficientNet의 범용성을 증명했다. EfficientNet은 자원이 제한된 환경에서도 높은 성능을 필요로 하는 다양한 애플리케이션에 적용될 수 있는 매우 유용한 모델이다. 

 

 

Github 주소 : https://github.com/tensorflow/tpu/tree/master/models/official/efficientnet

 

tpu/models/official/efficientnet at master · tensorflow/tpu

Reference models and tools for Cloud TPUs. Contribute to tensorflow/tpu development by creating an account on GitHub.

github.com

 

728x90
반응형