coredot.today
EfficientNet 완전 이해: 작은 것이 아름답다 — AI 효율 혁명의 시작
블로그로 돌아가기
EfficientNet모델 스케일링Compound Scaling경량화엣지 AI

EfficientNet 완전 이해: 작은 것이 아름답다 — AI 효율 혁명의 시작

'더 크게'가 아니라 '더 똑똑하게' — 모델 크기를 키우는 세 가지 차원을 동시에 최적화하는 Compound Scaling이 어떻게 AI 효율 혁명을 일으켰는지를 논문과 사례로 풀어본다.

코어닷투데이2026-03-1980

들어가며: "더 크게 만들면 더 잘 보일까?"

망원경을 생각해보자.

더 멀리 보고 싶다면, 렌즈를 키우면 될까? 렌즈만 키우면 상이 흐릿해진다. 그렇다면 경통을 더 길게 만들면? 경통만 늘리면 빛이 부족해져 어두워진다. 구경을 넓히면? 구경만 넓히면 수차가 커져서 상이 일그러진다. 좋은 망원경을 만들려면 렌즈 크기, 경통 길이, 구경이라는 세 가지 요소를 균형 있게 키워야 한다. 어느 하나만 과하게 키워서는 결코 좋은 결과를 얻을 수 없다.

2018년의 딥러닝도 정확히 같은 문제에 직면해 있었다.

2012년 AlexNet이 ImageNet 대회에서 인간 전문가를 압도한 이후, 컴퓨터 비전의 발전 전략은 놀라울 정도로 단순했다. "더 크게 만들면 더 잘 본다." 8층짜리 AlexNet은 19층짜리 VGG가 되었고, VGG는 152층짜리 ResNet이 되었다. 파라미터 수는 수천만에서 수억으로 뛰었고, 연산량은 기하급수적으로 증가했다.

이 전략은 놀라울 정도로 잘 작동했다. ImageNet top-5 에러율은 2012년의 16.4%에서 2015년 3.6%까지 떨어졌다. 인간의 에러율 5.1%를 뛰어넘은 것이다. 하지만 이 성공의 이면에는 점점 커지는 불안이 도사리고 있었다.

2018년, 최고 성능의 모델 GPipe(AmoebaNet)557M 파라미터와 수백 기가 FLOPs를 소모하며 ImageNet top-1 정확도 84.4%를 달성했다. 이 모델을 학습시키려면 전용 TPU 클러스터가 필요했다. 일반 연구실은 꿈도 꿀 수 없는 규모였다. GPU 메모리는 여전히 32GB가 한계였고, 스마트폰이나 IoT 디바이스에 이런 모델을 올린다는 것은 물리적으로 불가능했다.

동시에 세계는 모바일 AI 시대로 빠르게 이동하고 있었다. 스마트폰 카메라가 실시간으로 얼굴을 인식하고, 자율주행차가 도로 위의 보행자를 감지하며, 공장의 엣지 디바이스가 불량품을 걸러내야 했다. 이 모든 곳에서 AI가 필요했지만, 거대한 모델은 그 어디에도 들어갈 수 없었다.

"더 크게"라는 전략은 벽에 부딪혔다.

연구자들은 양 갈래 길 앞에 서 있었다. 하나는 계속 더 큰 모델을 만들면서 하드웨어가 따라오기를 기다리는 길이었고, 다른 하나는 같은 자원으로 더 효율적인 모델을 만드는 길이었다. 전자는 자본의 문제였고, 후자는 지혜의 문제였다.

그 해, Google Brain의 두 연구자 Mingxing TanQuoc V. Le가 단순하지만 강력한 질문을 던졌다.

"모델을 키울 때, 무엇을 얼마나 키워야 최적인가?"

기존 연구자들이 "더 크게"만 외칠 때, 이 두 사람은 "어떻게 크게"를 물었다. 모델의 깊이(depth), 너비(width), 입력 해상도(resolution) — 이 세 가지 차원을 독립적으로 키워온 관행에 의문을 제기한 것이다. 망원경의 렌즈만 키우는 것이 아니라, 렌즈와 경통과 구경을 동시에 최적의 비율로 키우면 어떨까?

이 질문의 답이 EfficientNet이다. 2019년 ICML에 발표된 이 논문 "EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks"는 모델 스케일링의 패러다임을 근본적으로 바꿔놓았다. EfficientNet-B7은 GPipe보다 8.4배 작고 6.1배 빠르면서도 동일한 수준의 정확도를 달성했다. 작은 것이 아름다울 수 있다는 것을, 수학으로 증명한 셈이다.

이 글은 그 답에 도달하기까지의 여정을 따라간다. 깊이만 쌓던 시대의 맹목에서 출발해, 세 가지 차원의 딜레마를 거쳐, 균형 잡힌 스케일링이라는 우아한 해법에 이르는 이야기다. 단순히 논문을 요약하는 것이 아니라, 왜 이 아이디어가 필요했고, 어떤 직관에서 출발했으며, 어떻게 실현되었는지를 풀어보려 한다.


1장: 스케일링 전쟁의 역사 (2012–2018)

깊이의 시대: "층을 더 쌓으면 더 잘 본다"

모든 것은 2012년에 시작되었다.

Alex Krizhevsky, Ilya Sutskever, Geoffrey Hinton이 만든 AlexNet이 ImageNet Large Scale Visual Recognition Challenge(ILSVRC)에서 2위와의 격차를 10.8%p나 벌리며 우승했다. 8개 층, 6천만 개 파라미터. 당시 주류였던 전통적 컴퓨터 비전 기법들 — SIFT, HOG 같은 수작업 특징 추출(hand-crafted features) — 을 완전히 압도한 순간이었다.

AlexNet의 성공이 던진 메시지는 명확했다. "신경망을 깊게 쌓으면 작동한다." 그리고 연구자들은 즉시 다음 질문으로 넘어갔다. "그렇다면 더 깊게 쌓으면?"

2014년, Karen SimonyanAndrew ZissermanVGGNet이 그 질문에 답했다. VGG-19는 이름 그대로 19개 층으로 구성되었다. AlexNet의 8층에서 두 배 이상으로 뛰어넘은 것이다. 핵심 아이디어는 우아할 정도로 단순했다. 큰 필터 대신 3 × 3이라는 가장 작은 필터를 반복해서 쌓는 것이었다. 3 × 3 필터 두 개를 연속으로 적용하면 5 × 5 필터와 같은 수용야(receptive field)를 얻으면서도 파라미터는 더 적었다. 단순함의 힘이었다.

하지만 VGG-19의 파라미터 수는 1억 4,400만 개에 달했다. AlexNet의 6천만 개에 비해 2.4배. 당시 기준으로 엄청난 규모였고, 이 거대한 모델을 학습시키는 데만 4대의 NVIDIA Titan Black GPU로 2~3주가 걸렸다.

깊이의 추구는 여기서 멈추지 않았다. 2015년, Kaiming He 등이 발표한 ResNet(Residual Network)152층이라는 전례 없는 깊이에 도달했다. 19층에서 152층으로. 어떻게 이것이 가능했을까?

비밀은 잔차 연결(residual connection, skip connection)에 있었다. 일반적인 신경망은 각 층이 입력을 받아 출력을 내보내는 직렬 구조다. 깊어질수록 기울기가 소실되어 학습이 거의 불가능해진다. ResNet은 이 문제를 기발하게 우회했다. 각 블록의 입력을 출력에 직접 더해주는 지름길(shortcut)을 만든 것이다. 수식으로 쓰면 F(x)+xF(x) + x. 이 간단한 덧셈 하나가 기울기의 고속도로를 만들어, 수백 층에서도 학습이 가능하게 했다.

ResNet-152는 ILSVRC 2015에서 top-5 에러율 3.57%를 달성했다. 인간 전문가의 에러율 5.1%를 크게 밑도는 수치였다. 컴퓨터가 인간보다 이미지를 더 잘 분류하는 시대가 열린 것이다.

3년 만에 8층에서 152층으로. 깊이의 시대는 눈부신 성공을 거두었다. 하지만 이 성공에는 대가가 따랐다.

너비의 시대: "더 다양한 특징을 동시에 잡는다"

깊이만이 유일한 전략은 아니었다. 2014년, ResNet과 같은 해에 Christian Szegedy 등이 발표한 GoogLeNet(Inception)은 완전히 다른 방향을 제시했다.

GoogLeNet의 핵심 아이디어는 Inception 모듈이었다. 각 층에서 1 × 1, 3 × 3, 5 × 5 등 서로 다른 크기의 필터를 병렬로 적용하고 결과를 합치는 것이다. 왜 이것이 중요할까?

이미지에서 의미 있는 특징은 다양한 크기로 존재한다. 고양이의 눈은 작은 영역에서 포착되지만, 고양이의 전체 실루엣은 큰 영역을 봐야 잡을 수 있다. 단일 크기의 필터만 사용하면 특정 스케일의 특징만 잡게 된다. GoogLeNet은 여러 크기의 필터를 동시에 사용함으로써 — 즉 네트워크의 너비(width)를 확장함으로써 — 다양한 스케일의 특징을 한꺼번에 포착했다.

놀라운 것은 효율성이었다. GoogLeNet은 22개 층에 불과했지만, 1 × 1 합성곱을 채널 축소용으로 활용하여 파라미터를 500만 개로 억제했다. VGG-19의 1억 4천만 개에 비하면 1/30 수준이었다. 적은 파라미터로 높은 성능을 달성한, 효율성의 첫 번째 승리였다.

이후 Inception은 v2, v3, v4로 진화하며 채널 수를 점점 늘렸고, Wide ResNet(Zagoruyko & Komodakis, 2016)은 ResNet의 각 층에서 채널 수를 2~10배로 확장하여 더 적은 층수로도 깊은 ResNet에 필적하는 성능을 보여주었다. 너비를 키우는 것도 유효한 전략이라는 증거였다.

해상도의 시대: "더 큰 사진이면 더 세밀하게 본다"

세 번째 차원은 입력 해상도(resolution)였다.

AlexNet은 224 × 224 픽셀의 이미지를 입력으로 받았다. 이후 Inception-v3은 299 × 299, NASNet은 331 × 331, GPipe는 480 × 480으로 입력 크기를 키워나갔다. 논리는 직관적이다. 더 큰 이미지에는 더 많은 정보가 담겨 있으니, 모델이 더 세밀한 특징을 학습할 수 있다.

이 전략은 특히 세밀한 구분이 필요한 과제에서 효과적이었다. 새의 종류를 구분하거나 의료 영상에서 미세한 병변을 찾는 것처럼, 작은 차이가 큰 의미를 가지는 영역에서 높은 해상도는 결정적이었다.

하지만 연산 비용은 무자비했다. 해상도를 2배로 키우면 — 예를 들어 224 × 224에서 448 × 448으로 — 픽셀 수는 4배가 되고, 합성곱 연산량도 대략 4배로 뛴다. 해상도를 키우는 것은 가장 비싼 스케일링 전략이었다.

폭발하는 비용, 한계에 봉착한 전략

세 가지 전략 — 깊이, 너비, 해상도 — 모두 성과를 거두었다. 하지만 2018년에 이르러, 그 대가는 감당하기 어려운 수준에 도달했다.

모델 파라미터 수의 폭발적 증가
AlexNet '12
61M
VGG-19 '14
144M
ResNet-152 '15
60M
GPipe '18
557M
EfficientNet-B7
66M

숫자가 말해주고 있다. AlexNet에서 GPipe까지 6년 동안, 파라미터 수는 약 9배, FLOPs는 약 190배 증가했다. 하지만 top-1 정확도는 63.3%에서 84.4%로 — 21.1%p 상승에 그쳤다. 비용 대비 성능 향상은 갈수록 둔화되고 있었다. 경제학에서 말하는 수확체감(diminishing returns)이 명확하게 나타나고 있었던 것이다.

ResNet-152는 단 60M 파라미터로 76.3%를 달성했지만, 그 이후 정확도를 8%p 더 올리기 위해 파라미터는 10배 가까이 뛰어야 했다. 이 추세가 지속된다면, 1%의 정확도를 더 얻기 위해 수십억 개의 파라미터가 필요한 시대가 올 것이었다. 실제로 그 시대는 이미 와 있었다.

스케일링의 불균형

모바일 시대의 도래: "작은 디바이스에서도 AI를 돌려야 한다"

거대 모델의 비용 문제와 별개로, 현실 세계는 정반대의 요구를 하고 있었다. 모델을 더 작게 만들어야 한다는 것이었다.

2017년, Andrew G. Howard 등이 발표한 MobileNet은 이 요구에 응답한 첫 번째 본격적인 시도였다. 핵심은 depthwise separable convolution이라는 기법이었다. 일반 합성곱이 모든 입력 채널에 대해 동시에 연산하는 것과 달리, depthwise separable convolution은 각 채널을 개별적으로 처리한 뒤 1 × 1 합성곱으로 결합했다. 이 분해만으로 연산량이 8~9배 줄어들었다.

2018년, Mark Sandler 등은 MobileNetV2를 발표하며 한 단계 더 나아갔다. Inverted residual block이라는 새로운 구조를 도입했다. 기존 bottleneck이 채널을 줄였다가 넓히는 구조였다면, MobileNetV2는 반대로 채널을 먼저 넓혔다가 줄이는 구조를 채택했다. 이 역전된 구조가 저차원 표현에서의 정보 손실을 방지하면서도 경량화를 유지하게 해주었다.

MobileNet 시리즈는 스마트폰과 임베디드 디바이스에서 실시간 AI를 가능하게 만든 선구적 연구였다. 하지만 동시에, 이 연구들은 경량화와 성능 사이의 트레이드오프를 피할 수 없었다. 작게 만들면 빠르지만 정확도가 떨어지고, 정확하게 만들면 커지고 느려진다. 이 딜레마를 깨뜨릴 방법은 없는 것일까?

핵심 문제 제기: 지금까지의 스케일링은 최선이 아니었다

여기서 한 발 물러서서 전체 그림을 보자.

2012년부터 2018년까지, 컴퓨터 비전 연구자들은 모델 성능을 높이기 위해 세 가지 차원을 탐험했다.

  1. 깊이(Depth) — AlexNet → VGG → ResNet. 층을 더 쌓았다.
  2. 너비(Width) — GoogLeNet → Wide ResNet. 채널을 더 넓혔다.
  3. 해상도(Resolution) — 224 → 299 → 331 → 480. 입력을 더 키웠다.

하지만 이 세 가지 전략에는 공통된 맹점이 있었다. 모든 연구가 한 번에 하나의 차원만 키웠다는 것이다. ResNet은 깊이만 키우고 너비와 해상도는 고정했다. Wide ResNet은 너비만 키우고 깊이와 해상도는 고정했다. 해상도를 키운 연구들도 깊이와 너비는 그대로 두었다.

이것이 과연 최선인가? 세 차원 사이에 상호작용은 없는가? 깊이를 키울 때 해상도도 함께 키우면 더 나은 결과를 얻을 수 있지 않을까?

이 질문 — 너무 당연해 보이지만 아무도 체계적으로 답하지 않았던 질문 — 이 바로 EfficientNet의 출발점이었다.


2장: 세 가지 차원의 딜레마

깊이(Depth) 스케일링: 100층에서 200층으로 올려도 전망이 2배 좋아지지 않는다

모델의 깊이를 키운다는 것은 합성곱 층(convolutional layer)을 더 많이 쌓는다는 뜻이다. 직관적으로, 층이 많을수록 네트워크는 더 복잡하고 추상적인 특징을 학습할 수 있다. 초기 층은 엣지와 텍스처를 감지하고, 중간 층은 부분적인 형태를, 깊은 층은 객체 전체의 의미론적 특징을 학습한다. 층이 깊어질수록 학습 가능한 표현의 풍부함(representational richness)이 증가하는 것이다.

ResNet의 성공이 이를 증명했다. 18층에서 34층, 34층에서 152층으로 갈수록 ImageNet 정확도는 꾸준히 올라갔다. 잔차 연결 덕분에 기울기 소실 문제도 크게 완화되었고, 수백 층도 학습 가능해졌다.

하지만 이 상승 곡선에는 천장이 있었다.

He et al. (2016)의 후속 연구에서 ResNet-1001을 실험한 결과가 이를 보여준다. ResNet-152에서 ResNet-1001로 층을 6.6배 늘렸지만, CIFAR-10에서의 정확도 향상은 미미했다. 수확체감이 명확하게 나타난 것이다. 더 심각한 것은, 특정 깊이를 넘어서면 오히려 정확도가 떨어지는 현상도 관찰되었다는 점이다. 모델이 너무 깊어지면 학습 자체가 불안정해지고, 과적합(overfitting)의 위험도 커진다.

비유하면 이렇다. 건물을 100층에서 200층으로 올려도, 전망이 2배 좋아지지 않는다. 오히려 바람에 의한 흔들림이 커지고, 엘리베이터 시간이 길어지며, 건축비는 기하급수적으로 증가한다. 더 높은 건물이 항상 더 좋은 건물은 아닌 것이다.

깊이 스케일링의 한계를 정리하면 세 가지다.

  1. 수확체감: 깊이 증가에 따른 정확도 향상이 점점 둔화된다.
  2. 학습 불안정: 너무 깊은 네트워크는 기울기 문제와 최적화 어려움에 직면한다.
  3. 연산 비용: 깊이에 비례해 메모리와 연산 시간이 증가한다.

깊이만으로는 충분하지 않다. 그렇다면 너비는?

너비(Width) 스케일링: 눈은 수백 개인데 뇌가 작은 거미

모델의 너비를 키운다는 것은 각 층의 채널 수(number of channels)를 늘리는 것이다. 채널이 많을수록 각 층은 더 세밀한 특징(fine-grained features)을 포착할 수 있다. 하나의 채널이 수직 엣지를 감지한다면, 더 많은 채널은 미세한 각도 차이, 다양한 텍스처, 색상의 미묘한 변화까지 잡아낼 수 있다.

Wide ResNet(Zagoruyko & Komodakis, 2016)은 이 전략을 체계적으로 검증한 대표적 연구다. ResNet의 각 블록에서 채널 수를 2배, 4배, 10배로 확장한 결과, 더 적은 층수로도 원래 깊은 ResNet과 비슷하거나 더 나은 성능을 보여주었다. 16층짜리 Wide ResNet이 1000층짜리 일반 ResNet보다 나은 성능을 기록한 경우도 있었다. 너비의 힘이었다.

하지만 너비에도 한계가 있었다. 채널만 넓히고 깊이가 부족한 네트워크는 저수준 특징은 풍부하게 잡지만, 고수준의 추상적 특징을 학습하지 못했다. 수많은 엣지와 텍스처를 감지하면서도, 그것들을 조합해서 "이것은 고양이다"라는 상위 판단에 이르지 못하는 것이다.

비유하면, 눈은 수백 개인데 뇌가 작은 거미와 같다. 다양한 방향에서 시각 정보를 수집하지만, 그 정보를 통합하여 고차원적 판단을 내리는 능력이 부족하다. 넓지만 얕은 네트워크는 디테일은 풍부하되 전체적인 이해가 결여된 — 나무는 보지만 숲을 보지 못하는 — 상태에 빠진다.

너비 스케일링의 한계를 정리하면 이렇다.

  1. 고수준 특징 학습 부족: 얕은 네트워크에서 채널만 늘리면 추상화 수준이 낮다.
  2. 메모리 폭발: 채널 수가 늘면 활성화 맵(activation map)의 크기가 비례해서 커진다.
  3. 역시 수확체감: 일정 수준 이상의 너비 확장은 정확도에 미미한 영향을 준다.

해상도(Resolution) 스케일링: 지도를 100배 확대해도 새로운 도로가 생기지 않는다

입력 해상도를 키운다는 것은 모델이 받아들이는 이미지의 픽셀 수를 늘리는 것이다. 224 × 224 이미지에서는 보이지 않던 작은 물체, 미세한 텍스처, 경계선의 미묘한 차이가 448 × 448이나 600 × 600에서는 드러난다.

실제로 해상도를 높이면 성능이 개선되는 것은 여러 연구에서 반복적으로 확인되었다. 특히 세밀한 분류(fine-grained classification) 과제 — 새의 종류, 자동차 모델, 피부 병변의 유형 등 — 에서 해상도의 효과는 극적이었다. 사람 눈에도 작은 사진보다 큰 사진에서 세부 사항이 더 잘 보이는 것과 같은 원리다.

하지만 해상도 스케일링은 세 차원 중 가장 비싼 전략이다. 이유는 간단한 산수다. 해상도를 2배 키우면 한 변이 2배, 전체 픽셀 수는 4배가 된다. 합성곱 연산은 각 픽셀에 대해 수행되므로, FLOPs도 대략 4배로 뛴다. 해상도를 3배 키우면? 9배. 비용이 해상도의 제곱에 비례하는 것이다.

그리고 깊이, 너비와 마찬가지로 해상도에도 수확체감이 있다.

비유하면, 지도를 100배 확대해도 새로운 도로가 생기지 않는다. 일정 수준 이상의 확대는 이미 존재하는 정보를 반복적으로 보여줄 뿐, 새로운 정보를 제공하지 않는다. 224에서 448로 키울 때의 정보 증가와, 448에서 896으로 키울 때의 정보 증가는 같지 않다. 전자는 이전에 보이지 않던 디테일을 드러내지만, 후자는 이미 충분히 포착된 디테일을 중복해서 보여줄 가능성이 높다.

해상도 스케일링의 한계를 정리하면 이렇다.

  1. 연산량의 제곱 증가: 해상도 증가에 따른 비용이 가장 극심하다.
  2. 정보 포화: 일정 해상도 이상에서 추가 픽셀은 새로운 의미를 갖지 못한다.
  3. 메모리 부담: 고해상도 활성화 맵은 GPU 메모리를 빠르게 소진한다.

세 차원의 교차점: "균형"이라는 미지의 영역

여기까지 정리하면, 세 가지 스케일링 전략은 모두 개별적으로는 한계가 명확하다.

세 가지 스케일링 차원
깊이 (Depth) 층 수 ↑ 복잡한 패턴 학습
너비 (Width) 채널 수 ↑ 세밀한 특징 포착
해상도 (Resolution) 입력 크기 ↑ 디테일 정보 확보

깊이만 키우면 학습이 불안정해진다. 너비만 키우면 고수준 추상화가 부족하다. 해상도만 키우면 비용이 폭발한다. 그런데 여기서 한 가지 흥미로운 가능성이 떠오른다.

셋을 함께, 균형 있게 키우면 어떻게 될까?

생각해보면 직관적으로 타당하다. 해상도를 키워서 더 세밀한 이미지를 입력하면, 그 세밀한 정보를 처리하기 위해 더 많은 층(깊이)더 많은 채널(너비)이 필요하다. 반대로 깊이만 깊고 해상도가 낮으면, 깊은 층이 학습할 세밀한 패턴 자체가 입력에 없다. 너비만 넓고 깊이가 얕으면, 다양한 저수준 특징을 잡아도 그것을 조합할 상위 층이 부족하다.

세 차원은 독립적이 아니라 상호 의존적이었다. 하나를 키울 때 나머지도 함께 조정해야 시너지가 발생한다.

축구팀으로 비유하면 이렇다. 공격수만 11명인 팀은 이기지 못한다. 아무리 뛰어난 공격수를 한 명 더 영입해도, 수비가 무너지면 골을 더 먹는다. 미드필더가 없으면 공격수에게 공이 전달되지 않는다. 수비, 미드필드, 공격을 균형 있게 강화해야 팀의 전체 전력이 올라가는 것이다. 포지션 하나만 편중되게 투자하면 그 투자의 효용은 급격히 줄어든다.

공격수만 11명인 축구팀

신경망도 마찬가지다. 깊이, 너비, 해상도라는 세 "포지션"을 균형 있게 강화해야 모델의 전체 성능이 극대화된다. 어느 하나만 과도하게 키우면, 그 차원의 투자 효용이 급격히 떨어지면서 전체적인 효율이 무너진다.

하지만 문제가 있다. "균형"이란 대체 무엇인가? 깊이를 1.5배 키울 때 너비는 몇 배, 해상도는 몇 배를 키워야 "균형 잡힌" 것인가? 직관적으로는 타당해 보이지만, 정확한 비율을 알 수 없다면 실용적인 가치가 없다.

2019년 이전까지, 이 질문에 체계적으로 답한 연구는 없었다. 스케일링은 연구자의 경험과 직관, 그리고 대량의 시행착오에 의존해왔다. "층을 좀 더 쌓아볼까", "채널을 두 배로 해볼까" — 이런 수동적인 탐색이 전부였다.

바로 이 지점에서, Mingxing Tan과 Quoc V. Le가 등장한다. 그들은 이 "균형"의 최적점을 수학적으로 찾아내는 방법을 제안했다. 직관이 아니라 수식으로, 시행착오가 아니라 원칙으로 — 세 차원의 최적 비율을 도출하는 프레임워크. 이것이 바로 Compound Scaling이다.

다음 장에서 우리는 이 수학적 프레임워크의 내부로 들어가 볼 것이다.


3장: EfficientNet의 탄생 (Tan & Le, 2019)

핵심 관찰 — 차원은 독립이 아니다

2장에서 우리는 깊이, 너비, 해상도가 각각 개별적으로 한계를 가진다는 사실을 확인했다. 하지만 Mingxing Tan과 Quoc V. Le의 통찰은 단순히 "셋 다 한계가 있다"에서 끝나지 않았다. 그들은 훨씬 더 근본적인 관찰에 도달했다. 세 차원이 서로 얽혀 있다는 것이다.

이것을 구체적으로 풀어보자.

고해상도 이미지를 모델에 입력한다고 가정하자. 600 × 600 픽셀의 이미지에는 224 × 224에 비해 약 7배 더 많은 정보가 담겨 있다. 이 풍부한 정보를 제대로 처리하려면 더 큰 수용야(receptive field)가 필요하다. 수용야란 출력 뉴런 하나가 "바라보는" 입력 영역의 크기를 뜻하는데, 고해상도 이미지에서 물체 하나가 차지하는 픽셀 수가 많아지므로, 그 물체 전체를 파악하려면 더 넓은 영역을 한꺼번에 볼 수 있어야 한다. 수용야를 키우는 가장 자연스러운 방법은? 네트워크를 더 깊게 만드는 것이다. 층이 하나 추가될 때마다 수용야는 점진적으로 확장된다.

여기서 연쇄 반응이 일어난다. 네트워크가 깊어지면 각 층이 더 다양하고 세밀한 패턴을 학습하게 된다. 초기 층에서 잡아낸 미세한 텍스처들이 중간 층에서 부분적 형태로 조합되고, 깊은 층에서 완전한 객체로 통합되는 과정이 더 정교해지는 것이다. 이 정교한 패턴들을 제대로 표현하려면? 더 많은 채널(너비)이 필요하다. 하나의 채널이 하나의 패턴 유형을 담당한다고 생각하면, 패턴이 다양해질수록 채널 수도 늘어나야 한다.

정리하면 이렇다.

고해상도 → 더 큰 수용야 필요 → 더 깊은 네트워크 → 더 다양한 패턴 → 더 넓은 채널

세 차원은 마치 톱니바퀴처럼 맞물려 있다. 하나를 돌리면 나머지 둘도 함께 돌아가야 기계 전체가 원활하게 작동한다. 하나만 빠르게 돌리고 나머지를 방치하면? 톱니바퀴가 맞지 않아 기계가 삐걱거린다. 이것이 바로 기존 스케일링 방식이 효율적이지 못했던 근본 원인이다.

Tan과 Le는 이 관찰을 논문에서 실험적으로 검증했다. 깊이를 고정하고 너비와 해상도를 함께 키웠을 때와 따로 키웠을 때의 성능을 비교한 결과, 함께 키우는 것이 일관되게 더 나은 성능을 보여주었다. 직관이 아닌 데이터가 이를 뒷받침한 것이다.

Compound Scaling Method

관찰에서 방법론으로 넘어가 보자. 세 차원이 서로 얽혀 있다는 것을 알았으니, 이제 문제는 "어떤 비율로 함께 키울 것인가"가 된다.

Tan과 Le가 2019년 ICML에 발표한 논문 "EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks"의 핵심 기여가 바로 이 질문에 대한 답이다. 그들은 놀랍도록 단순한 수학적 프레임워크를 제안했다.

먼저 세 차원의 스케일링 계수를 다음과 같이 정의한다.

d=αϕ,w=βϕ,r=γϕd = \alpha^\phi, \quad w = \beta^\phi, \quad r = \gamma^\phi

여기서 dd는 깊이 계수, ww는 너비 계수, rr은 해상도 계수다. 그리고 이들은 다음 제약 조건을 만족해야 한다.

αβ2γ22\alpha \cdot \beta^2 \cdot \gamma^2 \approx 2

이 수식이 말하는 바를 하나씩 풀어보자.

ϕ\phicompound coefficient(복합 계수)로, 사용자가 결정하는 단일 파라미터다. 자원(연산량)이 얼마나 있는지에 따라 정해진다. 자원이 기존의 2배 있으면 ϕ=1\phi = 1로 설정하고, 4배 있으면 ϕ=2\phi = 2로, 8배 있으면 ϕ=3\phi = 3으로 설정한다. 즉, ϕ\phi"얼마나 크게 키울 것인가"를 결정하는 마스터 다이얼이다.

α\alpha, β\beta, γ\gamma는 각각 깊이, 너비, 해상도의 기본 비율이다. 이 세 값은 ϕ\phi와 무관하게 고정되며, 소규모 그리드 서치(grid search)로 결정된다. 구체적으로는 B0 아키텍처에서 ϕ=1\phi = 1로 고정한 상태에서 α\alpha, β\beta, γ\gamma의 최적 조합을 탐색한다.

제약 조건 αβ2γ22\alpha \cdot \beta^2 \cdot \gamma^2 \approx 2가 왜 필요한지도 중요하다. 깊이를 α\alpha배 키우면 FLOPs는 약 α\alpha배 증가한다(층 수에 비례). 너비를 β\beta배 키우면 FLOPs는 약 β2\beta^2배 증가한다(입력 채널과 출력 채널 모두 β\beta배이므로). 해상도를 γ\gamma배 키우면 FLOPs는 약 γ2\gamma^2배 증가한다(가로와 세로 모두 γ\gamma배이므로). 따라서 세 차원을 동시에 키울 때 총 FLOPs 증가는 대략 αβ2γ2\alpha \cdot \beta^2 \cdot \gamma^2배다. 이것을 2로 고정하면, ϕ\phi를 1 키울 때마다 전체 FLOPs가 정확히 2배로 증가하게 된다. 자원 증가와 모델 크기 증가의 관계가 예측 가능해지는 것이다.

EfficientNet 논문에서 그리드 서치로 찾은 최적 값은 다음과 같다.

α=1.2,β=1.1,γ=1.15\alpha = 1.2, \quad \beta = 1.1, \quad \gamma = 1.15

이 값들이 제약 조건을 만족하는지 검증해보자.

1.2×1.12×1.152=1.2×1.21×1.32251.9221.2 \times 1.1^2 \times 1.15^2 = 1.2 \times 1.21 \times 1.3225 \approx 1.92 \approx 2 \quad \checkmark

이 숫자들이 말해주는 것이 있다. 깊이 계수 α=1.2\alpha = 1.2가 너비 계수 β=1.1\beta = 1.1과 해상도 계수 γ=1.15\gamma = 1.15보다 약간 크다. 이는 깊이가 세 차원 중 가장 중요한 축이라는 것을 시사한다. 하지만 그 차이는 크지 않다. 1.2와 1.1의 차이, 1.2와 1.15의 차이. 세 차원이 거의 비슷한 비중으로 함께 성장해야 한다는 뜻이다.

비유하면, 이것은 요리의 레시피와 같다. 소금, 후추, 설탕의 최적 비율을 먼저 찾는다. 소금 1.2, 후추 1.1, 설탕 1.15 — 이 비율은 요리의 종류(모델 아키텍처)에 따라 달라질 수 있지만, 한번 찾으면 고정된다. 그 뒤에는 이 비율을 유지한 채 전체 양만 조절하면 된다. 한 사람분을 열 사람분으로 늘릴 때, 소금만 10배 넣고 후추와 설탕은 그대로 두면 맛이 망가진다. 세 재료를 동일한 비율로 함께 늘려야 맛이 유지되는 것이다.

아래 탐색기에서 ϕ\phi 값을 조절하며 Compound Scaling의 효과를 직접 체험해보자.

NAS(Neural Architecture Search) — B0의 탄생

Compound Scaling은 "어떤 비율로 키울 것인가"에 대한 답이다. 하지만 이 답이 유효하려면 먼저 좋은 출발점이 필요하다. 아무리 완벽한 비율로 스케일링해도, 시작점인 기본 모델이 형편없으면 결과도 형편없을 것이다. 나쁜 레시피를 아무리 정확한 비율로 늘려봐야 맛없는 요리가 대량으로 나올 뿐이다.

여기서 EfficientNet의 두 번째 혁신이 등장한다. 기본 모델 B0를 사람이 설계하지 않았다. 기계가 찾았다.

Tan과 Le는 자신들이 이전에 발표한 MnasNet(Tan et al., 2019)의 NAS(Neural Architecture Search) 프레임워크를 활용하여 B0의 아키텍처를 자동으로 탐색했다. NAS란 신경망의 구조 자체를 자동으로 찾는 기법으로, 2017년 Zoph & Le가 발표한 "Neural Architecture Search with Reinforcement Learning"에서 본격적으로 시작된 분야다.

NAS의 작동 원리를 간략히 설명하면 이렇다. 컨트롤러(controller) 역할을 하는 신경망이 후보 아키텍처를 생성하고, 그 아키텍처를 실제로 학습시켜 성능을 측정한 뒤, 그 결과를 바탕으로 컨트롤러를 업데이트한다. 이 과정을 수천~수만 번 반복하면, 컨트롤러는 점점 더 좋은 아키텍처를 생성하게 된다.

MnasNet의 NAS가 특별했던 이유는 다목적 보상 함수(multi-objective reward function)에 있다. 대부분의 NAS는 정확도만을 최적화 대상으로 삼는다. 하지만 MnasNet은 정확도와 실제 디바이스에서의 추론 속도(latency)를 동시에 최적화했다. 수식으로 표현하면 보상은 ACC(m)×[LAT(m)/T]wACC(m) \times [LAT(m)/T]^w 형태로, 정확도가 높으면서 동시에 빠른 모델에 높은 보상을 부여한다. 정확하기만 한 모델도, 빠르기만 한 모델도 아닌, 정확하면서 빠른 모델을 찾는 것이다.

비유하면 이렇다. 일반적인 NAS가 "가장 맛있는 레시피를 찾아라"라는 주문이라면, MnasNet의 NAS는 "가장 맛있으면서 재료를 가장 적게 쓰는 레시피를 찾아라"라는 주문이다. 수백 개의 레시피를 시도해보고, 맛과 효율 사이의 최적점을 자동으로 찾아내는 AI 셰프인 셈이다.

이 과정을 거쳐 탄생한 것이 EfficientNet-B0다. B0는 MBConv(Mobile inverted Bottleneck Convolution) 블록을 기본 단위로 사용하며, 각 단계(stage)에서 블록의 수, 커널 크기, 채널 수 등이 NAS에 의해 자동으로 결정되었다. 사람의 직관이 아닌 데이터와 알고리즘이 찾아낸 최적의 시작점이었다.

NAS 로봇

B0에서 B7까지: Compound Coefficient로 스케일업

B0라는 견고한 기초가 마련되었으니, 이제 Compound Scaling의 마법을 발휘할 차례다.

ϕ=0\phi = 0이 B0다. 베이스라인 모델로서 5.3M 파라미터, ImageNet top-1 정확도 77.1%를 달성한다. 이것만으로도 기존의 많은 모델보다 효율적이다. 같은 정확도 수준의 ResNet-50(26M 파라미터)에 비해 파라미터가 5분의 1에 불과하다. NAS가 찾아낸 시작점의 품질이 이미 높은 것이다.

ϕ\phi를 1씩 키울 때마다, 깊이는 1.2ϕ1.2^\phi배, 너비는 1.1ϕ1.1^\phi배, 해상도는 1.15ϕ1.15^\phi배로 동시에 커진다. 제약 조건에 의해 FLOPs는 ϕ\phi가 1 증가할 때마다 약 2배로 증가한다. 이 관계를 통해 B1, B2, ... B7이 체계적으로 생성된다.

이 과정의 아름다움은 그 일관성에 있다. 연구자가 매번 새로운 아키텍처를 설계할 필요가 없다. ϕ\phi라는 단일 다이얼만 돌리면, 세 차원이 최적의 비율로 함께 커진다. 작은 모바일 디바이스용 모델이 필요하면 ϕ\phi를 낮추고, 고성능 서버용 모델이 필요하면 ϕ\phi를 높이면 된다. 하나의 원칙으로 모든 규모를 커버하는 것이다.

이 시리즈의 정점인 EfficientNet-B7의 성능은 충격적이었다. ϕ=7\phi = 7에 해당하는 B7은 66M 파라미터로 ImageNet top-1 정확도 84.3%를 달성했다. 당시 최고 성능 모델이었던 GPipe(AmoebaNet)는 557M 파라미터로 84.4%를 기록하고 있었다. 거의 동일한 정확도를 8.4배 적은 파라미터로 달성한 것이다.

추론 속도에서도 격차는 압도적이었다. EfficientNet-B7은 GPipe 대비 6.1배 빠르게 같은 수준의 정확도에 도달했다. 모바일에 최적화된 B0부터 서버급 B7까지, 모든 규모에서 기존 모델을 능가하는 효율을 보여주었다.

NAS (자동 탐색)
EfficientNet-B0 (베이스라인)
↓ Compound Scaling (φ↑)
B1
B2
B3
...
B7

이 결과가 시사하는 바는 명확하다. 기존의 스케일링 방식 — 하나의 차원만 편향되게 키우는 방식 — 은 자원을 비효율적으로 사용하고 있었다. Compound Scaling은 같은 자원으로 훨씬 더 나은 결과를 얻을 수 있다는 것을 증명했다. "더 크게"가 아니라 "더 똑똑하게" 키우는 것이 정답이었던 것이다.

Tan과 Le의 연구는 모델 스케일링이라는 행위 자체를 과학으로 만들었다. 이전까지 스케일링은 경험과 직관에 의존하는 기술(art)에 가까웠다. "이 정도 깊이면 괜찮겠지", "채널을 두 배로 늘려볼까" — 이런 임기응변의 결정들이 모여 하나의 모델을 구성했다. EfficientNet은 이 과정을 수식 하나와 다이얼 하나로 대체했다. 예술이 과학이 된 순간이었다.

하지만 이 우아한 수학적 프레임워크의 내부를 들여다보면, 그 안에는 정교한 공학적 혁신들이 숨어 있다. B0가 NAS로 찾은 아키텍처의 기본 단위인 MBConv 블록, 그 안에 내장된 SE(Squeeze-and-Excitation) 모듈, 그리고 ReLU를 대체한 Swish 활성화 함수. 이 부품들 하나하나가 EfficientNet의 효율성을 가능하게 한 핵심 기술이다.

다음 장에서 이 내부 부품들을 하나씩 해부해 보자.


4장: 내부 해부 — MBConv와 SE

MBConv (Mobile Inverted Bottleneck Convolution)

EfficientNet의 기본 빌딩 블록은 MBConv다. 이 구조는 MobileNetV2(Sandler et al., 2018)에서 처음 제안되었으며, 이름에 담긴 "Inverted Bottleneck"이라는 단어가 이 구조의 핵심을 설명한다.

"Inverted(역전된)"가 무엇이 역전되었다는 뜻인지 이해하려면, 먼저 전통적인 bottleneck을 알아야 한다. ResNet(He et al., 2016)에서 사용된 bottleneck 블록은 넓은→좁은→넓은 구조다. 256개 채널의 입력이 64개 채널로 축소되고(1 × 1 Conv), 64개 채널에서 3 × 3 합성곱을 수행한 뒤, 다시 256개 채널로 확장된다(1 × 1 Conv). 가운데가 좁아서 "병목(bottleneck)"이라는 이름이 붙었다. 좁은 부분에서 연산을 수행하므로 비용이 절약된다.

MobileNetV2의 inverted bottleneck은 이 구조를 정확히 뒤집은 것이다. 좁은→넓은→좁은. 24개 채널의 입력이 144개 채널로 확장되고(1 × 1 Conv, expansion), 144개 채널에서 depthwise 합성곱을 수행한 뒤, 다시 24개 채널로 축소된다(1 × 1 Conv, projection). 가운데가 넓고 양쪽이 좁다.

왜 뒤집었을까? 핵심 통찰은 이것이다. 저차원 공간에서 직접 연산하면 정보가 손실된다. ReLU 같은 비선형 활성화 함수는 저차원에서 정보를 파괴하는 경향이 있다. 따라서 먼저 고차원 공간으로 확장한 뒤 그곳에서 연산을 수행하고, 결과를 다시 저차원으로 압축하는 것이 더 효율적이다.

비유하면 이렇다. 좁은 복도로 들어와서 넓은 작업실에서 일하고, 다시 좁은 복도로 나가는 것이다. 작업실이 넓어야 다양한 도구를 펼쳐놓고 작업할 수 있다. 좁은 복도에서는 들고 있는 짐(정보)만 옮기면 되지만, 실제 작업은 넓은 공간에서 이루어져야 한다.

MBConv 블록의 전체 구조를 단계별로 살펴보면 이렇다.

  1. Expansion (1 × 1 Conv): 입력 채널을 확장한다. 보통 6배로 확장한다(expansion ratio = 6). 24개 채널이 144개 채널로 넓어진다.
  2. Depthwise Conv (3 × 3 또는 5 × 5): 확장된 채널 각각에 대해 독립적으로 공간 합성곱을 수행한다. 채널 간의 상호작용 없이 각 채널의 공간적 패턴만 추출한다.
  3. SE (Squeeze-and-Excitation): 채널별 중요도를 학습하여 가중치를 부여한다. (다음 섹션에서 자세히 다룬다.)
  4. Projection (1 × 1 Conv): 고차원 표현을 다시 저차원으로 압축한다. 144개 채널이 24개 채널로 돌아온다.
  5. Skip Connection: 입력과 출력을 더한다(ResNet의 잔차 연결과 동일). 단, 입력과 출력의 채널 수가 같고 공간 크기가 같을 때만 적용된다.

이 구조가 효율적인 이유는 가장 비싼 연산(depthwise conv)이 채널 간 상호작용 없이 수행된다는 점이다. 일반적인 합성곱은 모든 입력 채널과 모든 출력 채널 사이의 연결을 계산해야 하지만, depthwise conv는 각 채널을 독립적으로 처리하므로 연산량이 극적으로 줄어든다.

아래에서 MBConv 블록의 각 단계를 클릭하여 내부 구조를 탐색해보자.

Depthwise Separable Convolution — 분업의 천재적 아이디어

MBConv의 핵심 연산인 depthwise separable convolution을 좀 더 자세히 살펴보자. 이 기법은 MobileNet(Howard et al., 2017)에서 본격적으로 도입되었으며, 합성곱 연산의 비용을 극적으로 줄이는 분해 기법이다.

일반적인 합성곱의 연산량을 생각해보자. MM개의 입력 채널, NN개의 출력 채널, 커널 크기 DK×DKD_K \times D_K, 특징 맵 크기 DF×DFD_F \times D_F일 때, 연산량은 다음과 같다.

DK2MNDF2D_K^2 \cdot M \cdot N \cdot D_F^2

모든 입력 채널과 모든 출력 채널 사이의 조합을 계산해야 하므로 M×NM \times N이 곱해진다. 채널 수가 많아질수록 이 비용은 제곱으로 폭발한다.

Depthwise separable convolution은 이 연산을 두 단계로 분해한다.

1단계 — Depthwise Convolution: 각 입력 채널에 대해 독립적으로 공간 합성곱을 수행한다. MM개의 채널이 있으면 MM개의 개별 필터가 각각 하나의 채널만 처리한다. 연산량은 DK2MDF2D_K^2 \cdot M \cdot D_F^2로, 일반 합성곱 대비 NN이 사라졌다.

2단계 — Pointwise Convolution (1 × 1 Conv): 채널 간 정보를 섞는다. 1 × 1 크기의 필터로 MM개 채널의 정보를 조합하여 NN개 출력 채널을 생성한다. 연산량은 MNDF2M \cdot N \cdot D_F^2로, DK2D_K^2가 사라졌다.

두 단계의 총 연산량은 DK2MDF2+MNDF2D_K^2 \cdot M \cdot D_F^2 + M \cdot N \cdot D_F^2다. 일반 합성곱 대비 비율을 계산하면 1N+1DK2\frac{1}{N} + \frac{1}{D_K^2}이 된다. 3 × 3 커널(DK=3D_K = 3)이고 256개 출력 채널(N=256N = 256)이라면, 연산량은 일반 합성곱의 약 1256+190.115\frac{1}{256} + \frac{1}{9} \approx 0.115 — 즉 약 8~9배 절약된다.

비유하면, 이것은 오케스트라의 리허설 방식과 같다. 전체 오케스트라가 한꺼번에 합주하면 각 악기의 미세한 문제를 잡기 어렵고 비용도 크다. 대신 각 악기 파트가 먼저 개별 연습(depthwise)을 하고, 그 다음에 합주(pointwise)로 파트 간의 조화를 맞추는 것이다. 결과는 비슷하지만, 효율은 압도적으로 높다.

Squeeze-and-Excitation (SE) Block — 채널의 이퀄라이저

MBConv 블록의 세 번째 단계에 자리 잡은 SE 블록은 Hu et al. (2018)"Squeeze-and-Excitation Networks"에서 제안한 기법이다. 핵심 아이디어는 단순하지만 강력하다. 모든 채널이 동등하게 중요하지 않다. 따라서 중요한 채널의 "볼륨"을 높이고, 덜 중요한 채널의 볼륨을 낮추자.

이미지 분류에서 특정 채널은 현재 입력과 관련된 핵심 정보를 담고 있고, 다른 채널은 상대적으로 덜 중요한 정보를 담고 있을 수 있다. 예를 들어 고양이를 분류할 때, 귀의 형태를 감지하는 채널은 매우 중요하지만, 배경의 일반적인 텍스처를 감지하는 채널은 상대적으로 덜 중요하다. SE 블록은 이런 채널별 중요도를 학습한다.

SE 블록의 구조는 다음 네 단계로 이루어진다.

  1. Squeeze (Global Average Pooling): 각 채널의 특징 맵을 하나의 숫자로 요약한다. H×WH \times W 크기의 특징 맵이 하나의 스칼라 zsez_{se}로 압축된다. 이 숫자는 해당 채널의 "전반적인 활성도"를 나타낸다.
  2. Excitation (FC → ReLU → FC → Sigmoid): 압축된 정보를 바탕으로 채널별 중요도를 계산한다. 첫 번째 FC(fully connected) 층이 채널 수를 축소하고(보통 원래의 1/4로), ReLU를 거친 뒤, 두 번째 FC 층이 원래 채널 수로 복원하며, Sigmoid로 0~1 사이의 가중치를 출력한다.
  3. Scale: 원래 특징 맵에 채널별 가중치를 곱한다.

수식으로 표현하면 다음과 같다.

s=σ(W2ReLU(W1zse))s = \sigma(W_2 \cdot \text{ReLU}(W_1 \cdot z_{se}))

여기서 W1W_1은 축소 가중치, W2W_2는 복원 가중치, σ\sigma는 sigmoid 함수다. 출력 ss는 채널 수와 같은 크기의 벡터로, 각 원소가 해당 채널의 중요도를 나타낸다.

비유하면 SE 블록은 오디오 이퀄라이저다. 음악을 들을 때, 모든 주파수 대역이 동일한 볼륨으로 재생되지 않는다. 저음이 중요한 곡에서는 저음역대의 볼륨을 키우고, 보컬이 핵심인 곡에서는 중음역대를 강화한다. SE 블록은 신경망에서 이 역할을 수행한다. 현재 입력에서 중요한 "주파수"(채널)를 자동으로 파악하여 그 채널의 신호를 강화하고, 불필요한 채널의 신호를 약화시킨다.

SE 블록의 추가 연산 비용은 극히 미미하다. FC 층 두 개에 불과하고, 채널 수도 축소되므로 전체 FLOPs에서 차지하는 비중은 1% 미만이다. 그러면서도 정확도 향상 효과는 0.5~1%p에 달한다. 비용 대비 효과가 뛰어난, 전형적인 "가성비 좋은" 모듈이다.

Swish 활성화 함수 — ReLU의 조용한 후계자

MBConv 블록 곳곳에서 사용되는 활성화 함수도 기존의 표준에서 벗어나 있다. EfficientNet은 ReLU 대신 Swish 활성화 함수를 사용한다.

Swish는 다음과 같이 정의된다.

Swish(x)=xσ(x)=x1+ex\text{Swish}(x) = x \cdot \sigma(x) = \frac{x}{1 + e^{-x}}

여기서 σ(x)\sigma(x)는 sigmoid 함수다. 이 수식은 의외로 단순하다. 입력 xx에 자기 자신의 sigmoid 값을 곱한 것이다.

ReLU와 비교하면 차이가 명확해진다. ReLU는 max(0,x)\max(0, x)로, 음수 입력을 완전히 0으로 만든다. 이것은 장점이자 단점이다. 계산이 매우 빠르다는 장점이 있지만, 음수 영역의 모든 정보가 소실된다는 단점이 있다. 특히 학습 초기에 많은 뉴런이 음수 영역에 갇혀 영원히 0만 출력하는 "dying ReLU" 문제가 발생할 수 있다.

Swish는 이 문제를 우아하게 해결한다. 양수 영역에서는 ReLU와 거의 동일하게 동작하지만, 음수 영역에서는 완전히 0으로 만들지 않고 약간의 음수 값을 허용한다. x=1x = -1일 때 Swish(-1) = 11+e10.27\frac{-1}{1 + e^1} \approx -0.27이다. 완전한 0이 아니라 작은 음수가 살아남는다. 이 작은 차이가 깊은 네트워크에서 기울기 흐름을 개선하고, 학습의 안정성을 높인다.

Ramachandran et al. (2017)의 연구에 따르면, Swish는 ImageNet에서 ReLU 대비 약 0.4~0.6%p의 정확도 향상을 가져온다. 수치로 보면 작아 보이지만, 모델의 구조나 크기를 전혀 바꾸지 않고 활성화 함수만 교체하여 얻는 공짜 성능 향상이라는 점에서 의미가 크다. 다만 sigmoid 연산이 포함되어 ReLU보다는 약간 느리다는 트레이드오프가 있다.

부품들의 시너지

이 장에서 해부한 세 가지 부품 — MBConv의 inverted bottleneck 구조, SE 블록의 채널 주의 메커니즘, Swish 활성화 함수 — 은 각각 독립적으로도 가치가 있는 기술이다. 하지만 EfficientNet에서 이들은 단순히 나열된 것이 아니라 유기적으로 결합되어 있다.

Inverted bottleneck이 고차원 공간에서 풍부한 표현을 만들고, depthwise separable convolution이 그 연산 비용을 극적으로 줄이며, SE 블록이 중요한 채널을 선별적으로 강화하고, Swish가 깊은 네트워크에서의 기울기 흐름을 개선한다. 이 네 요소가 MBConv라는 하나의 블록 안에 압축되어, EfficientNet의 모든 단계(stage)에서 반복된다.

그리고 이 정교한 블록의 조합을 NAS가 자동으로 찾아냈고, Compound Scaling이 최적의 비율로 확대했다. 좋은 부품(MBConv + SE + Swish) + 좋은 설계 방법(NAS) + 좋은 확대 원칙(Compound Scaling) — 이 삼박자가 맞아떨어진 것이 EfficientNet의 진정한 힘이다.

이전 세대의 모델들이 "더 크게"를 외치며 자원을 쏟아부을 때, EfficientNet은 정교한 부품과 체계적인 원칙으로 같은 성능을 훨씬 적은 비용에 달성했다. 작은 것이 아름다울 수 있다는 것을 — 수학과 공학으로 — 증명한 것이다.


5장: 실전 사례와 EfficientNetV2

모바일과 엣지 — 작은 디바이스 위의 거인

논문의 수식과 벤치마크가 아무리 아름다워도, 현실 세계에서 작동하지 않으면 공허하다. EfficientNet이 진정으로 빛나는 장소는 학회 발표장이 아니라, 수십억 대의 스마트폰과 수백만 개의 IoT 센서 위다.

스마트폰 실시간 이미지 분류. EfficientNet-B0는 5.3M 파라미터로 ImageNet top-1 정확도 77.1%를 달성한다. 비슷한 정확도 수준의 MobileNetV2(72.0%, 3.4M)와 비교하면, 파라미터가 약간 많지만 정확도는 5%p 이상 높다. 실시간 카메라 앱에서 "이것이 고양이인가 개인가"를 판단하는 수준을 넘어, "이 고양이의 품종이 무엇인가"까지 구분할 수 있는 차이다. EfficientNet-B1(7.8M, 79.1%)은 MobileNetV2 대비 정확도 격차를 더 벌리면서도, 최신 스마트폰 프로세서에서 실시간 추론이 충분히 가능한 크기를 유지한다.

IoT와 엣지 디바이스. Raspberry Pi 4나 NVIDIA Jetson Nano 같은 소형 컴퓨팅 보드에서 AI를 돌리는 것은 이제 취미 프로젝트가 아니라 산업 현장의 요구다. EfficientNet-B0는 TensorFlow Lite(TFLite)로 변환하면 모델 크기가 약 20MB 수준으로 줄어든다. INT8 양자화를 적용하면 5MB 이하까지 압축할 수 있다. Jetson Nano에서 EfficientNet-B0의 추론 속도는 이미지당 약 3050ms로, 초당 2030프레임의 실시간 처리가 가능하다. 공장의 컨베이어 벨트 위를 지나가는 제품을 실시간으로 검사하기에 충분한 속도다.

자동차 블랙박스와 ADAS. 자동차의 전방 카메라가 포착하는 영상에서 보행자, 차량, 신호등을 실시간으로 분류하는 것은 생명과 직결되는 과제다. EfficientNet은 EfficientDet(Tan, Pang & Le, 2020)이라는 객체 탐지 모델의 백본(backbone)으로 활용되어, 정확도와 속도의 균형을 극대화한다. 제한된 차량용 프로세서에서 ResNet 기반 백본 대비 같은 정확도를 더 적은 연산으로 달성하므로, 나머지 연산 자원을 후처리나 경로 예측에 할당할 수 있다.

TFLite 변환과 모바일 최적화. Google의 TFLite는 모바일/엣지 배포의 사실상 표준이다. EfficientNet은 애초에 MBConv 기반으로 설계되었기 때문에, depthwise separable convolution이 TFLite의 최적화 대상 연산과 정확히 일치한다. 즉, 변환 과정에서 성능 손실이 최소화된다. Google은 이 호환성을 극대화하기 위해 EfficientNet-Lite 시리즈를 별도로 공개했는데, SE 블록과 Swish를 제거하여 모바일 하드웨어에서의 추론 효율을 더욱 높인 버전이다.

의료영상 — 생명을 구하는 전이학습

의료 AI는 특수한 제약이 있는 분야다. 데이터가 극히 적고(환자 프라이버시, 라벨링 비용), 정확도 요구는 극히 높으며(오진의 대가가 생명), 설명 가능성까지 요구된다. 이 제약 속에서 EfficientNet은 전이학습(transfer learning)의 표준 백본으로 부상했다.

코로나19 흉부 X-ray 분류. 2020년 팬데믹이 전 세계를 강타했을 때, 수많은 연구팀이 흉부 X-ray에서 코로나19 감염 여부를 자동으로 판별하는 AI를 개발했다. 이 연구들의 압도적 다수가 EfficientNet 기반 전이학습을 채택했다. 이유는 명확하다. ImageNet에서 사전학습된 EfficientNet의 특징 추출 능력이 의료 이미지에서도 유효했기 때문이다. 폐의 미세한 음영 차이, 경결(consolidation) 패턴, 간유리 음영(ground-glass opacity) 같은 특징들을 EfficientNet이 효과적으로 포착했다. 특히 EfficientNet-B3~B5 수준의 모델이 정확도와 학습 속도의 최적 균형점으로 많이 선택되었다.

피부 병변 분류. 피부암 진단은 컴퓨터 비전의 대표적 의료 응용 사례다. ISIC(International Skin Imaging Collaboration) 데이터셋을 활용한 다수의 연구에서, EfficientNet 기반 모델이 피부과 전문의 수준의 정확도를 달성했다. ImageNet의 수백만 장 이미지에서 학습된 저수준 특징(엣지, 텍스처, 색상 패턴)이 피부 병변의 미세한 차이를 구분하는 데 그대로 전이되는 것이다. 수천 장의 의료 이미지만으로 미세조정(fine-tuning)하여 실용적인 정확도에 도달할 수 있다는 점이 핵심이다.

망막 질환 진단. 당뇨성 망막병증, 녹내장, 황반변성 같은 안과 질환의 진단에서도 EfficientNet은 강력한 성능을 보여준다. 망막의 OCT(Optical Coherence Tomography) 이미지는 해상도가 높고 미세한 구조적 차이가 진단의 핵심이므로, 해상도 스케일링이 포함된 Compound Scaling의 장점이 극대화된다. EfficientNet-B3~B5 수준이 정확도와 추론 속도의 최적점으로, 실제 안과 클리닉에서의 실시간 보조 진단 도구로 활용되고 있다.

위성영상과 항공 — 하늘에서 본 지구를 읽다

위성영상 분석은 "거대한 이미지에서 작은 객체를 찾는" 과제다. 하나의 위성 이미지가 수천 × 수천 픽셀에 달하며, 그 안에서 건물 하나, 차량 한 대, 농작물의 종류를 구분해야 한다. 이 분야에서 EfficientNet은 두 가지 이유로 각광받고 있다.

첫째, 정확도. 건물 탐지(building footprint extraction)와 작물 분류(crop classification) 과제에서 EfficientNet 기반 모델은 ResNet 기반 모델 대비 일관되게 높은 정확도를 보여준다. Compound Scaling에 의해 해상도, 깊이, 너비가 균형 있게 설정되므로, 고해상도 위성 이미지의 세밀한 패턴을 효과적으로 학습한다.

둘째, 효율성. 위성영상 분석은 대규모 지역을 커버해야 하므로, 처리해야 할 이미지의 양이 방대하다. 한 도시의 건물을 모두 탐지하려면 수천 장의 타일을 추론해야 한다. 이때 모델의 추론 속도가 전체 파이프라인의 병목이 된다. EfficientNet은 같은 정확도를 더 적은 FLOPs로 달성하므로, 제한된 GPU 자원으로 더 넓은 지역을 더 빨리 처리할 수 있다. 재난 대응처럼 시간이 생명인 상황에서 이 효율성의 차이는 결정적이다.

산업 품질 검사 — 0.01mm의 결함을 찾아내다

반도체 웨이퍼의 미세 결함, 디스플레이 패널의 화소 불량, 식품 생산 라인의 이물질 — 산업 품질 검사는 실시간 속도극도의 정확도를 동시에 요구하는 영역이다. 하루에 수십만 개의 제품이 생산 라인을 통과하므로, 이미지당 추론 시간이 수십 밀리초를 넘으면 라인 속도를 따라갈 수 없다. 동시에 결함을 놓치면 불량품이 출하되어 막대한 비용이 발생한다.

이 분야에서 EfficientNet-B0B3 수준의 모델이 선호되는 이유가 여기에 있다. B0는 추론 속도가 빠르고 모델 크기가 작아 엣지 디바이스에 직접 배포할 수 있다. B2B3은 약간의 속도를 희생하는 대신 미세 결함 탐지에 필요한 정확도를 확보한다. 기존에 사용되던 VGG나 ResNet 기반 모델 대비, 같은 정확도를 달성하면서도 추론 속도가 2~5배 빨라 생산 라인의 요구 속도를 충족시킨다.

특히 주목할 점은 전이학습의 효과다. 반도체 결함 이미지는 일반 이미지와 매우 다르게 보이지만, ImageNet에서 학습된 저수준 특징 — 엣지, 그래디언트, 텍스처 패턴 — 은 결함의 경계선이나 표면 이상을 감지하는 데 놀라울 정도로 유효하다. 수백 장의 결함 이미지만으로 미세조정하여 실용적인 검출 정확도에 도달할 수 있다는 것이 산업 현장에서의 핵심 장점이다.

EfficientNetV2 — "더 빠르게 학습하는 법을 배우다"

2021년, Mingxing Tan과 Quoc V. Le는 다시 한번 등장하여 "EfficientNetV2: Smaller Models and Faster Training"을 발표했다. 이름에서 알 수 있듯이, V2의 목표는 단순히 추론 효율만이 아니라 학습 효율까지 혁신하는 것이었다.

원래 EfficientNet(V1)에는 하나의 아킬레스건이 있었다. 학습 속도가 느렸다. 정확도와 추론 효율은 탁월했지만, 모델을 처음부터 학습시키는 데 걸리는 시간은 경쟁 모델보다 오히려 길었다. 특히 큰 이미지 해상도(B5 이상에서 456×456 이상)를 사용할 때 학습 속도 병목이 심각했다. 이는 depthwise convolution이 초기 층의 큰 특징 맵에서 메모리 접근 패턴이 비효율적이기 때문이었다.

Tan과 Le는 이 문제를 두 가지 핵심 혁신으로 해결했다.

핵심 개선 1: Fused-MBConv. 기존 MBConv는 1 × 1 확장(expansion)과 3 × 3 depthwise convolution을 분리하여 수행했다. V2는 네트워크의 초기 단계(early stages)에서 이 두 연산을 하나의 일반 3 × 3 합성곱으로 융합(fuse)했다. 왜 초기 단계에서만? 초기 단계는 입력 해상도가 크고 채널 수가 적다. 이 조건에서 depthwise convolution은 메모리 접근 비용이 실제 연산 비용보다 높아지는 비효율이 발생한다. 일반 합성곱은 연산량은 더 많지만 메모리 접근 패턴이 규칙적이어서 하드웨어 가속기(GPU, TPU)에서 더 빠르게 실행된다. 반면 네트워크의 후기 단계(late stages)는 해상도가 줄고 채널이 많아지므로 기존 MBConv가 여전히 효율적이다. V2는 이 관찰을 바탕으로 초기에는 Fused-MBConv, 후기에는 기존 MBConv를 사용하는 하이브리드 전략을 채택했다.

핵심 개선 2: Progressive Learning(점진적 학습). 이것은 발상의 전환이었다. 기존에는 학습 전체에 걸쳐 동일한 이미지 크기와 동일한 정규화 강도를 사용했다. V2는 학습 과정을 초기부터 후기로 점진적으로 난이도를 높이는 커리큘럼으로 재구성했다. 학습 초기에는 작은 이미지(예: 128 × 128)를 사용하고, 정규화(dropout, augmentation)를 약하게 적용한다. 학습이 진행되면서 이미지 크기를 점차 키우고(예: 300 × 300까지), 정규화도 점차 강하게 적용한다.

비유하면 이렇다. 아기에게 쉬운 그림책부터 보여주고, 점차 복잡한 책으로 나아가는 것이다. 처음부터 고해상도의 복잡한 이미지를 보여주면 모델이 혼란스러워하며 수렴이 느려진다. 작은 이미지로 기본적인 패턴을 먼저 학습하고, 점차 복잡한 패턴으로 나아가면 학습 과정 전체가 안정적이고 빠르다. 이 아이디어는 교육학의 비계 설정(scaffolding) 원리와 정확히 일치한다. 학습자의 현재 수준에 맞는 과제를 제시하고, 능력이 성장함에 따라 과제의 난이도를 높이는 것이다.

결과는 놀라웠다. EfficientNetV2는 V1 대비 학습 속도가 최대 11배 향상되었다. 그러면서도 정확도는 오히려 올라갔다. V2-M(54M 파라미터)은 ImageNet top-1 정확도 85.1%를 달성했고, V2-L은 85.7%를 기록했다. 이는 V1의 정점이었던 B7(66M, 84.3%)을 더 적은 파라미터로 능가한 것이다. "더 작고, 더 빠르고, 더 정확하게" — V2는 이 세 마리 토끼를 동시에 잡았다.

엣지 디바이스의 AI

아래에서 EfficientNet 패밀리와 다른 모델들을 직접 비교해보자. 체크박스로 모델을 선택하면 파라미터 대비 정확도를 한눈에 볼 수 있다.

같은 정확도 달성에 필요한 파라미터 수
GPipe
557M (84.4%)
EfficientNet-B7
66M (84.3%)
V2-M
54M (85.1%)

V2의 의미는 단순한 성능 향상을 넘어선다. V1이 "어떻게 효율적으로 스케일링할 것인가"라는 질문에 답했다면, V2는 "어떻게 효율적으로 학습할 것인가"라는 질문까지 답한 것이다. 추론뿐 아니라 학습 과정 자체를 최적화함으로써, 연구자와 실무자가 EfficientNet을 채택하는 데 남아 있던 마지막 장벽 — 긴 학습 시간 — 을 제거했다.


6장: 2026년, 효율의 시대

ViT vs EfficientNet — 다른 전장, 다른 무기

2020년, Dosovitskiy et al."An Image is Worth 16x16 Words"를 발표하며 Vision Transformer(ViT)가 등장했다. 자연어 처리에서 혁명을 일으킨 Transformer 아키텍처가 컴퓨터 비전으로 건너온 것이다. ViT는 이미지를 16 × 16 픽셀의 패치로 잘라 토큰처럼 처리하며, 자기 주의(self-attention) 메커니즘으로 이미지 전체의 전역적 관계를 학습한다.

ViT-Huge는 6억 개가 넘는 파라미터로 ImageNet에서 놀라운 성능을 보여주었고, 이후 DeiT, Swin Transformer, BEiT 등 수많은 변형이 쏟아져 나오며 "CNN의 시대는 끝났다"는 선언까지 등장했다. 과연 그럴까?

현실은 더 미묘하다. ViT와 EfficientNet은 경쟁하는 것이 아니라 다른 전장에서 싸우고 있다.

ViT는 대규모 서버, 클라우드 인프라, 수십억 파라미터의 세계에 속한다. 수천 대의 GPU가 동원되는 데이터센터에서, 정확도 0.1%p의 차이가 비즈니스 가치를 좌우하는 곳에서 ViT는 그 진가를 발휘한다. 하지만 ViT의 self-attention은 이미지 크기의 제곱에 비례하는 연산량을 요구한다. 모바일 프로세서나 IoT 디바이스에서 ViT를 실시간으로 돌리는 것은 2026년 현재에도 비현실적이다.

EfficientNet은 엣지, 모바일, 수백만 파라미터의 세계에 속한다. 스마트폰의 NPU(Neural Processing Unit), 자동차의 임베디드 프로세서, 공장의 엣지 서버에서 실시간으로 작동해야 하는 곳. 전력 소비가 와트(W) 단위로 제한되고, 메모리가 메가바이트 단위로 제한되는 곳. 이곳에서 EfficientNet은 여전히 대체 불가능하다.

비유하면 이렇다. 트레일러와 오토바이는 경쟁하지 않는다. 트레일러는 수십 톤의 화물을 대륙 횡단으로 운반하는 데 최적화되어 있고, 오토바이는 복잡한 도시의 골목길을 빠르게 누비는 데 최적화되어 있다. 트레일러가 골목길에 들어갈 수 없고, 오토바이가 수십 톤을 실을 수 없다. 쓰임이 다르다. 물류 시스템에는 둘 다 필요하다.

AI 세계도 마찬가지다. 클라우드에서 ViT가 수십억 개의 이미지를 분석하여 모델을 학습시키고, 그 지식이 EfficientNet으로 증류(distillation)되어 엣지 디바이스에서 실시간으로 추론을 수행한다. 서버의 힘과 엣지의 속도가 협업하는 하이브리드 아키텍처 — 이것이 2026년 AI 배포의 현실이다.

TinyML과 온디바이스 AI — 보이지 않는 곳의 혁명

AI의 다음 프론티어는 더 큰 모델이 아니라, 더 작은 디바이스에 있다.

TinyML은 마이크로컨트롤러(MCU) 수준의 초소형 프로세서에서 머신러닝을 실행하는 분야다. Arduino, STM32, ESP32 같은 칩 — 전력 소비가 밀리와트(mW) 단위이고, 메모리가 킬로바이트(KB) 단위인 — 에서 AI가 돌아간다. 센서 디바이스의 진동 패턴으로 기계 고장을 예측하고, 웨어러블 기기의 심박 데이터로 부정맥을 감지하며, 스마트 도어벨의 마이크로폰으로 특정 소리를 인식한다.

이 극한의 환경에서 EfficientNet의 DNA는 살아 있다. Google이 공개한 EfficientNet-Lite 시리즈는 TFLite에 최적화된 경량 버전으로, SE 블록과 Swish 활성화 함수를 제거하여 모바일 하드웨어 호환성을 극대화했다. Apple의 CoreML, Google의 TFLite, Qualcomm의 SNPE(Snapdragon Neural Processing Engine) 등 주요 모바일 AI 프레임워크에서 EfficientNet 계열은 표준 백본 모델로 자리 잡았다.

온디바이스 AI의 가장 강력한 장점 중 하나는 프라이버시다. 데이터가 디바이스를 떠나지 않는다. 얼굴 인식이 클라우드 서버가 아닌 스마트폰 내부에서 처리되면, 얼굴 데이터가 네트워크를 통해 전송될 일이 없다. 의료 웨어러블의 건강 데이터가 디바이스 안에서 분석되면, 민감한 건강 정보가 외부 서버에 저장될 필요가 없다. 2026년, 전 세계적으로 강화되는 데이터 보호 규정(GDPR, 개인정보보호법) 속에서 이 장점은 단순한 기술적 이점을 넘어 비즈니스 필수 요건이 되고 있다.

효율성이 새로운 경쟁력인 이유

"더 크게, 더 많이, 더 오래 학습시키면 더 좋은 모델이 나온다." 이 명제는 2026년에도 일정 부분 사실이다. 하지만 이 명제의 이면에는 점점 더 무시할 수 없는 비용이 따라온다.

클라우드 추론 비용. 대규모 AI 서비스의 운영 비용에서 추론(inference)이 차지하는 비중은 학습(training)보다 훨씬 크다. 모델 학습은 한 번 하면 되지만, 추론은 서비스가 운영되는 매 순간 발생한다. EfficientNet이 같은 정확도를 ResNet 대비 5배 적은 FLOPs로 달성한다면, 이는 곧 추론 서버 비용이 5분의 1로 줄어든다는 뜻이다. 수억 건의 일일 추론 요청을 처리하는 서비스에서, 이 차이는 연간 수백만 달러의 비용 절감으로 직결된다.

Green AI — 탄소 발자국의 문제. Strubell et al. (2019)의 연구 "Energy and Policy Considerations for Deep Learning in NLP"는 AI 커뮤니티에 경종을 울렸다. 하나의 대형 NLP 모델을 학습시키는 데 배출되는 탄소량이 자동차 한 대의 전 생애 탄소 배출량의 5배에 달한다는 분석이었다. 이후 AI의 환경 비용에 대한 인식이 급격히 높아졌고, "효율적인 AI"는 윤리적 명제가 되었다. EfficientNet의 Compound Scaling 철학 — 같은 성능을 더 적은 자원으로 달성한다 — 은 Green AI 운동의 기술적 토대 중 하나다.

개인정보 보호. 앞서 언급한 온디바이스 AI의 프라이버시 장점은 효율성과 직결된다. 모델이 충분히 작고 빨라야만 디바이스에서 실행할 수 있고, 디바이스에서 실행해야만 데이터를 외부로 보내지 않을 수 있다. 효율적인 모델은 프라이버시 보호의 기술적 전제 조건인 것이다.

EfficientNet의 유산 — Compound Scaling이 남긴 것

EfficientNet의 영향력은 EfficientNet 자체를 넘어선다. "효율적으로 스케일링하라"는 철학은 이후 등장한 수많은 모델에 유전자처럼 계승되었다.

EfficientDet(Tan, Pang & Le, 2020)은 Compound Scaling을 객체 탐지(object detection)에 적용하여, 백본, 특징 피라미드(Feature Pyramid Network), 박스/클래스 네트워크를 동시에 스케일링했다. EfficientViT(Liu et al., 2023)는 Vision Transformer에 효율성 원칙을 적용한 경량 ViT다. EfficientSAM(Xiong et al., 2024)은 Segment Anything Model의 경량화 버전이다. 이 모든 모델의 이름에 "Efficient"가 붙어 있다는 것 자체가, EfficientNet이 남긴 유산의 크기를 말해준다.

더 나아가, Compound Scaling의 핵심 원리 — "무엇을 키울 때, 관련된 차원들을 함께 균형 있게 키워라" — 는 CNN을 넘어 LLM(Large Language Model) 시대에도 반향을 일으키고 있다. Hoffmann et al. (2022)의 Chinchilla 연구 "Training Compute-Optimal Large Language Models"는 LLM에서 모델 크기와 학습 데이터 크기를 균형 있게 키워야 한다는 스케일링 법칙을 발견했다. 모델만 키우고 데이터는 부족한 상태로 학습시키면 비효율적이고, 데이터만 많고 모델이 작아도 비효율적이다. 최적의 성능은 둘을 함께 키울 때 달성된다.

CNN의 Compound Scaling과 LLM의 Chinchilla scaling law. 분야는 다르지만 공유하는 원리는 동일하다. 균형 잡힌 스케일링. "한 차원만 편향되게 키우는 것은 비효율적이다"라는 깨달음이 깊이-너비-해상도의 세계에서 모델크기-데이터크기의 세계로 전이된 것이다. 이 원리는 아마도 AI의 모든 스케일링 문제에 적용되는 보편적 진리에 가까울 것이다.

2026년 AI 배포 지형도
클라우드 AI ViT, GPT, 대형 멀티모달 높은 정확도, 무한 자원
하이브리드 클라우드+엣지 협업 EfficientViT, ConvNeXt
엣지 AI EfficientNet, MobileNet 실시간, 프라이버시, 저전력

작은 것의 힘


마무리: 작은 것이 아름답다

2019년, Mingxing Tan과 Quoc V. Le는 단순한 질문 하나를 던졌다. "모델을 키울 때, 무엇을 얼마나 키워야 하는가?" 이 질문은 60여 년간 "더 크게, 더 깊게, 더 넓게"를 외치던 분야에 조용한 혁명을 일으켰다. "더 많이"가 아니라 "더 똑똑하게"가 답이 될 수 있다는 것을, 수식 하나와 모델 하나로 증명해 보였다.

EfficientNet-B7은 GPipe 대비 8.4배 작으면서 동일한 정확도를 달성했고, EfficientNetV2는 학습 속도까지 11배 향상시켰다. 이 숫자들 뒤에 숨은 원리는 놀라울 정도로 단순했다. 깊이, 너비, 해상도를 함께 키운다. 이것이 전부였다. 하지만 이 단순한 원리가 수백 개의 복잡한 아키텍처를 능가했다.

EfficientNet이 우리에게 남긴 교훈은 세 가지로 압축된다.

1. 제약이 혁신을 낳는다 — 모바일이라는 제약이 EfficientNet을 탄생시켰다. 제한된 자원은 저주가 아니라 더 나은 해법을 찾게 하는 동력이다.

2. 단순한 원리의 힘 — "세 차원을 함께 키운다"는 놀라울 정도로 단순한 아이디어가 수백 개의 복잡한 아키텍처를 능가했다. 최고의 솔루션은 종종 가장 단순하다.

3. 효율은 선택이 아닌 필수 — 2026년, AI는 서버실에만 있지 않다. 주머니 속 스마트폰에서, 공장의 카메라에서, 농장의 드론에서 작동한다. 효율적이지 않은 AI는 현실 세계에 나올 수 없다.

7년이 지난 지금, EfficientNet의 직접적인 성능 기록은 후속 모델들에 의해 갱신되었다. 하지만 Compound Scaling의 철학은 EfficientDet, EfficientViT, EfficientSAM으로 계승되었고, "균형 잡힌 스케일링"이라는 원리는 Chinchilla scaling law를 통해 LLM의 세계에까지 울림을 남겼다. 기술은 진화하지만, 좋은 원리는 살아남는다.

EfficientNet이 우리에게 남긴 가장 중요한 메시지는 이것이다. AI의 미래는 가장 큰 모델을 만드는 자가 아니라, 가장 적은 자원으로 가장 많은 것을 해내는 자의 것이다.