본문 바로가기

카테고리 없음

EfficientNet 리뷰

EfficientNet 이라고 불리는 이유?

너비(Width), 깊이(Depth), 해상도(Resolution)를
고정된 비율로 동시에 확장하는 효율적인 Compound Scaling을 제안했기에

 

FLOPSFloating Point Operations Per Second의 약자
모델이 1초에 수행할 수 있는 부동소수점 연산의 수

 

 

1. Introduction

 

 배경: CNN 성능 향상을 위한 스케일링

  • 일반적 전략: CNN 모델 크기 확장 → 더 높은 정확도 달성
  • 문제점: 모델 확장의 효과적인 원칙 부재

제안된 방법: Compound Scaling (복합 스케일링)

  • 핵심 아이디어: 깊이(), 너비(), 해상도() 동시 확장 (고정 비율)
  • 예시 (계산량 배 증가 시):
    • 깊이: 루트
    • 너비:
    • 해상도: 루트
  • 실제 비율 결정: 소규모 그리드 탐색 활용
  • Compound Scaling: 모델의 다양한 차원 균형 있게 확장 → 제한된 자원 내 최대 성능 향상 목표

  • X축 (가로): 파라미터 수 (모델 크기, Millions = 백만 단위)
  • Y축 (세로): ImageNet Top-1 정확도 (%)
  • EfficientNet: 같은 정확도 기준 더 작은 모델 & 같은 모델 크기라면 더 높은 정확도 달성

Compound Scaling

 

 

2. Related Work

1. ConvNet 정확도 향상 (Accuracy)

GPU 메모리 한계에 도달했기 때문에, 이제는 모델 효율성이 중요함

 

2. ConvNet 효율성 개선 (Efficiency) 

모델 압축 (Model Compression) 방법 등장

최근에는 Neural Architecture Search (NAS) 기술이 사용됨

    • 너비, 깊이, 커널 크기 등을 자동으로 튜닝해
    • 모바일용 CNN보다 더 뛰어난 효율을 보임
    • 단점: 대형 모델에는 NAS 적용이 어려움 (튜닝 비용 ↑, 설계공간 커짐)

3. 모델 스케일링(model scaling) 에 주목

“어떻게 하면 너비, 깊이, 해상도를 효율적이고 효과적으로 조절 가능?” → 명확한 해답 X

Although prior studies have shown that network depth and width are both important for ConvNets’ expressive power, it still remains an open question of how to effectively scale a ConvNet to achieve better efficiency and accuracy. 

EfficientNet 기여

너비, 깊이, 해상도 3가지를 동시에, 일정 비율로 키우는 방식 제안

 

 

 

3. Compound Model Scaling

 

3.1 문제 정의 (Problem Formulation)

CNN의 각 레이어 i는 함수로 표현됨

전체 네트워크 NN은 이런 레이어들의 조합

실제 CNN은 여러 스테이지(stage)로 나뉘며 각 스테이지에서 같은 구조를 가진 레이어가 여러 번 반복됨

 

모델 스케일링이란? 

레이어의 구조  F_i​ 는  고정된 상태에서  깊이  L_i , 너비  C_i , 해상도  H_i×W_i​ 만 조절함

 

3.2 스케일링 차원 (Scaling Dimensions)

1.  Depth (깊이 확장: d)

  • 더 깊은 네트워크는 복잡한 특징을 잘 학습함 → 일반화에 강함
  • 문제: 기울기 소실(vanishing gradient), 학습 어려움

2. Width (너비 확장: w)

  • 채널 수를 늘리면 더 정밀한 특징 추출 가능
  • 학습도 비교적 쉬움
  • 문제: 너비만 늘리면 상위 추상 개념 파악은 약함
  • 너무 넓고 얕은 네트워크는 고수준 특징 파악이 어려움

3. Resolution (해상도 확장: r)

  • 더 큰 입력 이미지 사용 → 더 세밀한 정보 포착 가능

Figure 3 (가운데): 깊이 증가에 따른 성능 향상은 점점 줄어듦 Figure 3 (왼쪽): 너비가 커질수록 정확도는 증가하지만 곧 포화됨 Figure 3 (오른쪽): 해상도 증가도 일정 수준 이상부터는 성능 향상 정체

 

Observation 1– Scaling up any dimension of network width, depth, or resolution improves accuracy,
but the accuracy gain diminishes for bigger models.
"너비(width), 깊이(depth), 해상도(resolution) 중 하나만 키워도 정확도는 올라가지만,
모델이 커질수록 정확도 향상은 점점 줄어든다 (포화 현상 발생)."

즉, 한 방향만 확장하는 건 한계가 있음.
따라서 세 차원을 균형 있게 동시에 확장해야 함 → 다음 절에서 이를 해결하는 compound scaling 제안.

 

3.3 복합 스케일링 (Compound Scaling) – 핵심 제안

너비(width), 깊이(depth), 해상도(resolution) 서로 독립적 X. 이 때문에 한 가지만 키우는 기존 방식성능 향상에 한계가 있음. 

 

Figure 4는 너비 w만 키울 때와, d=2.0, r=2.0으로 조합해서 키울 때 비교한 그래프 결과: 너비만 키우면 정확도 금방 포화됨 하지만 깊이와 해상도를 함께 키우면 같은 연산량(FLOPS)에서도 훨씬 높은 정확도 달성

Observation 2– In order to pursue better accuracy and efficiency, it is critical to balance all dimensions of network width, depth, and resolution during ConvNet scaling.

정확도와 효율성 모두를 얻기 위해서는, 너비, 깊이, 해상도를 함께 균형 있게 스케일링해야 한다.

 

EfficientNet의 제안: Compound Scaling 공식

기존에는 사람 손으로 수동 조절하던 스케일링을,
EfficientNet은 하나의 계수 ϕ (파이)를 통해 자동으로 조정
: 사용 가능한 추가 리소스를 나타내는 스케일링 계수
α,β,γ: 너비, 깊이, 해상도에 대한 가중 비율

 

모델 스케일링 공식

 

4.EfficientNet Architecture

EfficientNet-B0

기반 기술: Neural Architecture Search (NAS)

 

EfficientNet-B0 → EfficientNet-B1~B7로 확장하는 과정

  • STEP 1: scaling 비율(계수) 찾기 (소규모 탐색)    -      조건 만족하면서 가장 좋은 조합 탐색
  • STEP 2: EfficientNet-B1 ~ B7 생성   -     찾은 고정한 채,  스케일 계수 ϕ만 바꾸며 B1 ~ B7 생성
  •  

한 번의 NAS → 전체 시리즈 생성 가능 → 확장성, 효율성 매우 우수

 

 

 

 

5. Experiments

5.1 기존 모델(MobileNet, ResNet) 확장 실험

마찬가지로 MobileNetV2, ResNet-50에서도 복합 스케일링이 가장 높은 성능 달성

5.2 ImageNet 성능 (EfficientNet vs 기존 모델)

 

  • EfficientNet은 기존 모델보다 최대 8.4배 적은 파라미터, 16배 적은 FLOPS로 동등하거나 더 좋은 정확도
  • EfficientNet-B3는 ResNeXt-101보다 정확도가 높고, FLOPS는 18배 작음

5.3 전이학습 실험 (Transfer Learning)

전이학습 과정 :  EfficientNet (ImageNet pretrain) ⟶ 다른 소규모 데이터셋 (finetune)

기준 모델   정확도 파라미터  EfficientNet 정확도  파라미터
NASNet-A (CIFAR-10) 98.0% 85M B0 98.1% 4M
GPipe (CIFAR-100) 91.3% 556M B7 91.7% 64M
Inception-v4 (Birdsnap) 81.8% 41M B5 82.0% 28M

 

 

  • 5개 데이터셋에서 기존 최고 정확도 갱신
  • 평균적으로 9.6배 적은 파라미터로 비슷하거나 더 좋은 정확도

 

6. Discussion

 

EfficientNet 모델이 잘 작동하는 이유가 아키텍처 혹은 compound scaling 때문? 분리해서 알아보자 

모든 방식이 FLOPS가 증가할수록 정확도 향상은 있음

그러나, 복합 스케일링이 단일 스케일링보다 최대 2.5% 더 높은 정확도

즉, 복합 스케일링 방식 자체가 독립적인 성능 향상 요인

복합 스케일링 모델이 더 관련성 있는 영역에 집중하고, 세밀한 객체 특징을 잘 포착함

 

 

7. Conclusion

문제 기존 ConvNet 확장 방식은 균형 없이 깊이, 너비, 해상도 중 하나만 키움 → 비효율
해결책 너비·깊이·해상도를 비율 기반으로 함께 확장하는 compound scaling 제안
장점 단순하지만 효율적이고 확장성 높은 방식. 리소스에 따라 유연하게 적용 가능
결과 EfficientNet은 기존 모델 대비 훨씬 적은 계산량으로 더 높은 정확도 달성
적용 ImageNet과 전이학습 데이터셋 모두에서 SOTA 성능 달성 (CIFAR, Pets 등)

 

 

"작고 효율적인 모델도, 균형 있게 확장하면 큰 모델보다 더 잘할 수 있다."