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

SimBa's avatar
Feb 08, 2025
[논문 리뷰] EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks
  • model scaling과 network depth, width, resolution의 균형에 대해 연구
  • compound coefficient를 사용하여, depth/width/resolution의 모든 차원을 한번에 scaling하는 방법에 대해 소개
 
 

1. Introduction

  • scaling up은 CNN의 더 높은 정확도를 얻기 위해 많이 쓰이는 방법이었음
  • 하지만, scaling up을 하는 것이 왜 더 좋은 성능을 보이는지 명확히 밝혀지지 X
  • scale up 방법 : depth / width / image resolution
  • 이전의 연구에서는 위의 셋 중 하나만 증강하는 것이 주요 방법이었음
  • “더 좋은 정확도를 위해 ConvNet을 scale up하는 주요 방법이 있을까?”
  • 결과 : 위의 세 개 모두를 균형 있게 증강하는 것이 중요하고, 이들의 증강은 단순한 constant ratio로 결정됨
    • 배 더 많은 computational resource를 사용하고 싶음 → depth는 , width는 , image size는 배 증가 (는 상수)
  • input image가 큼 → 더 큰 receptive field를 위해 더 많은 layer 필요 & 큰 이미지에 대해 더 잘 정제된 패턴을 포착하기 위한 더 많은 channel 수 필요
  • baseline network를 시작으로, EfficientNets라는 일련의 모델들을 얻기 위해 baseline network를 scaling up함
notion image
notion image
 
 
  • ConvNet Accuracy
    • AlexNet 이후로, ConvNet은 그 크기가 커지면서 정확도도 증가
    • 점점 모델의 크기가 커지면서, 특별한 pipeline paralleism library(layer들이 서로 다른 device에 나눠서 작동)에서만 구동이 가능함
    • 이 모델들은 ImageNet dataset을 위해 만들어졌지만, 최근에는 이 뿐만 아니라 다른 transfer learning dataset과 object detection과 같은 여타 다른 CV task에서도 좋은 성능을 보이고 있음.
    • 이들의 좋은 정확도에도 불구하고, 우린 하드웨어 메모리 제약 문제가 있음 → 더 좋은 정확도는 better efficiency를 필요로 할 수 밖에 없음
  • ConvNet Efficiency
    • Model compression : efficiency를 위해 정확도를 일부 줄이면서 model size를 줄임
    • mobile phone → SqueezeNets, MobileNets, ShuffleNets 와 같은 handcraft efficient mobile-size ConvNets가 유행
    • width, depth, convolution kernel type 를 조정 → hand-crafted mobile ConvNets이 더 나은 효율성 달성하게 함
    • 하지만, 더 큰 모델에 대해 이와 같은 기술을 어떻게 써야하는지 모르고, 얼마나 많은 tuning 비용이 드는지도 모름
    • 본 연구에서는SOTA 정확도가 나오는 압축한 큰 ConvNets efficiency를 연구 → model scaling 사용
  • model scaling
    • ResNet : depth (layer의 개수)로 크기 조정
    • WideResNet, MobileNet : width(channel의 개수)로 크기 조정
    • 더 큰 input image size : 더 많은 FLOPS를 요하지만, 더 좋은 정확도 산출
    • depth, width가 ConvNet의 expressive power을 위해 중요하다는 것은 이미 밝혀졌지만, 더 나은 효율성과 정확도를 위해 이들을 어떻게 효과적으로 scaling을 할지는 의문
    • 본 연구에서는 width, depth, resoluton을 모두 scaling해봄
 
 

3. Compound Model Scaling

3.1 Problem Formulation

  • ConvNet layers은 각 층이 동일한 architecture를 가진 multiple stage로 구성
notion image
  • : stage 순서 (Block)
  • 번째 stage에서의 layer의 반복 횟수
  • : layer (를 가지고 를 만드는 연산자 역할)
  • 번째 layer의 input tensor
  • : stage 에서 layer 번 반복됨
notion image
notion image
  • 위의 baseline : ConvNet의 대표적인 architecture
    • 초반에는 spatial dimension(H, W)는 크지고, channel은 작음
    • 가면 갈수록, spatial dimension은 줄어들고, channel의 크기는 커짐
    • input (224, 224, 3) → output (7, 7, 512)
  • model scaling은 의 변화 없이 length(), width(), resolution() 만 확장시킴
  • 각 layer의 length, width, resolution을 확장하기 위해서는 각 layer의 를 탐색해야 함. 하지만, 이를 탐색하는데 드는 공간이 여전히 큼
    • 따라서, 이 공간을 줄이기 위해 모든 layer를 일정한 비율로 균일하게 확장하고자 함
    • 목표 : 주어진 자원 제약(메모리, FLOPS) 조건 내에서 모델 정확도를 최대화 → optimization problem (아래 공식)
    • : width, depth, resolution을 조정하는 scaling coefficient(계수)
    • : baseline network에서 미리 정의된 파라미터
notion image
 

3.2 Scaling Dimensions

  • 위의 최적화 문제에서 optimal : 서로에게 영향을 받으며, 다른 resource 제약에 따라 그 값이 바뀜 → 보통의 scaling 방법은 이 셋 중에 하나만 scaling
  • Depth()
    • deeper ConvNet → 더 풍부하고 복잡한 특징을 잘 뽑아냄, 새로운 task에 대해 일반화 성능 좋음
    • 하지만, 깊은 network는 기울기 소멸 문제로 인해 학습시키기 어려움
    • skip connections, batch noramalization과 같은 방법에도 불구하고, 아주 깊은 network에 대해서는 정확도가 확연하게 오르지 않음. (ex. ResNet-1000과 ResNet-101 이 비슷한 정확도)
    • baseline model에서 depth coefficient 를 달리해서 scaling 한 결과
      • 매우 깊은 ConvNets의 정확도가 감소
      notion image
  • Width()
    • width 조정 → small size models를 위해 사용
    • wider network → more fine-grained feature(더 세밀하고 구체적인 특징)을 더 잘 뽑고, 학습시키기 편함
    • wide & shallow network → higher level feature을 뽑아내기 더 힘든 경향이 있음
      • shallow network → 계층이 부족하여, 단순한 특징만 추출하고, 의미있는 high-level feature을 학습하기 어려움
      • wider network는 layer 수는 적지만, 각 layer에 channel이 많아서, 한 번에 더 많은 정보 학습 가능 → local feature만 잘 학습하고, global context는 학습 부족함
      • shallow network는 layer이 적음 → 충분한 non-linear 변환이 이루어지지 않음 → expressive power 부족
    • wider 할수록, 정확도가 빠르게 포화(학습 능력 제한)
    • notion image
💡
notion image
notion image
  • Resolution()
    • higher resolution input image → more fine-grained patters 포착 가능
    • 최근에는 더 나은 정확도를 위해 (331, 331)를 input image size로 사용
    • object detection에서는 (600, 600)을 널리 사용
    • 해상도가 높을수록 정확도가 향상되지만, 매우 높은 해상도에서는 정확도 향상이 감소합니다( = 1.0은 해상도 (224, 224), = 2.5는 해상도 (560, 560))
    • notion image
  • Observation 1 - scaling up은 정확도를 높이긴 하지만, bigger model에 대해서는 정확도 향상이 줄어듦
 
 

3.3 Compound Scaling

  • higher resolution images를 얻고 싶음 → depth 증가 (larger receptive field가 bigger image에서 비슷한 특징을 추출하도록 도움) → width 증가 (high resolution image에서 more fine-grained pattern 추출)
  • 따라서, 셋 중 하나만 조정하는게 아니라, 셋 다 균형있게 조정해야 함
notion image
  • 변화 없이 만 변화 → 정확도가 빨리 포화
  • 도 증가 → 동일한 FLOPS에서 더 좋은 정확도
  • Obsevation 2 - 더 높은 정확도와 효율성을 위해, width, depth, resolution 모두를 scaling하는 것이 중요
  • compound scaling method
    • comound coefficient를 사용하여, width, depth, resolution을 균일하게 scaling
    • notion image
    • : constant(상수) ← depth, width, resolution에 할당되는 resource의 비율
    • : 사용자가 지정하는 계수 → 모델을 확장할 때 추가로 사용할 수 있는 resource의 양 조절
    • FLOPS는 에 비례 → total FLOPS는 비율로 증가
    • 본 연구에서는 라는 제약 설정 → 어떠한 에 대해서는 total FLOPS가 만큼만 증가하도록 조절
      • 모델이 확장될 때 FLOPS가 너무 급격히 증가하는 것을 방지\
 
 

4. EfficientNet Architecture

  • model scaling은 layer operators 를 변화시키지 않음 → 좋은 baseline network를 갖는 것이 중요
  • 정확도와 FLOPS를 동시에 최적화하는 Multi-objectvie Neural Architecture Search를 활용하여 basline network 개발
    • optimization goal
    • notion image
      notion image
    • w가 음수 : FLOPS가 클수록 패널티 받음 (즉, FLOPS를 줄이면서도 높은 정확도를 유지하는 모델을 찾도록 유도)
  • EfficientNet-B0
    • Mnas-Net을 기반으로 설계
    • Mnas-Net보다 더 큰 FLOPS 사용
    • Mobile Inverted Bottleneck (MBConv) : 연산량을 줄이면서도 성능을 유지하는 block
    • Squeeze-and-Excitation(SE) 최적화 추가 : 중요한 feature에 더 집중하도록 모델을 조정
    • 과정
      • STEP 1 :
      • STEP 2 : Efficient-B1 ~ B7 을 얻기 위해 는 고정한 채, 만 다른 값으로 조정
      notion image
 
 

5. Experiments

5.1 Scaling Up MobileNets and ResNets

  • single-dimension scaling method와 비교했을 때, compound scaling method가 MobileNets와 ResNet 둘 다에서 정확도를 올림
notion image
 

5.2 ImageNet Results for EfficientNet

  • RMSProp optimizer (decay = 0.9, momentum = 0.9)
  • batch norm momentum = 0.99
  • weight decay = 1e-5
  • initial learning rate = 0.256 → 2.4 epoch마다 0.97만큼 감소
  • SiLU activation
  • AutoAugmentation
  • stochastic depth = 0.8
  • dropout = 0.2 ~ 0.5 (B0 ~ B7)
notion image
  • 결과 : EfficientNet이 더 작을 뿐만 아니라, computational적으로 더 비용이 싸다 & 정확도도 높음
 
 
 

6. Discussion

  • 3개를 모두 scaling하는 것이 하나만 scaling하는 것보다 비용이 더 많이 들지만, 그만큼 정확도를 훨씬 더 크게 향상시킴
  • compound scaling한 것이 생대적으로 object details에서 더 많은 지역에 집중할 수 있음
notion image
Share article

심바