---
title: "Searching for MobileNetV3"
title_ru: "Поиск MobileNetV3"
authors: [Howard, Sandler, Chen, Wang, Chen, Tan, Chu, Vasudevan, Zhu, Zoph, Adam, Le]
year: 2019
venue: "ICCV"
venue_tier: "A*"
doi: "1905.02244"
tags: [mobile_backbone, nas, cnn, edge, quantization_friendly, depthwise_separable]
relevance_to_smartrep: 4
direction: "🅲"
---

# MobileNetV3: Поиск мобильной архитектуры через NAS

## TL;DR (≤3 предложения)

MobileNetV3 получена через сочетание аппаратно-осведомлённого NAS (MnasNet) и ручных архитектурных улучшений: Squeeze-and-Excitation блоки, hard-swish активация, редизайн "дорогих" слоёв. Выпускается в двух вариантах: Large (для высокой точности) и Small (для крайне ограниченных ресурсов). Остаётся индустриальным стандартом для мобильных backbone'ов благодаря хорошей поддержке в TFLite и ONNX.

## Проблема

MobileNetV2 хорош, но head-слои (последние слои перед classifier) вычислительно избыточны. NAS-методы того времени не учитывали латентность на конкретном железе. Нужна архитектура, оптимизированная под реальную мобильную латентность, а не теоретические FLOP'ы.

## Гипотеза / вклад

- **Hard-swish активация:** $\text{h-swish}(x) = x \cdot \frac{\text{ReLU6}(x+3)}{6}$ — точное приближение swish, вычислимое без exp, быстрее на мобильных.
- **SE-blocks (Squeeze-and-Excitation):** канальный attention, добавленный в bottleneck блоки. Повышает точность при минимальных FLOP'ах.
- **Редизайн head:** замена дорогого 7×7 conv в последних слоях на более эффективную схему с average pooling до FC.
- **NAS-инициализация:** MnasNet как стартовая точка, ручная доводка критичных слоёв.

## Метод

Базовый блок — inverted residual с depthwise separable convolution (как MV2), добавлены SE и h-swish в глубоких слоях:

```
Input → expand (1×1 conv) → depthwise 3×3/5×5 → SE → project (1×1 conv) → output
         [h-swish в глубоких слоях, ReLU6 в ранних]
```

Параметры MobileNetV3-Large: 5.4M, latency ~51ms на Pixel 1 CPU (1 thread).
MobileNetV3-Small: 2.9M, ~15ms.

## Датасеты

| Датасет | Задача | Метрика | MV3-Large | MV2 |
|---|---|---|---|---|
| ImageNet | Classification | Top-1 Acc | 75.2% | 72.0% |
| ImageNet | Classification | Latency (P1 CPU) | 51ms | 75ms |
| COCO | Segmentation | mIOU | 72.6% | 70.2% |

## Сравнение с SOTA

+3.2% точности и -32% латентность vs MobileNetV2. На Pixel CPU превосходит MnasNet при аналогичной латентности.

## Ограничения / слабости

- Оптимизирован под Pixel 1 CPU — на других устройствах (NPU, Apple ANE) порядок может меняться.
- Depthwise conv плохо параллелизуется на GPU: на десктопе хуже ResNet по throughput.
- SE-блоки плохо квантизируются в INT4 — требуют аккуратного QAT.
- Нет нативной поддержки темпоральных последовательностей (только 2D пространство).

## Edge Feasibility для SmartRep

| Параметр | MV3-Large | MV3-Small |
|---|---|---|
| Параметры (M) | 5.4 | 2.9 |
| GFLOPs (224×224) | 0.219 | 0.056 |
| Latency, Pixel 1 CPU | ~51 ms | ~15 ms |
| TFLite поддержка | Отличная | Отличная |
| INT8 PTQ | Работает | Работает |

**Вердикт:** deployment_candidate для pose feature extractor. MV3-Small влезает в бюджет при 224×224.

## Релевантность SmartRep

- **Feature extractor 🅲:** MobileNetV3-Small как backbone для извлечения признаков из видеокадра перед pose estimator — стандартный выбор для TFLite pipeline на Android.
- **BlazePose компонент:** MediaPipe BlazePose использует MobileNetV3-подобный backbone для detector — понимание MV3 обязательно для работы с BlazePose internals.
- **Distillation target:** лёгкий student для дистилляции из тяжёлого ViTPose — MV3 как целевая архитектура.

## Gap для нас

MV3 — 2D backbone без темпоральной обработки. **Ниша SmartRep:** MV3 + temporal head (1D conv / GRU по кадровым признакам) для lightweight video backbone — такой "MV3+T" не стандартизирован для pose-based AQA pipeline.

## Код / данные

- Repo: github.com/tensorflow/models (TFLite version), torchvision
- Pretrained: torchvision, TFLite Hub

## Цитата (BibTeX)

```bibtex
@inproceedings{howard2019searching,
  title={Searching for MobileNetV3},
  author={Howard, Andrew and Sandler, Mark and Chen, Bo and Wang, Weijun and Chen, Liang-Chieh and Tan, Mingxing and Chu, Grace and Vasudevan, Vijay and Zhu, Yukun and Zoph, Barret and Adam, Hartwig and Le, Quoc},
  booktitle={Proceedings of the IEEE/CVF International Conference on Computer Vision},
  year={2019}
}
```
