본문 바로가기
CV(Computer Vision)

EfficientNet

by namduhus 2026. 6. 10.

[논문 정보]

Mingxing Tan, Quoc V. Le et al. | arXiv:1905.11946 | 2019년 ICML

논문명: EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks


1. 서론

CNN 계열 모델은 AlexNet 이후 이미지 분류, 객체 탐지, 세그멘테이션 등 컴퓨터 비전의 핵심 구조로 자리 잡았다. 초기에는 모델 구조 자체의 혁신이 중심이었다. VGGNet은 작은 3×3 convolution을 깊게 쌓는 방식으로 성능을 끌어올렸고, GoogLeNet은 Inception 모듈을 통해 여러 크기의 필터를 병렬로 사용하는 구조를 제안했다. ResNet은 skip connection을 통해 매우 깊은 네트워크 학습을 가능하게 만들었고, DenseNet은 feature reuse를 강화했다.

 

하지만 모델 성능을 높이는 과정에서 한 가지 공통적인 흐름이 나타났다. 바로 모델을 더 크게 만드는 것이다. ResNet은 ResNet-18에서 ResNet-50, ResNet-101, ResNet-152로 깊이를 늘렸고, WideResNet은 채널 수를 늘렸다. Inception 계열과 NASNet 계열은 더 복잡하고 큰 구조를 탐색했다. 즉, 더 높은 정확도를 위해 더 많은 레이어, 더 많은 채널, 더 큰 입력 해상도를 사용하는 방식이 자연스럽게 받아들여졌다.

 

문제는 기존의 모델 확장 방식이 체계적이지 않았다는 점이다. 어떤 연구는 depth를 늘리고, 어떤 연구는 width를 늘리며, 또 어떤 연구는 입력 resolution을 키운다. 하지만 이 세 가지 요소가 서로 어떤 관계를 가지며, 주어진 연산량 또는 메모리 제약 안에서 어떻게 함께 조정되어야 하는지는 명확히 정리되어 있지 않았다. 논문은 바로 이 지점을 문제로 삼는다.

 

EfficientNet 논문의 핵심 질문은 다음과 같다.

 

CNN을 더 크게 만들 때, depth, width, resolution을 어떤 비율로 확장해야 가장 효율적인가?

 

기존에는 하나의 축만 키우는 방식이 많았다. 예를 들어 ResNet은 주로 depth scaling을 사용했고, MobileNet은 width multiplier를 통해 채널 수를 조절했으며, 일부 대형 모델은 입력 이미지를 더 큰 해상도로 사용했다. 그러나 저자들은 이런 단일 차원 확장이 어느 정도까지는 성능을 올리지만, 일정 수준 이후에는 정확도 향상이 빠르게 둔화된다는 것을 실험적으로 보인다.

 

논문의 핵심 기여는 두 가지다. 첫째, CNN 모델 스케일링에서 depth, width, resolution이 독립적인 요소가 아니라 서로 균형을 맞춰야 하는 요소임을 실험적으로 분석했다. 둘째, 이를 바탕으로 Compound Scaling이라는 간단하지만 효과적인 확장 규칙을 제안했다. 이 방법은 하나의 compound coefficient φ를 사용하여 depth, width, resolution을 동시에 일정 비율로 증가시킨다.

 

또한 저자들은 Compound Scaling만 제안한 것이 아니라, 이를 적용하기 위한 좋은 baseline network도 설계했다. Neural Architecture Search를 사용해 EfficientNet-B0라는 작은 기준 모델을 만들고, 여기에 Compound Scaling을 적용해 EfficientNet-B1부터 EfficientNet-B7까지의 모델 family를 구성했다. 결과적으로 EfficientNet은 ImageNet뿐만 아니라 CIFAR-100, Flowers, Food-101 등 여러 transfer learning 데이터셋에서도 높은 성능과 효율성을 보였다.

 

이 논문은 단순히 “더 좋은 CNN 구조”를 제안한 논문이라기보다, CNN을 확장하는 원칙 자체를 다시 정의한 논문에 가깝다. 이후 EfficientDet, EfficientNetV2, MobileNet 계열, 경량화 모델 설계 등에서 EfficientNet의 scaling 관점은 큰 영향을 주었다.


2. 문제 정의

CNN 모델의 성능을 높이기 위해 모델을 확장하는 것은 매우 자연스러운 접근이다. 하지만 확장할 수 있는 축은 하나가 아니다. 네트워크를 더 깊게 만들 수도 있고, 각 레이어의 채널 수를 늘려 더 넓게 만들 수도 있으며, 입력 이미지 해상도를 높여 더 세밀한 정보를 제공할 수도 있다.

 

논문에서는 CNN을 stage 단위로 바라본다. 일반적인 CNN은 여러 stage로 구성되고, 각 stage는 동일한 연산 블록이 여러 번 반복되는 형태를 가진다. 예를 들어 ResNet은 각 stage에서 유사한 residual block을 반복하고, stage가 진행될수록 공간 해상도는 줄어들며 채널 수는 증가한다. EfficientNet도 이와 유사하게 MBConv 블록을 여러 stage에서 반복한다.

 

논문에서 모델 스케일링 문제는 다음과 같이 정의된다. 기본 네트워크의 연산자 구조는 유지하되, 각 stage의 layer 반복 횟수, 채널 수, 입력 해상도를 조절하여 주어진 메모리와 FLOPs 제약 안에서 정확도를 최대화하는 것이다.

 

간단히 말하면 다음 세 가지를 조절하는 문제다.

 

요소 의미 확장 효과
Depth 레이어 수 또는 block 반복 횟수 더 복잡하고 추상적인 feature 학습 가능
Width 채널 수 더 다양한 feature map 표현 가능
Resolution 입력 이미지 크기 더 세밀한 시각 정보 활용 가능

 

문제는 이 세 요소가 서로 독립적으로 최적화될 수 없다는 점이다. 예를 들어 입력 해상도를 높이면 이미지 안의 세부 정보는 많아진다. 하지만 네트워크 깊이가 충분하지 않으면 더 큰 이미지에서 넓은 receptive field를 확보하기 어렵다. 반대로 depth만 늘리고 resolution이나 width를 유지하면 더 깊은 추상화는 가능하지만, 입력 정보 자체가 부족하거나 채널 표현력이 제한될 수 있다.

 

기존 접근법의 한계는 여기서 발생한다. ResNet처럼 depth만 늘리면 일정 수준 이후 학습이 어려워지고 성능 향상이 둔화된다. width만 늘리면 더 많은 feature를 담을 수 있지만, 얕은 네트워크는 고수준 feature를 충분히 포착하지 못할 수 있다. resolution만 키우면 입력 정보는 풍부해지지만, 이를 처리할 네트워크 용량이 부족하면 성능 향상이 제한된다.

 

논문은 실험을 통해 이 문제를 명확히 보여준다. Figure 3에서는 width, depth, resolution을 각각 단독으로 증가시켰을 때 accuracy가 어느 정도 올라가지만, 일정 수준 이후에는 성능 향상이 빠르게 포화되는 현상을 보인다. 즉, 단일 차원 scaling은 효율적인 확장 방식이 아니다.


3. 제안 방법론

3.1 핵심 아이디어

EfficientNet의 핵심 아이디어는 다음 한 문장으로 요약할 수 있다.

CNN을 확장할 때 depth, width, resolution 중 하나만 키우는 것이 아니라, 세 요소를 일정한 비율로 함께 키우면 더 높은 정확도와 더 좋은 효율성을 얻을 수 있다.

 

이를 논문에서는 Compound Scaling이라고 부른다.

 

기존 scaling 방식은 다음과 같이 나눌 수 있다.

방식 설명 한계
Width scaling 채널 수 증가 표현력은 증가하지만 고수준 feature 학습 한계
Depth scaling 레이어 수 증가 복잡한 feature 학습 가능하지만 학습 어려움 및 diminishing return
Resolution scaling 입력 이미지 크기 증가 세밀한 정보 활용 가능하지만 연산량 증가와 네트워크 용량 부족 문제
Compound scaling 세 요소를 함께 증가 균형 잡힌 확장 가능

 

논문 Figure 2는 이 차이를 시각적으로 잘 보여준다. baseline network에서 width scaling은 채널 방향만 넓히고, depth scaling은 레이어 방향만 깊게 만들며, resolution scaling은 입력 해상도만 키운다. 반면 compound scaling은 세 방향을 동시에 확장한다.


3.2 왜 세 요소를 함께 키워야 하는가?

입력 이미지 해상도를 높이면 모델은 더 많은 픽셀 정보를 받는다. 예를 들어 224×224 이미지보다 380×380 이미지는 더 많은 세부 정보를 포함한다. 하지만 단순히 해상도만 높인다고 해서 모델이 그 정보를 잘 활용하는 것은 아니다.

 

해상도가 높아지면 더 넓은 공간적 범위를 이해해야 하므로 더 깊은 네트워크가 필요하다. 깊이가 충분해야 receptive field가 커지고, 이미지 전체의 구조적 정보를 더 잘 포착할 수 있다. 또한 해상도가 높아지면 세밀한 패턴의 종류도 많아지기 때문에 더 많은 채널, 즉 더 넓은 width도 필요하다.

 

즉, resolution을 키우면 depth와 width도 함께 늘어나야 한다. depth를 늘리면 더 복잡한 feature hierarchy를 학습할 수 있지만, 충분한 width가 없으면 각 layer가 표현할 수 있는 feature 종류가 제한된다. width를 늘리면 다양한 feature를 표현할 수 있지만, depth가 부족하면 고수준 의미를 충분히 구성하지 못한다.

 

이런 관점에서 CNN scaling은 단순한 "크기 증가" 문제가 아니라, 표현력의 균형을 맞추는 문제다. EfficientNet은 이 균형을 수식으로 정리한 것이 가장 큰 기여다


3.3 Compound Scaling 수식

논문은 하나의 compound coefficient φ를 사용한다. φ는 사용 가능한 추가 연산 자원을 의미한다. φ가 커질수록 모델은 더 커진다.

 

Compound Scaling은 다음과 같이 정의된다.

 

d=αϕ
w=βϕ
r=γϕ

 

여기서,

 

기호 의미
d depth scaling coefficient
w width scaling coefficient
r resolution scaling coefficient
φ compound coefficient
α depth 증가 비율
β width 증가 비율
γ resolution 증가 비율

그리고 다음 제약 조건을 둔다.

α⋅β^2⋅γ^2≈2

이 제약은 매우 중요하다. convolution 연산량은 대략 depth에 선형 비례하고, width와 resolution에는 제곱 비례한다. 즉, depth를 2배 늘리면 FLOPs는 대략 2배 증가하지만, width를 2배 늘리면 채널 입출력 양쪽이 증가하기 때문에 FLOPs는 대략 4배 증가한다. resolution도 높이와 너비가 함께 증가하므로 2배 키우면 FLOPs가 약 4배 증가한다.

 

즉, EfficientNet은 depth를 비교적 많이, width를 조금, resolution을 그 중간 정도로 증가시키는 균형을 선택했다.


3.4 EfficientNet-B0 설계

Compound Scaling을 적용하려면 좋은 baseline network가 필요하다. 아무 구조에나 scaling을 적용한다고 항상 최고 성능이 나오는 것은 아니다. 논문에서도 scaling의 효과는 baseline architecture에 크게 의존한다고 설명한다.

 

저자들은 Neural Architecture Search를 사용해 EfficientNet-B0를 설계했다. 이때 목표는 단순히 정확도만 높이는 것이 아니라, accuracy와 FLOPs를 동시에 고려하는 multi-objective optimization이다.

 

EfficientNet-B0의 주요 building block은 MBConv다. MBConv는 MobileNetV2에서 사용된 inverted residual bottleneck 구조이며, 여기에 Squeeze-and-Excitation(SE) 모듈이 추가된다.

이 구조는 MobileNet 계열의 효율적인 block을 기반으로 하지만, NAS를 통해 stage별 kernel size, channel 수, layer 수가 조정되어 있다.


3.5 EfficientNet-B1 ~ B7까지의 확장

EfficientNet family는 B0에서 시작한다. 이후 B1부터 B7까지는 같은 baseline 구조를 사용하되, compound coefficient φ 를 증가시키면서 모델을 확장한다.

 

절차는 다음과 같다.

 

첫째, EfficientNet-B0에서 φ = 1로 고정하고 α, β, γ를 찾는다. 이때 FLOPs가 약 2배 증가한다는 제약 아래에서 grid search를 수행한다.

 

둘째, 찾은 α, β, γ를 고정하고 φ를 증가시켜 B1, B2, …, B7 모델을 만든다.

 

이 방식의 장점은 큰 모델마다 NAS를 다시 수행하지 않아도 된다는 점이다. NAS는 비용이 매우 큰 작업이기 때문에 B7 같은 대형 모델에서 직접 α, β, γ를 찾거나 구조 탐색을 수행하면 비용이 매우 커진다. EfficientNet은 작은 모델에서 한 번만 scaling rule을 찾고, 이를 큰 모델에 재사용한다.

 

이 점이 EfficientNet의 실용적인 강점이다. 단순히 성능 좋은 모델 하나를 만든 것이 아니라, 작은 모델에서 큰 모델까지 이어지는 일관된 scaling family를 만든 것이다.


4. 핵심 통찰 및 의의

EfficientNet의 가장 중요한 통찰은 모델 scaling을 단일 축의 문제가 아니라 균형의 문제로 보았다는 점이다. 이전까지 CNN 확장은 대체로 경험적인 방식이었다. ResNet은 더 깊게 만들고, MobileNet은 width multiplier를 사용하고, 일부 모델은 resolution을 키웠다. 하지만 EfficientNet은 이 세 요소가 함께 조정되어야 한다고 주장했다.

 

첫 번째 통찰은 depth, width, resolution 각각을 키우면 성능이 오르지만, 단독으로 키우면 빠르게 포화된다는 점이다. 이는 모델이 한쪽 방향으로만 커질 때 표현력의 병목이 다른 방향에서 발생하기 때문이다. 예를 들어 depth만 깊어져도 channel capacity가 부족하면 충분한 feature 다양성을 담기 어렵고, resolution만 커져도 네트워크가 그 정보를 처리할 capacity가 없으면 의미가 줄어든다.

 

두 번째 통찰은 FLOPs 증가의 구조를 명확히 반영했다는 점이다. depth는 FLOPs에 선형적으로 영향을 주지만, width와 resolution은 제곱으로 영향을 준다. 따라서 단순히 "세 요소를 똑같이 키우자"가 아니라, 연산량 증가 특성을 고려하여 α, β, γ를 설정해야 한다. EfficientNet의 Compound Scaling은 이 점을 수식적으로 반영한다.

 

세 번째 통찰은 좋은 baseline architecture와 좋은 scaling rule이 결합되어야 한다는 점이다. Compound Scaling만으로 모든 문제가 해결되는 것은 아니다. EfficientNet-B0는 NAS로 찾은 효율적인 구조이며, MBConv와 SE block을 활용한다. 즉, EfficientNet의 성능은 baseline 구조, scaling rule, training recipe가 함께 만든 결과다.

 

네 번째 통찰은 작은 모델에서 찾은 scaling rule을 큰 모델에 재사용할 수 있다는 점이다. 이는 실용적으로 매우 중요하다. 대형 모델마다 NAS를 수행하는 것은 비용이 크다. EfficientNet은 작은 모델에서 α, β, γ를 찾고 이를 큰 모델에 적용함으로써 효율적인 model family를 만들었다.

 

다섯 번째 의의는 이후 연구에 미친 영향이다. EfficientNet은 단순히 ImageNet SOTA를 기록한 모델을 넘어, efficient architecture design의 대표적인 기준점이 되었다. 이후 EfficientDet에서는 EfficientNet backbone과 BiFPN scaling이 결합되었고, EfficientNetV2에서는 학습 속도와 실제 latency 관점에서 개선이 이루어졌다. 또한 mobile/edge AI 모델 설계에서도 "균형 잡힌 scaling"이라는 관점이 중요한 기준이 되었다.


5. 한계점 및 향후 연구

첫 번째 한계는 hardware-aware latency 최적화가 충분하지 않다는 점이다. 논문에서는 FLOPs를 주요 기준으로 사용하며, 일부 CPU latency도 측정한다. 하지만 실제 모바일 NPU, GPU, TPU, Edge device에서는 FLOPs가 낮다고 항상 빠른 것은 아니다. Depthwise convolution이나 SE block, Swish activation은 특정 하드웨어에서 비효율적일 수 있다.

 

두 번째 한계는 α, β, γ가 모든 task와 모든 architecture에 보편적으로 최적인 것은 아니라는 점이다. 논문에서는 EfficientNet-B0 기준으로 α=1.2, β=1.1, γ=1.15를 찾았지만, detection, segmentation, medical imaging, low-resolution input task에서는 다른 scaling ratio가 더 적합할 수 있다.

 

세 번째 한계는 training recipe의 영향이 크다는 점이다. EfficientNet은 AutoAugment, RMSProp, stochastic depth, dropout scaling, Swish activation 등 여러 학습 기법을 함께 사용한다. 따라서 성능 향상이 순수하게 Compound Scaling 때문인지, architecture 때문인지, training trick 때문인지를 완전히 분리하기는 어렵다. 물론 논문은 ablation을 통해 scaling의 효과를 보여주지만, 전체 성능에는 여러 요소가 함께 작용한다.

 

네 번째 한계는 큰 입력 resolution 사용에 따른 memory cost다. EfficientNet-B7은 높은 resolution을 사용하기 때문에 학습 시 메모리 부담이 크다. 파라미터 수는 적지만 activation memory는 resolution에 크게 영향을 받기 때문에 실제 학습 환경에서는 batch size나 GPU memory 제약이 문제가 될 수 있다.

 

향후 연구 방향으로는 hardware-aware compound scaling, task-specific scaling, training speed를 고려한 scaling, activation memory까지 포함한 최적화가 가능하다. 실제로 이후 EfficientNetV2는 이러한 문제를 일부 해결하기 위해 학습 속도와 parameter efficiency를 함께 고려했다.


6. 결론

EfficientNet은 CNN 모델을 확장하는 방식에 대한 매우 중요한 전환점을 제시한 논문이다. 기존에는 depth, width, resolution 중 하나를 경험적으로 키우는 경우가 많았지만, 이 논문은 세 요소를 균형 있게 함께 확장해야 한다고 주장한다.

 

Compound Scaling은 매우 단순한 아이디어처럼 보이지만, CNN의 연산량 구조와 표현력 균형을 잘 반영한다. 특히 depth는 선형, width와 resolution은 제곱으로 FLOPs에 영향을 준다는 점을 scaling rule에 반영한 것이 핵심이다.

 

EfficientNet-B0는 NAS로 설계된 효율적인 baseline이고, 여기에 Compound Scaling을 적용해 EfficientNet-B1부터 B7까지의 model family를 구성했다. 그 결과 EfficientNet-B7은 ImageNet에서 84.3% Top-1 accuracy를 달성하면서도, GPipe보다 훨씬 적은 파라미터와 더 빠른 추론 속도를 보였다.

 

이 논문의 가장 큰 가치는 "어떤 block을 쓰느냐"보다 "모델을 어떻게 키워야 하는가"에 대한 원칙을 제시했다는 데 있다. 따라서 EfficientNet은 경량 CNN, 모바일 비전, transfer learning, object detection backbone 설계에 큰 영향을 준 대표적인 논문으로 볼 수 있다.

References
논문 원문: EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks
https://arxiv.org/abs/1905.11946

'CV(Computer Vision)' 카테고리의 다른 글

ShuffleNet V2  (0) 2026.06.09
ShuffleNet V1  (0) 2026.06.08
MobileNetV2  (0) 2026.06.08
MobileNetV1  (0) 2026.06.01
SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5MB model size  (0) 2026.05.28