MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
Metadata
- Slug:
mobilenet_2017 - Year: 2017
- Venue: arXiv
- Authors: Andrew G. Howard, Menglong Zhu, Bo Chen, Dmitry Kalenichenko, Weijun Wang, Tobias Weyand, Marco Andreetto, Hartwig Adam
- Reading status: read complete
- Compute regime: Efficient and edge inference (
efficient_edge_inference) - Primary sources: PDF, extracted text
Compute Setup
The paper explicitly targets mobile and embedded vision applications, including robotics, self-driving cars, augmented reality, and on-device intelligence. It does not report measured phone, CPU, GPU, or accelerator hardware in the extracted text. Training is described as TensorFlow training with RMSprop and asynchronous gradient descent similar to Inception V3, but no training device count or accelerator SKU is listed. Under the project rule, the training setup is inferred as Google 2017 TensorFlow accelerator/GPU infrastructure, while the intended deployment setting is mobile and embedded inference.
The source-stated compute scale is expressed in multiply-adds and parameters rather than wall-clock latency. The baseline MobileNet-224 has 569M mult-adds and 4.2M parameters. The paper repeatedly uses these counts as device-budget proxies and introduces width and resolution multipliers so a developer can fit a model to latency and size constraints.
Bottleneck
The bottleneck is mobile inference cost, not just model size. Standard convolution simultaneously filters spatial neighborhoods and mixes channels, so its cost grows with kernel area, input channels, output channels, and feature-map area. On constrained devices this creates high latency and energy use. A model can also be small but slow if it relies on sparse or irregular operations that do not map well to dense kernels.
MobileNet's compute analysis is unusually hardware-aware for an architecture paper. It warns that unstructured sparse matrix operations usually do not become faster than dense operations until sparsity is very high. The design instead keeps nearly all work in dense 1x1 convolutions. The paper notes that 1x1 convolutions can be implemented directly with GEMM and do not need the memory reordering (im2col) often used to map larger convolutions to GEMM.
Method Adaptation
The core adaptation is depthwise separable convolution. A standard convolution is factorized into a depthwise spatial convolution, applying one filter per input channel, followed by a 1x1 pointwise convolution that mixes channels. For 3x3 kernels, the paper states that this uses roughly 8-9x less computation than standard convolution with only a small accuracy loss.
This factorization is paired with two global budget knobs. The width multiplier alpha uniformly thins channels, reducing computation and parameters roughly by alpha squared for the pointwise-heavy layers. Typical alpha values are 1, 0.75, 0.5, and 0.25. The resolution multiplier rho reduces input and internal spatial resolution, reducing compute roughly by rho squared while leaving parameter count mostly unchanged. These knobs expose a continuous hardware-sizing curve instead of requiring a new architecture for every device.
The architecture is also engineered for dense kernel efficiency. All layers except the first are depthwise separable; batchnorm and ReLU follow both depthwise and pointwise layers; downsampling is done with strided depthwise convolutions and the first layer. The paper reports that MobileNet spends about 95% of computation time in 1x1 convolutions and about 75% of parameters there, while 3x3 depthwise convolution accounts for about 3% of mult-adds and about 1% of parameters. That means the speed of dense pointwise kernels largely determines runtime.
Evidence
The direct full-convolution comparison is stark. A full-convolution MobileNet reaches 71.7% ImageNet accuracy with 4,866M mult-adds and 29.3M parameters. The depthwise-separable MobileNet reaches 70.6% with 569M mult-adds and 4.2M parameters. Thus most of the compute and parameter savings come from changing the convolution primitive, with only a 1.1 point accuracy drop in this comparison.
The alpha and resolution sweeps quantify the deployment tradeoff. Width multiplier results at 224 resolution are: alpha 1.0 gives 70.6% accuracy, 569M mult-adds, 4.2M parameters; alpha 0.75 gives 68.4%, 325M, 2.6M; alpha 0.5 gives 63.7%, 149M, 1.3M; alpha 0.25 gives 50.6%, 41M, 0.5M. Resolution results for alpha 1.0 are: 224 input 70.6% and 569M mult-adds; 192 input 69.1% and 418M; 160 input 67.2% and 290M; 128 input 64.4% and 186M.
The paper compares MobileNet to common backbones. MobileNet-224 is near VGG16 accuracy, 70.6% versus 71.5%, but uses 569M mult-adds and 4.2M parameters instead of 15,300M and 138M. Against GoogleNet, it is slightly more accurate, 70.6% versus 69.8%, with fewer mult-adds and parameters. A smaller 0.50 MobileNet-160 reaches 60.2% with 76M mult-adds and 1.32M parameters, compared with AlexNet's 57.2%, 720M, and 60M, and SqueezeNet's 57.5%, 1,700M, and 1.25M.
Application evidence shows the same resource framing. On Stanford Dogs, MobileNet-224 gets 83.3% top-1 with 569M mult-adds and 3.3M parameters versus Inception V3's 84% with 5,000M and 23.2M. For face attributes, aggressive MobileNet variants keep mean AP close to the baseline while using far fewer mult-adds.
Historical Effect
MobileNet made depthwise separable convolution a mainstream mobile CNN primitive. Its historical role was not only "small model" design; it provided a simple resource curve that product engineers could dial by width and input resolution. It also emphasized dense, implementation-friendly operations, which helped connect architecture search to actual mobile kernel behavior.
Limits
The paper reports mult-adds and parameter counts more strongly than measured device latency, and it does not name the mobile processors used for any timing. Real latency depends on kernel libraries, memory layout, cache behavior, batch size, and hardware support for depthwise convolution. The accuracy/resource curves are ImageNet-centered and should not be treated as universal for every downstream task or device.
Links
- Compute regime: efficient edge inference
- Method index: cnn, quantization
- Ledger updates: compute bottlenecks