
논문 원본: https://arxiv.org/abs/1704.04861
MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
We present a class of efficient models called MobileNets for mobile and embedded vision applications. MobileNets are based on a streamlined architecture that uses depth-wise separable convolutions to build light weight deep neural networks. We introduce tw
arxiv.org
논문 간단 요약: MobileNets는 모바일 및 임베디드 비전 환경에 최적화된 경량 신경망 구조로, Depthwise Separable Convolution과 두 개의 글로벌 하이퍼파라미터를 활용해 정확도와 연산량 사이의 효율적인 균형을 가능하게 한다.
Abstract
이 논문에서는 모바일 및 임베디드 비전 환경에 적합한 경량 모델 계열인 MobileNets를 제안한다. MobileNets는 일반적인 합성곱이 아닌, depthwise separable convolution을 사용하여 경량 구조를 구현하였다. 이 방식은 전체 네트워크의 연산량과 파라미터 수를 대폭 줄일 수 있도록 도와준다.
또한 모델이 가진 연산량과 정확도 간의 균형을 효율적으로 조절하기 위한 두 가지 글로벌 하이퍼파라미터를 도입했다. 하나는 네트워크의 채널 수를 줄이는 width multiplier이고, 다른 하나는 입력 해상도를 조절하는 resolution multiplier이다. 이 두 하이퍼파라미터를 조정하면 다양한 제약 조건(속도, 정확도, 메모리 등)에 맞춰 모델을 선택할 수 있다.
MobileNet은 ImageNet 분류 과제에서 기존의 다양한 모델들과 비교해 우수한 효율성을 보였으며, object detection, fine-grained classification, 얼굴 속성 인식, 대규모 위치 추정 등 다양한 비전 과제에서 성능을 입증했다.
1. Introduction
합성곱 신경망(CNN)은 AlexNet 이후 컴퓨터 비전 분야에서 핵심 기술로 자리 잡았다. 특히 ImageNet 대회에서의 성과 이후 CNN은 다양한 과제에서 널리 활용되었으며, 최근에는 높은 정확도를 달성하기 위해 점점 더 깊고 복잡한 구조의 네트워크들이 개발되고 있다. 예를 들어 VGG, Inception, ResNet 등이 이에 해당한다.
하지만 이러한 복잡한 모델들은 반드시 효율적이지는 않다. 특히 모바일 환경, 증강현실, 자율주행, 로보틱스처럼 실시간 처리가 요구되며, 계산 자원이 제한된 시스템에서는 실행 속도와 모델 크기가 매우 중요하다. 따라서 정확도만을 고려한 모델 설계는 실용적인 문제 해결에 한계가 있다.
이 논문에서는 이러한 한계를 극복하기 위해 간결하고 효율적인 네트워크 구조와 두 개의 하이퍼파라미터를 활용한 MobileNets를 제안한다. 이 구조는 작은 모델과 낮은 지연 시간을 기반으로 설계되어, 다양한 제약 조건을 가진 모바일 및 임베디드 환경에 최적화되어 있다.
논문은 다음과 같은 구성으로 이어진다. 2장에서는 기존 연구를 소개하고, 3장에서는 MobileNet의 구조와 하이퍼파라미터를 설명한다. 4장에서는 다양한 실험과 실제 응용 사례에서의 성능을 다루며, 마지막 5장에서 전체 내용을 요약하고 결론을 제시한다.
2. Prior Work
경량 신경망에 대한 관심이 최근 활발해지면서, 작은 모델을 만드는 방식은 크게 두 가지로 나뉜다. 하나는 학습이 끝난 큰 모델을 압축하는 방식이고, 다른 하나는 처음부터 작게 설계된 모델을 훈련하는 것이다. MobileNet은 후자에 속하며, 처음부터 하드웨어 제약에 맞춘 맞춤형 모델을 설계할 수 있도록 구조를 제안한다.
기존의 경량화 연구는 대부분 모델의 크기만 줄이는 데 집중해 왔다. 하지만 MobileNet은 속도, 즉 지연 시간(latency)까지 고려한 설계라는 점에서 차별된다. 이는 모바일 환경에서 실질적인 유용성을 높이는 중요한 요소다.
MobileNet의 핵심 구성 요소인 depthwise separable convolution은 계산량을 크게 줄이는 효율적인 연산 방식이다. 이 연산은 Inception 모델에서 부분적으로 도입되었고, 이후 Flattened Network, Factorized Network, Xception 등에서도 다양한 방식으로 사용되어 왔다. 각각은 모델을 경량화하거나 연산을 분해하는 방식으로 접근했지만, MobileNet은 이 연산을 네트워크 전반에 적용해 일관된 효율성을 확보한다.
또한 SqueezeNet처럼 bottleneck 구조로 크기를 줄이거나, structured transform, deep fried convnets 등과 같은 다양한 경량화 시도도 있었다. 다만 이들 대부분은 모델의 구조적 변화에 초점을 맞췄을 뿐, 모델 설계자가 필요한 수준에 맞춰 직접 속도와 정확도를 조절할 수 있는 유연성은 부족했다.
반면 또 다른 접근은 사전학습된 모델을 압축하거나 양자화하여 작게 만드는 방식이다. 대표적으로 product quantization, pruning, Huffman coding, 행렬 분해 등이 있으며, 이러한 방식들은 이미 학습된 모델의 경량화를 목표로 한다. 지식 증류(distillation) 또한 잘 알려진 방법으로, 큰 모델의 출력을 활용해 작은 모델을 학습시키는 방식이다. 이 방법은 MobileNet 구조와 함께 사용할 수 있는 보완적인 전략으로 본문에서 언급된다.
최근에는 연산 정밀도를 줄여 모델을 경량화하는 저비트 네트워크(quantized networks)도 주목받고 있으며, 이 역시 MobileNet과 같은 구조와 결합해 더 큰 효율을 낼 수 있는 가능성을 갖는다.
결국 MobileNet은 기존의 다양한 경량화 방식들을 바탕으로 하면서도, 지연 시간과 정확도의 균형을 설계자가 직접 조절할 수 있도록 설계된 실용적인 프레임워크라는 점에서 차별화된다.

3. MobileNet Architecture
3.1. Depthwise Separable Convolution
MobileNet의 핵심은 기존 합성곱(convolution)을 depthwise separable convolution으로 대체한 것이다. 이는 표준 합성곱 연산을 두 단계로 나누는 방식으로, 연산량과 모델 크기를 크게 줄일 수 있다.
표준 합성곱은 입력의 모든 채널에 대해 필터를 적용하고, 결과를 조합하여 출력 채널을 생성하는 방식이다. 즉, 필터링과 조합을 한 번에 수행한다. 이 방식은 강력하지만 계산량이 많다.
반면, depthwise separable convolution은 이 과정을 두 개의 연산으로 분리한다.
첫 번째 단계인 depthwise convolution에서는 각 입력 채널에 하나의 필터만 적용하여 채널별로 독립적인 특징을 추출한다.
두 번째 단계인 pointwise convolution은 1×1 합성곱을 사용해 depthwise convolution의 출력을 채널 방향으로 조합한다.
이처럼 필터링과 조합을 분리하면, 전체 계산량은 표준 합성곱에 비해 훨씬 작아진다. 실제로 MobileNet이 사용하는 3×3 depthwise separable convolution은 같은 크기의 표준 합성곱 대비 연산량이 8~9배 적다.
이러한 구조는 다음과 같은 계산량 감소를 가능하게 한다:
- 표준 합성곱의 연산량:
Dk × Dk × M × N × DF × DF
(여기서 Dk는 커널 크기, M은 입력 채널 수, N은 출력 채널 수, DF는 feature map의 공간 크기) - depthwise separable convolution의 연산량:
Dk × Dk × M × DF × DF + M × N × DF × DF
(depthwise + pointwise 각각의 연산량)
비율로 보면,

이 계산을 통해 전체 연산량이 얼마나 절약되는지를 수치로 확인할 수 있다.
이 구조는 단지 연산량을 줄이는 데에만 그치지 않는다. 중요한 점은, depthwise convolution은 입력을 필터링만 하기 때문에, 새로운 특징을 생성하려면 반드시 pointwise convolution이 함께 필요하다는 것이다. 이 두 연산을 결합한 형태가 바로 depthwise separable convolution이며, MobileNet에서는 여기에 BatchNorm과 ReLU 활성화 함수도 함께 사용한다.
MobileNet은 네트워크 전체를 이러한 구조로 구성함으로써, 성능을 유지하면서도 경량화와 속도 향상이라는 두 가지 목표를 동시에 달성한다. 이후 섹션에서 이 구조가 실제로 얼마나 효과적인지를 실험을 통해 보여준다.

(a) Standard Convolution Filters
표준 합성곱에서는 각 필터가 입력의 모든 채널을 동시에 처리한다. 하나의 필터는 입력 채널 전체를 대상으로 하고, 이러한 필터를 출력 채널 수만큼 반복해서 사용한다. 예를 들어 입력 채널 수가 M이고 출력 채널 수가 N이면, 크기 의 필터가 N개 존재한다. 이 구조는 필터링과 채널 간 조합을 한 단계에서 동시에 수행하며, 계산량이 많고 파라미터 수도 크다.
(b) Depthwise Convolutional Filters
Depthwise convolution은 입력 채널마다 독립적인 필터를 하나씩 적용한다. 각각의 필터는 단일 채널에만 작동하며, 필터의 크기는 이다. 따라서 총 M개의 필터가 사용된다. 이 단계에서는 입력 채널을 서로 조합하지 않고, 채널별로 필터링만 수행한다.
그 다음 pointwise convolution에서는 크기의 필터를 사용해 depthwise convolution의 출력을 채널 방향으로 결합한다. 이때 총 N개의 필터가 사용되어 최종 출력 채널 수가 N이 된다.
이 구조는 연산을 두 단계로 분리하여 연산량과 파라미터 수를 크게 줄인다. 필터링과 조합이 각각 나눠져 수행되기 때문에 더 효율적인 구조를 만들 수 있다.
3.2. Network Structure and Training
MobileNet의 전체 구조는 앞서 설명한 depthwise separable convolution을 반복적으로 쌓아 구성되며, 단 하나의 예외는 입력 계층에서만 일반적인 standard convolution을 사용한다는 점이다. 이처럼 구조가 단순하고 반복적이기 때문에 다양한 형태로 실험하거나 최적화하는 데 유리하다.
각 convolution layer 뒤에는 Batch Normalization과 ReLU 활성화 함수가 적용되며, 마지막 fully connected layer에서는 별도의 비선형 함수 없이 바로 softmax를 적용해 분류를 수행한다. 다운샘플링은 첫 번째 layer와 몇몇 depthwise convolution layer에서 stride를 통해 수행되며, 마지막에는 average pooling으로 feature map의 크기를 1로 줄인 뒤 fully connected layer로 연결된다.
전체 네트워크는 depthwise와 pointwise convolution을 개별 layer로 간주하면 총 28개의 계층으로 구성된다.
핵심 요약
- 전체 구조는 매우 단순하며 반복적이다.
- 각 layer: depthwise conv → BN → ReLU → pointwise conv → BN → ReLU
- 마지막에는 average pooling + fully connected + softmax
- 총 28개 계층으로 구성됨
MobileNet은 이론적으로 연산량이 적은 모델이지만, 실제 구현 효율성도 중요하다. 희소 행렬 기반 연산은 특정 수준 이상으로 희소하지 않으면 일반적인 밀집 행렬 연산보다 느릴 수 있다. MobileNet은 대부분의 연산을 1×1 pointwise convolution에 집중시켜, 고도로 최적화된 GEMM(General Matrix Multiply) 연산으로 빠르게 처리될 수 있도록 설계되었다.
실제로 전체 연산의 95% 이상이 1×1 convolution에서 발생하며, 전체 파라미터의 약 75%가 이 연산에 집중되어 있다. fully connected layer를 제외하면 나머지 부분은 매우 경량화되어 있다.
모델 학습은 TensorFlow에서 RMSprop을 사용해 Inception V3와 유사한 방식으로 수행되었지만, 데이터 증강과 정규화는 최소화되었다. 모델이 작기 때문에 과적합 위험이 적고, label smoothing이나 side head 같은 기법은 사용되지 않았다. 특히 depthwise convolution은 파라미터 수가 적기 때문에, 이 부분에는 weight decay(L2 정규화)를 거의 적용하지 않는 것이 중요하다.
학습 전략 요약
- 옵티마이저: RMSprop
- 정규화: depthwise에 weight decay 거의 없음
- 데이터 증강: 최소한으로 제한
- 모든 모델 크기에 대해 동일한 학습 설정 사용
3.3. Width Multiplier: Thinner Models
기본 MobileNet 구조도 이미 충분히 작고 빠르지만, 더 작은 모델이 필요한 경우를 위해 width multiplier라는 하이퍼파라미터를 도입했다. 이 값은 각 레이어의 채널 수를 일정 비율로 줄여 모델 전체를 "얇게" 만드는 역할을 한다.
width multiplier 값을 α라고 했을 때, 입력 채널 수 M과 출력 채널 수 N은 각각 αM, αN으로 줄어든다. 이 값은 일반적으로 1.0, 0.75, 0.5, 0.25 중 하나로 설정된다. α가 작을수록 계산량과 파라미터 수는 약 α²에 비례해서 감소하게 된다.

이러한 구조는 특정 응용환경에 따라 속도, 정확도, 메모리 간의 trade-off를 조절할 수 있는 실용적인 수단이며, 새로운 width multiplier 값을 적용한 모델은 반드시 처음부터 다시 학습되어야 한다.

3.4.Resolution Multiplier: Reduced Representation
MobileNet의 두 번째 모델 축소 방법은 resolution multiplier를 사용하는 것이다. 이 하이퍼파라미터는 입력 이미지의 해상도를 조절하고, 동시에 각 계층의 feature map 크기도 함께 줄인다. 즉, 입력 이미지의 크기를 줄이면 내부 표현도 일관되게 축소되기 때문에, 네트워크 전체의 계산량이 자연스럽게 감소하게 된다.
실제로는 resolution multiplier를 따로 수치로 지정하기보다는, 입력 이미지의 해상도를 224, 192, 160, 128 중 하나로 정하면서 간접적으로 설정된다. 기본 MobileNet은 입력 해상도 224를 기준으로 하며, 이보다 작은 값들은 resolution multiplier가 적용된 축소 모델에 해당한다.
이 방식의 효과를 보여주는 예로, 논문에서는 한 MobileNet 계층(입력 크기 14×14, 채널 수 512, 커널 3×3)을 기준으로 여러 모델 축소 방법을 단계별로 적용해 연산량과 파라미터 수가 얼마나 줄어드는지 비교했다. 아래는 그 요약이다.

위 테이블에서 보듯, depthwise separable convolution만 적용해도 연산량은 약 9배 줄어들고, width 및 resolution multiplier를 적용하면서 추가적인 경량화를 이끌 수 있다. resolution multiplier는 연산량을 resolution² 비율로 감소시키며, 파라미터 수에는 영향을 주지 않는다.
4. Experiments
MobileNet은 경량화에 초점을 맞춘 모델이기 때문에, 실험에서는 다양한 방법으로 모델을 줄였을 때 연산량, 파라미터 수, 정확도가 어떻게 변화하는지를 중점적으로 살펴본다. 이 장에서는 총 세 가지 방향으로 실험이 진행된다.
- Depthwise separable convolution의 효과
- 얇은(thin) vs 얕은(shallow) 모델 비교
- Width, Resolution multiplier 조합에 따른 성능 분석
- 기존 모델들과의 비교 및 실제 활용 가능성 평가
4.1. Model Choices
Depthwise vs Full Convolution
MobileNet의 핵심인 depthwise separable convolution을 평가하기 위해, 같은 구조에서 full convolution만 사용한 모델과 비교하였다.
- FullConv 모델: 71.7% 정확도, 연산량 4866M, 파라미터 수 29.3M
- MobileNet: 70.6% 정확도, 연산량 569M, 파라미터 수 4.2M
→ 정확도는 1% 감소했지만, 연산량과 파라미터 수는 각각 약 8.5배, 7배 이상 감소하였다.
Thin vs Shallow
모델을 얇게(채널 수 감소) 만드는 것과, 얕게(레이어 수 감소) 만드는 것을 비교하였다.
- Thin (0.75 MobileNet): 68.4% 정확도, 연산량 325M
- Shallow (5개 레이어 제거): 65.3% 정확도, 연산량 307M
→ 연산량이 비슷한 상황에서, 얇게 만든 모델이 정확도 측면에서 3% 우수하였다. 즉, 채널 수 감소가 더 효과적인 경량화 방법임을 확인했다.
4.2. Model Shrinking Hyperparameters
Width Multiplier 실험
width multiplier 값을 줄이면 채널 수가 감소하여 모델 크기와 연산량이 줄어든다. 그에 따라 정확도도 서서히 하락한다.

→ 0.25 이하로 줄이면 성능 저하가 급격히 발생한다. 적절한 수준의 축소가 필요하다.
Resolution Multiplier 실험
입력 해상도를 줄이면서 resolution multiplier 효과를 테스트하였다.

→ 해상도만 낮춰도 계산량은 줄이면서 정확도는 비교적 유지할 수 있다. 특히 모바일 환경에서는 160~192 해상도가 적절한 타협점이 될 수 있다.
Width × Resolution 조합 실험
width multiplier와 resolution을 조합하여 총 16가지 모델을 실험했다.
- 정확도 vs 연산량 그래프(Figure 4)는 log-linear 관계를 보였고,
- 정확도 vs 파라미터 수(Figure 5)에서도 유사한 경향을 확인할 수 있었다.
- 단, width가 0.25일 때는 성능 급감이 나타나면서 그래프가 꺾인다.
→ 두 하이퍼파라미터를 함께 조절하면, 정확도와 자원 사용량을 원하는 수준으로 조절 가능하다는 점을 입증했다.
4.3. Fine Grained Recognition
MobileNet의 첫 번째 응용 실험은 Stanford Dogs 데이터셋을 활용한 세분화된 개 품종 분류이다. 이 문제는 이미지 분류보다 더 섬세한 특징 구분이 필요하며, 일반적으로 복잡한 모델이 요구된다.
연구진은 웹에서 수집한 노이즈가 포함된 대용량 이미지로 사전 학습(pre-training)을 수행한 뒤, 이를 Stanford Dogs 데이터셋에서 파인튜닝하는 방식으로 모델을 훈련시켰다.
결과: MobileNet은 이전 연구에서 제안된 복잡한 모델과 유사한 수준의 정확도를 달성하면서도, 훨씬 적은 계산량과 모델 크기로 효율성을 크게 향상시켰다.
4.4. Large Scale Geolocalizaton
PlaNet은 Google에서 개발한 이미지 기반 지리 위치 추정 모델로, 지구를 그리드 셀로 나누어 분류 문제로 접근한 방식이다. 이 모델은 Inception V3를 기반으로 하며, 총 52M 파라미터, 5.74B 연산량을 필요로 한다.
연구진은 동일한 데이터에 대해 MobileNet으로 PlaNet을 다시 구현해봤다. 이 모델은 본체 3M, 최종 분류기 10M 파라미터로 구성되어 총 13M 파라미터이며, 연산량은 단 0.58B Mult-Adds에 불과하다.
결과: MobileNet 버전의 성능은 소폭 감소했지만, 여전히 Im2GPS보다 우수한 결과를 보였고, 원래 PlaNet 대비 훨씬 작고 빠른 모델로 구현되었다.
4.5. Face Attributes
MobileNet은 지식 증류(Knowledge Distillation) 방식과 결합해 대규모 얼굴 속성 분류기도 경량화할 수 있다. 원래 사용하던 모델은 75M 파라미터, 1600M 연산량을 가진 매우 큰 구조였다.
지식 증류는 ground truth 레이블 대신, 큰 모델의 출력을 모방하는 방식으로 소형 모델을 훈련시키는 기법이다. 이를 통해, 라벨 없이도 대규모 데이터로 소형 모델을 훈련할 수 있으며, 과적합 방지를 위한 정규화 기법조차 필요하지 않게 된다.
MobileNet 구조를 기반으로 한 증류 모델은 단 1% 연산량으로도 기존 모델과 거의 동일한 평균 정밀도(mean Average Precision)를 달성하였다.
4.6. Object Detection
MobileNet은 객체 탐지에서도 기본(backbone) 네트워크로 사용될 수 있다. 본 논문에서는 COCO 데이터셋을 기준으로 Faster-RCNN과 SSD 두 가지 대표적 프레임워크에서 MobileNet을 테스트했다.
- Faster-RCNN: 300/600 해상도 모두 실험
- SSD: 300 해상도 (SSD300)
MobileNet은 VGG 및 Inception V2를 backbone으로 사용하는 기존 탐지 모델들과 비교했을 때, 유사한 성능을 유지하면서도 계산량과 모델 크기는 훨씬 더 작았다.

4.7. Face Embeddings
FaceNet은 얼굴 인식 분야에서 대표적인 최첨단 모델로, triplet loss 기반으로 얼굴 임베딩을 생성하는 구조를 갖는다. 하지만 FaceNet은 매우 높은 정확도와 함께, 연산량과 모델 크기 또한 크다는 단점이 있다.
이에 연구진은 FaceNet의 출력을 정답으로 삼는 distillation 방식을 사용하여, MobileNet 구조를 기반으로 하는 경량화된 FaceNet 모델을 학습시켰다. 다시 말해, MobileNet은 ground-truth가 아닌 FaceNet이 생성한 임베딩을 모방하도록 학습되었다.
표 14는 다양한 해상도 및 width multiplier를 적용한 MobileNet 버전의 성능과 연산량, 파라미터 수를 비교한 것이다.

5. Conclusion
이 논문에서는 MobileNet이라는 새로운 아키텍처를 제안했다. 핵심은 기존의 연산 집약적인 convolution 연산을 depthwise separable convolution으로 대체함으로써, 효율적인 연산 구조를 갖춘 경량 모델을 만드는 것이다.
또한, MobileNet은 두 가지 하이퍼파라미터width multiplier와 resolution multiplier를 도입하여, 정확도와 연산량 사이의 유연한 조절을 가능하게 했다. 이로 인해 다양한 성능/자원 제약 환경에서도 맞춤형 모델을 만들 수 있게 되었다.
논문에서는 MobileNet을 기존의 대표적인 CNN 모델(VGG, GoogleNet, FaceNet 등)과 비교하여, 더 작고 빠르면서도 높은 정확도를 유지할 수 있음을 증명하였다. 뿐만 아니라, 이미지 분류를 넘어서 객체 탐지, 얼굴 속성 분석, 지리 위치 추정, 세분화된 인식 등 다양한 실제 과제에도 적용 가능하다는 점을 보여주었다.
핵심 정리:
- MobileNet은 연산량과 모델 크기를 획기적으로 줄이면서 정확도를 유지하는 모델
- 하이퍼파라미터 조절을 통해 다양한 환경에 최적화 가능
- 실전 문제 적용에서도 기존 모델과 유사한 성능을 보이며 높은 활용성 입증
- 연구팀은 이후 TensorFlow에서 학습된 MobileNet 모델을 공개할 계획임
References
https://velog.io/@9e0na/%EB%85%BC%EB%AC%B8%EB%A6%AC%EB%B7%B0-CV-MobileNets-2017-Summary
'Paper review > CV' 카테고리의 다른 글
| Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks (0) | 2025.05.02 |
|---|---|
| You Only Look Once: Unified, Real-Time Object Detection (0) | 2025.05.02 |
| ELMo: Deep contextualized word representations (0) | 2025.03.28 |
| SPPNet: Spatial Pyramid Pooling in Deep (0) | 2025.03.28 |
| U-Net: Convolutional Networks for Biomedical Image Segmentation (0) | 2025.03.28 |