# MobileNet

MobileNet is a family of convolutional neural network (CNN) architectures designed for image classification, object detection, and other computer vision tasks. They are designed for small size, low latency, and low power consumption, making them suitable for on-device inference and edge computing on resource-constrained devices like mobile phones and embedded systems. They were originally designed to be run efficiently on mobile devices with TensorFlow Lite.
The need for efficient deep learning models on mobile devices led researchers at Google to develop MobileNet. As of October 2024, the family has four versions, each improving upon the previous one in terms of performance and efficiency.

## Features
### V1

MobileNetV1 was published in April 2017. Its main architectural innovation was incorporation of depthwise separable convolutions. It was first developed by Laurent Sifre during an internship at Google Brain in 2013 as an architectural variation on AlexNet to improve convergence speed and model size.
The depthwise separable convolution decomposes a single standard convolution into two convolutions: a depthwise convolution that filters each input channel independently and a pointwise convolution ($1\times 1$ convolution) that combines the outputs of the depthwise convolution. This factorization significantly reduces computational cost.
The MobileNetV1 has two hyperparameters: a width multiplier $\alpha$ that controls the number of channels in each layer. Smaller values of $\alpha$ lead to smaller and faster models, but at the cost of reduced accuracy, and a resolution multiplier $\rho$, which controls the input resolution of the images. Lower resolutions result in faster processing but potentially lower accuracy.

### V2

MobileNetV2 was published in March 2019. It uses inverted residual layers and linear bottlenecks.
Inverted residuals modify the traditional residual block structure. Instead of compressing the input channels before the depthwise convolution, they expand them. This expansion is followed by a $1\times 1$ depthwise convolution and then a $1\times 1$ projection layer that reduces the number of channels back down. This inverted structure helps to maintain representational capacity by allowing the depthwise convolution to operate on a higher-dimensional feature space, thus preserving more information flow during the convolutional process.
Linear bottlenecks removes the typical ReLU activation function in the projection layers. This was rationalized by arguing that that nonlinear activation loses information in lower-dimensional spaces, which is problematic when the number of channels is already small.

### V3

MobileNetV3 was published in 2019. The publication included MobileNetV3-Small, MobileNetV3-Large, and MobileNetEdgeTPU (optimized for Pixel 4). They were found by a form of neural architecture search (NAS) that takes mobile latency into account, to achieve good trade-off between accuracy and latency. It used piecewise-linear approximations of swish and sigmoid activation functions (which they called "h-swish" and "h-sigmoid"), squeeze-and-excitation modules, and the inverted bottlenecks of MobileNetV2.

### V4

MobileNetV4 was published in September 2024. The publication included a large number of architectures found by NAS. Compared to the architectural modules used in V3, the V4 series included the "universal inverted bottleneck", which includes both inverted residual and inverted bottleneck as special cases, and attention modules with multi-query attention.