[논문 정보]
MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
Andrew G. Howard et al. | arXiv:1704.04861 | 2017년 4월
Google Inc.
1. 서론
MobileNetV1은 모바일 및 임베디드 비전 애플리케이션을 위한 경량 CNN 구조를 제안한 논문입니다. AlexNet 이후 CNN은 ImageNet과 같은 대규모 이미지 인식 문제에서 큰 성공을 거두었고, 이후 VGG, GoogLeNet, ResNet, Inception 계열처럼 더 깊고 복잡한 네트워크가 주류가 되었습니다. 그러나 이런 모델들은 정확도를 높이는 데 집중했기 때문에, 실제 모바일 기기나 로봇, 자율주행, AR 같은 제한된 연산 환경에서 그대로 사용하기에는 부담이 컸습니다. 논문은 이러한 문제의식에서 출발합니다.
기존 CNN 발전 방향은 주로 "더 깊게, 더 넓게, 더 복잡하게"였습니다. VGG는 단순한 3×3 convolution을 깊게 쌓아 높은 성능을 얻었고, GoogLeNet/Inception은 여러 크기의 필터와 병렬 구조를 통해 연산 효율을 개선했습니다. ResNet은 residual connection을 통해 매우 깊은 네트워크 학습을 가능하게 했습니다. 하지만 이런 모델들은 여전히 많은 연산량과 메모리를 요구합니다. 특히 모바일 기기에서는 배터리, 발열, latency, 메모리, 모델 저장 공간이 모두 제한되기 때문에 서버급 CNN을 그대로 배포하기 어렵습니다.
MobileNetV1의 핵심 문제의식은 단순합니다. 정확도가 조금 낮아지더라도, 훨씬 적은 연산량과 파라미터로 실용적인 비전 모델을 만들 수 있는가? 논문은 이에 대한 답으로 depthwise separable convolution을 사용합니다. 이는 표준 convolution이 한 번에 수행하던 "공간적 필터링"과 "채널 결합"을 두 단계로 분리합니다. 먼저 각 입력 채널마다 독립적으로 3×3 depthwise convolution을 적용하고, 이후 1×1 pointwise convolution으로 채널 간 정보를 결합합니다. 이 단순한 분해만으로도 연산량과 파라미터 수를 크게 줄일 수 있습니다.
논문에서 중요한 점은 MobileNet이 단순히 "작은 모델 하나"를 제안한 것이 아니라는 점입니다. 저자들은 모바일 환경의 다양한 제약에 맞게 모델 크기와 연산량을 조절할 수 있도록 두 가지 전역 하이퍼파라미터를 도입합니다. 첫 번째는 width multiplier α로, 네트워크의 채널 수를 전체적으로 줄입니다. 두 번째는 resolution multiplier ρ로, 입력 이미지와 내부 feature map 해상도를 줄여 연산량을 낮춥니다. 이를 통해 개발자는 정확도, latency, 모델 크기 사이에서 원하는 지점을 선택할 수 있습니다.
이 논문의 기여는 크게 세 가지로 정리할 수 있습니다. 첫째, depthwise separable convolution을 중심으로 한 간결하고 효율적인 CNN 아키텍처를 제안했습니다. 둘째, width multiplier와 resolution multiplier라는 간단한 조절 장치를 통해 여러 리소스 제약에 맞는 모델 family를 만들 수 있게 했습니다. 셋째, ImageNet 분류뿐 아니라 object detection, fine-grained classification, face attribute classification, face embedding, geolocalization 등 다양한 태스크에서 MobileNet이 실용적으로 동작함을 보였습니다.
MobileNetV1은 이후 MobileNetV2, V3, EfficientNet, ShuffleNet, MnasNet, EdgeTPU 계열 모델 등 경량 CNN 연구의 중요한 출발점이 되었습니다. 특히 "모바일에서 쓸 수 있는 CNN"이라는 목표를 명확히 하고, 구조 설계 자체를 latency와 연산 효율 중심으로 바라봤다는 점에서 의미가 큽니다.
2. 문제 정의
논문이 다루는 문제는 제한된 연산 자원을 가진 환경에서 충분히 높은 정확도를 내는 CNN을 어떻게 설계할 것인가입니다. 일반적인 CNN은 convolution layer에서 많은 연산을 사용합니다. 표준 convolution은 입력 feature map의 공간 위치마다 모든 입력 채널과 모든 출력 채널을 연결합니다. 이 구조는 표현력은 강하지만, 입력 채널 수 M, 출력 채널 수 N, 커널 크기 DK, feature map 크기 DF가 모두 곱해져 연산량이 커집니다. 논문은 표준 convolution의 연산량을 다음과 같이 정리합니다.
\[ D_K*D_K*M*N*D_F*D_F\]
여기서 D_K는 convolution kernel의 공간 크기, M은 입력 채널 수, N은 출력 채널 수, D_F는 feature map의 공간 크기입니다. 이 식에서 알 수 있듯이 연산량은 입력 채널, 출력 채널, 커널 크기, feature map 크기에 모두 비례합니다. 특히 깊은 CNN에서는 1×1 또는 3×3 convolution이 반복적으로 사용되기 때문에 전체 연산량이 매우 커집니다.
기존의 경량화 접근법에는 여러 방향이 있었습니다. 하나는 이미 학습된 큰 모델을 압축하는 방식입니다. pruning, quantization, hashing, low-rank factorization, Huffman coding 등이 여기에 해당합니다. 또 다른 방향은 knowledge distillation처럼 큰 모델의 지식을 작은 모델로 전달하는 방식입니다. 그러나 이러한 접근은 대개 이미 학습된 큰 모델을 전제로 하거나, 압축 과정이 별도로 필요합니다. MobileNet은 이와 달리 처음부터 작은 모델을 직접 설계하는 접근을 취합니다.
문제의 핵심은 단순히 파라미터 수를 줄이는 것이 아닙니다. 모바일 환경에서는 모델 크기도 중요하지만, 실제 추론 속도와 latency가 더 중요할 수 있습니다. 논문은 많은 작은 모델 연구가 모델 크기에만 집중하고 속도를 충분히 고려하지 않는다고 지적합니다. MobileNet은 특히 latency 최적화에 초점을 두면서도 작은 모델 크기를 함께 달성하려고 합니다.
MobileNetV1논문 저자들이 말하는 문제 정의는 정확도만 최대화하는 것이 아니라, 연산량, 파라미터 수, 메모리 사용량, 모바일 추론 가능성을 함께 고려하는 다목적 최적화 문제입니다. 논문의 설계는 이 문제를 매우 실용적인 방식으로 해결합니다. 복잡한 자동 탐색이나 후처리 압축 대신, convolution 연산 자체를 효율적으로 분해하고, 두 개의 간단한 multiplier로 모델 크기를 조절합니다.
3. 제안 방법론
3.1 핵심 아이디어
MobileNetV1의 핵심 아이디어는 다음 한 문장으로 요약할 수 있습니다.
표준 convolution을 depthwise convolution과 pointwise convolution으로 분해하여, 공간 필터링과 채널 결합을 분리하고 연산량을 크게 줄인다.
표준 convolution은 입력 feature map에 대해 공간적 패턴을 찾는 동시에, 여러 입력 채널을 섞어 새로운 출력 채널을 만듭니다. 즉, "filtering"과 "combination"을 한 번에 수행합니다. MobileNet은 이 두 과정을 분리합니다. 먼저 depthwise convolution은 각 입력 채널마다 별도의 필터를 적용하여 공간적 패턴을 추출합니다. 이후 pointwise convolution은 1×1 convolution을 사용해 채널 간 정보를 결합합니다. 이 구조가 depthwise separable convolution입니다.
3.2 표준 Convolution의 비용
표준 convolution은 입력 feature map F에서 출력 feature map G를 만듭니다. 논문에서는 표준 convolution을 다음과 같이 표현합니다.
\[G_{k,l,n}=\sum_{i,j,m}K_{i,j,m,n}\cdot F_{k+i-1,l+j-1,m}\]
이 연산은 모든 출력 채널 n에 대해 모든 입력 채널 m과 커널 위치 i,j를 곱하고 더합니다. 따라서 연산량은 다음과 같습니다.
\[D_K \cdot D_K \cdot M \cdot N \cdot D_F \cdot D_F\]
예를 들어 3×3 convolution에서 입력 채널과 출력 채널이 모두 512이고 feature map이 14×14라면, 하나의 layer에서도 매우 큰 연산량이 발생합니다. 논문 Table 3에서는 이런 내부 layer 예시에서 표준 convolution이 462 million Mult-Adds와 2.36 million parameters를 요구한다고 보여줍니다.
3.3 Depthwise Convolution
Depthwise convolution은 입력 채널마다 하나의 독립적인 convolution filter를 적용합니다. 즉, 입력 채널이 M개라면 depthwise filter도 M개입니다. 각 filter는 해당 채널에만 적용되고, 채널 간 mixing은 하지 않습니다. 논문은 depthwise convolution을 다음과 같이 정의합니다.
\[\hat{G}_{k,l,m}=\sum_{i,j}\hat{K}_{i,j,m}\cdot F_{k+i-1,l+j-1,m}\]
이때 연산량은 다음과 같습니다.
\[D_K \cdot D_K \cdot M \cdot D_F \cdot D_F\]
표준 convolution과 비교하면 출력 채널 수 N에 대한 곱이 사라집니다. 따라서 연산량이 크게 줄어듭니다. 하지만 depthwise convolution만으로는 각 채널을 독립적으로 필터링할 뿐, 서로 다른 채널 정보를 결합하지 못합니다. CNN에서 중요한 표현은 여러 채널 정보를 조합해 만들어지기 때문에, depthwise convolution만 사용하면 표현력이 부족합니다.
3.4 Pointwise Convolution
Pointwise convolution은 1×1 convolution입니다. 공간적으로는 한 픽셀 위치만 보지만, 채널 방향으로는 모든 입력 채널을 결합합니다. MobileNet에서는 depthwise convolution이 각 채널에서 공간적 특징을 추출한 뒤, pointwise convolution이 이 결과들을 조합하여 새로운 출력 채널을 만듭니다.
Depthwise separable convolution의 전체 연산량은 다음과 같습니다.
\[D_K \cdot D_K \cdot M \cdot D_F \cdot D_F+M \cdot N \cdot D_F \cdot D_F\]
첫 번째 항은 depthwise convolution의 비용이고, 두 번째 항은 1×1 pointwise convolution의 비용입니다. 표준 convolution과 비교하면 연산량 감소 비율은 다음과 같이 표현됩니다.
\[\frac{D_K \cdot D_K \cdot M \cdot D_F \cdot D_F+M \cdot N \cdot D_F \cdot D_F}{D_K \cdot D_K \cdot M \cdot N \cdot D_F \cdot D_F}=\frac{1}{N}+\frac{1}{D_K^2}\]
MobileNet은 주로 3×3 depthwise separable convolution을 사용합니다. 이 경우 이론적으로 표준 3×3 convolution 대비 약 8~9배 적은 연산량을 사용하면서 정확도 하락은 비교적 작습니다.
3.5 그림으로 보는 구조
논문 Figure 2는 표준 convolution filter가 depthwise convolution과 pointwise convolution으로 어떻게 분해되는지 보여줍니다.

Figure 3은 일반 convolution layer와 MobileNet의 factorized layer를 비교합니다. 일반 layer는 3×3 convolution 뒤에 BatchNorm과 ReLU가 붙습니다. MobileNet layer는 3×3 depthwise convolution, BatchNorm, ReLU, 1×1 pointwise convolution, BatchNorm, ReLU 순서로 구성됩니다. 즉, 하나의 표준 convolution block을 두 개의 가벼운 convolution block으로 나눈 구조입니다.

3.6 MobileNet 전체 구조
MobileNet의 전체 구조는 첫 번째 layer를 제외하면 대부분 depthwise separable convolution으로 구성됩니다. 첫 번째 layer는 일반 3×3 convolution을 사용하고, 이후 depthwise convolution과 1×1 pointwise convolution을 반복합니다. 마지막에는 average pooling을 통해 공간 해상도를 1×1로 줄이고, fully connected layer와 softmax를 통해 분류를 수행합니다. 논문은 depthwise와 pointwise convolution을 별도 layer로 세면 MobileNet이 총 28개 layer를 가진다고 설명합니다.
MobileNet body architecture는 224×224×3 입력을 기준으로 시작합니다. 첫 번째 3×3 convolution은 stride 2로 입력을 112×112×32로 줄입니다. 이후 depthwise convolution과 1×1 convolution이 반복되며 채널 수는 64, 128, 256, 512, 1024로 증가합니다. 중간에는 stride 2를 사용하여 feature map 해상도를 112, 56, 28, 14, 7로 점진적으로 줄입니다. 마지막에는 7×7 average pooling과 1024×1000 fully connected layer를 거쳐 ImageNet 1000 class softmax를 수행합니다.
3.7 왜 1x1 Convolution이 중요한가?
MobileNet의 중요한 설계 포인트는 단순히 연산량을 줄이는 것이 아니라, 실제 하드웨어에서 빠르게 실행될 수 있는 연산으로 구성했다는 점입니다. 논문은 MobileNet의 대부분 연산이 dense 1×1 convolution에 집중되어 있다고 설명합니다. 1×1 convolution은 일반적으로 GEMM, 즉 matrix multiplication으로 효율적으로 구현할 수 있습니다. 반면 unstructured sparse operation은 이론적으로 연산량이 작아도 실제 하드웨어에서 반드시 빠르지 않을 수 있습니다.
논문 Table 2에 따르면 MobileNet의 연산량 중 94.86%가 1×1 convolution에서 발생합니다. 파라미터 기준으로도 74.59%가 1×1 convolution에 있습니다. 3×3 depthwise convolution은 전체 연산량의 3.06%, 파라미터의 1.06%에 불과합니다. 이는 MobileNet이 depthwise convolution을 통해 3×3 공간 필터링 비용을 거의 제거하고, 대부분의 표현 학습을 효율적인 1×1 convolution에 맡기는 구조임을 보여줍니다.
3.8 학습 설정
MobileNet은 TensorFlow에서 학습되었고, RMSprop과 asynchronous gradient descent를 사용했습니다. 논문은 Inception V3와 유사한 학습 방식을 사용했지만, 작은 모델은 큰 모델보다 overfitting 문제가 덜하기 때문에 regularization과 data augmentation을 줄였다고 설명합니다. 예를 들어 side head나 label smoothing을 사용하지 않았고, 작은 crop의 사용도 제한했습니다. 또한 depthwise filter는 파라미터 수가 매우 적기 때문에 weight decay를 거의 사용하지 않는 것이 중요했다고 언급합니다.
이 부분은 실무적으로도 중요합니다. 작은 모델을 학습할 때 큰 모델과 동일한 정규화 전략을 그대로 쓰면 오히려 성능이 낮아질 수 있습니다. MobileNet은 이미 모델 용량이 작기 때문에, 과도한 regularization이 underfitting을 유발할 수 있습니다. 특히 depthwise convolution은 채널당 하나의 작은 필터만 갖기 때문에 여기에 강한 weight decay를 적용하면 표현력이 지나치게 제한될 수 있습니다.
4. 핵심 통찰 및 의의
MobileNetV1의 가장 중요한 통찰은 CNN의 비용 대부분이 표준 convolution에서 채널 결합과 공간 필터링을 동시에 수행하는 데서 발생한다는 점입니다. 이를 분리하면 연산량을 극적으로 줄일 수 있습니다. depthwise convolution은 각 채널에서 공간적 패턴만 추출하고, pointwise convolution은 채널 조합만 담당합니다. 이 분해는 매우 단순하지만 효과적입니다.
두 번째 통찰은 모델 경량화에서 파라미터 수보다 실제 연산 구조가 중요하다는 점입니다. SqueezeNet은 파라미터 수를 매우 줄였지만, 논문 비교에서 작은 MobileNet은 SqueezeNet과 비슷한 모델 크기를 가지면서도 연산량은 훨씬 적고 정확도는 더 높습니다. 이는 모바일 환경에서는 "몇 MB인가"뿐 아니라 "몇 번의 곱셈-덧셈이 필요한가","하드웨어에서 빠르게 실행 가능한 연산인가"가 중요하다는 것을 보여줍니다.
세 번째 통찰은 깊이를 유지하면서 width를 줄이는 것이, layer를 제거하는 것보다 낫다는 점입니다. Table 5에서 비슷한 연산량 조건에서도 shallow MobileNet보다 0.75 MobileNet이 더 높은 성능을 보였습니다. 이는 CNN의 계층적 표현 구조가 중요하며, 단순히 layer를 줄이는 방식은 feature abstraction 과정을 손상시킬 수 있음을 시사합니다.
네 번째 통찰은 하나의 고정 모델이 아니라, 모델 family를 제공하는 것이 실용적이라는 점입니다. MobileNet은 α와 ρ를 통해 여러 크기의 모델을 만들 수 있습니다. 예를 들어 정확도가 중요한 환경에서는 MobileNet-224 α=1.0을 사용할 수 있고, 매우 제한된 환경에서는 α=0.5 또는 해상도 160, 128 모델을 사용할 수 있습니다. 이는 실제 제품 배포에서 매우 중요합니다.
다섯 번째 통찰은 MobileNet은 classification 전용 모델이 아니라 범용 경량 backbone이라는 점입니다. 논문은 ImageNet 외에도 detection, face attribute, face embedding, geolocalization, fine-grained classification에 적용해 범용성을 보였습니다. 이후 MobileNet이 TensorFlow Lite, Android/iOS 온디바이스 비전, edge AI 모델의 대표 backbone으로 자리 잡은 이유도 이 범용성에 있습니다.
5. 한계점 및 향후 연구
MobileNetV1의 첫 번째 한계는 depthwise separable convolution이 표준 convolution보다 표현력이 낮을 수 있다는 점입니다. 공간 필터링과 채널 결합을 분리하면 연산량은 줄어들지만, 두 과정을 동시에 수행하는 표준 convolution의 풍부한 표현력은 일부 손실될 수 있습니다. 실제로 ImageNet에서 full convolution MobileNet은 71.7%, MobileNet은 70.6%로 약간의 정확도 하락이 있습니다.
두 번째 한계는 매우 작은 모델에서 정확도 하락이 급격해진다는 점입니다. α=0.25 MobileNet-224는 accuracy가 50.6%까지 떨어집니다. 이는 경량화에도 한계가 있으며, 일정 수준 이하로 channel capacity를 줄이면 모델이 충분한 표현을 학습하지 못한다는 것을 보여줍니다.
세 번째 한계는 MobileNetV1이 하드웨어 친화성을 고려했지만, 이후 관점에서 보면 activation memory, memory access cost, operator fusion 등 더 세밀한 배포 최적화까지 완전히 다루지는 않았다는 점입니다. 논문은 1×1 convolution이 GEMM으로 효율적으로 구현 가능하다는 점을 강조하지만, 실제 모바일 기기에서는 연산량뿐 아니라 메모리 이동, Cache 효율, framework runtime 최적화도 큰 영향을 줍니다.
네 번째 한계는 architecture search나 task-specific 최적화를 사용하지 않았다는 점입니다. MobileNetV1은 사람이 설계한 단순한 구조입니다. 이후 MnasNet, EfficientNet, MobileNetV3 등은 neural architecture search, compound scaling, squeeze-and-excitation, hard-swish activation 등을 활용해 더 나은 효율-정확도 trade-off를 달성했습니다. 따라서 MobileNetV1은 이후 연구의 출발점으로는 매우 중요하지만, 최신 경량 모델과 비교하면 구조적으로 단순합니다.
6. 결론
MobileNetV1은 모바일 및 임베디드 비전 환경을 위한 효율적인 CNN 구조를 제안한 중요한 논문입니다. 핵심은 표준 convolution을 depthwise convolution과 pointwise convolution으로 분해하여 연산량과 파라미터 수를 크게 줄이는 것입니다. 이 단순한 구조적 변화만으로도 ImageNet에서 VGG16과 유사한 정확도를 훨씬 적은 연산량과 모델 크기로 달성했습니다.
또한 논문은 width multiplier와 resolution multiplier를 통해 하나의 모델이 아니라 다양한 리소스 제약에 대응 가능한 MobileNet family를 제안했습니다. 이는 실제 제품 배포 관점에서 매우 실용적인 접근입니다. 개발자는 정확도, latency, 모델 크기 사이에서 애플리케이션에 맞는 모델을 선택할 수 있습니다.
MobileNetV1의 의의는 단지 "작은 CNN"을 만든 데 있지 않습니다. 이 논문은 CNN 설계의 목표를 서버 환경의 최고 정확도에서 모바일 환경의 실용적 효율성으로 전환시킨 대표적인 연구입니다. 이후 온디바이스 AI, 모바일 객체 탐지, 경량 backbone, TensorFlow Lite 생태계에 큰 영향을 준 기반 논문으로 볼 수 있습니다.
References
논문 원문: MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
https://arxiv.org/abs/1704.04861
'CV(Computer Vision)' 카테고리의 다른 글
| ShuffleNet V1 (0) | 2026.06.08 |
|---|---|
| MobileNetV2 (0) | 2026.06.08 |
| SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5MB model size (0) | 2026.05.28 |
| DenseNet (Densely Connected Convolutional Networks) (0) | 2026.05.25 |
| ResNet (Deep Residual Learning for Image Recognition) (0) | 2026.05.24 |