# Review: NASNet — Neural Architecture Search Network (Image Classification)

## Outperforms or Comparable With Inception-v2, Inception-v3, Xception, ResNet, Inception-ResNet-v2, PolyNet, ResNeXt, Shake-Shake, DenseNet, DPN, SENet, MobileNetV1, ShuffleNet V1

In this story, **NASNet**, by **Google Brain**, is reviewed. Authors propose to ** search for an architectural building block on a small dataset **and then

**. Particularly, they search for the best convolutional layer or cell on CIFAR-10 first, then apply this cell to the ImageNet by stacking together more copies of this cell. A new regularization technique called**

*transfer the block to a larger dataset***is also proposed which significantly improves the generalization in the NASNet models. At last,**

*ScheduledDropPath***NASNet model achieves state-of-the-art results with smaller model size and lower complexity (FLOPs)**. This is a paper in

**2018 CVPR**with more than

**400 citations**. (Sik-Ho Tsang @ Medium)

# Outline

**Neural Architecture Search (NAS) for Cells****Controller Model Architecture****NASNet-A, NASNet-B & NASNet-C****Experimental Results**

**1. Neural Architecture Search (NAS) for Cells**

- In NASNet, though the overall architecture is predefined as shown above, the
**blocks or cells**are not predefined by authors. Instead, they are**searched by reinforcement learning search method**. - i.e.
**the number of motif repetitions**and*N***the number of initial convolutional filters**are as free parameters, and**used for scaling**. - Specifically, these cells are called
**Normal Cell**and**Reduction Cell**. **Normal Cell**: Convolutional cells that return a feature map of the same dimension.**Reduction Cell**: Convolutional cells that return a feature map where the feature map height and width is reduced by a factor of two.**Only the structures of (or within) the Normal and Reduction Cells are searched by the controller RNN**(Recurrent Neural Network).

# 2. **Controller Model Architecture**

- The controller RNN recursively predicts the rest of the structure of the convolutional cell, given these two initial hidden states.
**Step 1**: Select a hidden state from*hi*,*hi*-1 or from the set of hidden states created in previous blocks.**Step 2**: Select a second hidden state from the same options as in Step 1.**Step 3**: Select an operation to apply to the hidden state selected in Step 1.**Step 4**: Select an operation to apply to the hidden state selected in Step 2.**Step 5**: Select a method to combine the outputs of Step 3 and 4 to create a new hidden state.- There is a set of operations to be selected:

- The above is only for ONE block.
- Specifically, the controller RNN is a one-layer LSTM with 100 hidden units at each layer and 2×5
*B*softmax predictions for the two convolutional cells (where*B*is typically 5) associated with each architecture decision. - Each of the 10
*B*predictions of the controller RNN is associated with a probability. The joint probability of a child network is the product of all probabilities at these 10*B*softmaxes. This joint probability is used to compute the gradient for the controller RNN. - The gradient is scaled by the validation accuracy of the child network to update the controller RNN such that the controller assigns low probabilities for bad child networks and high probabilities for good child networks.

- Network motifs are constructed recursively in stages termed blocks.
- Each block consists of the controller selecting a pair of hidden states (dark gray), operations to perform on those hidden states (yellow) and a combination operation (green).
- The resulting hidden state is retained in the set of potential hidden states to be selected on subsequent blocks.
- (In general, NASNet tries to find the best combinations from a set of operations through controller RNN to form a cell with the best performance instead of designing the block using hand-crafted decision.)

# 3. **NASNet-A, NASNet-B & NASNet-C**

- The result of this search process
**over 4 days**yields several candidate convolutional cells, with the use of**500 GPUs**resulting in**2,000 GPU-hours !!!!!** - Finally , NASNet-A, NASNet-B & NASNet-C Normal & Reduction Cells are formed.

# 4. Experimental Results

## 4.1 *ScheduledDropPath*

*ScheduledDropPath*

- During training,
, each path in the cell is dropped out with a probability that is linearly increased over the course of training, which improves the accuracy significantly.*ScheduledDropPath*

## 4.2. CIFAR-10

**NASNet-A (7 @ 2304)**model with**cutout**data augmentation achieves a state-of-the-art error rate of**2.40%**.- 7 means
*N*=7, i.e. number of cells repeated, and 2304 means the number of filters in the penultimate layer of the network. - And it outperforms state-of-the-art approaches such as DenseNet and Shake-Shake.

## 4.3. ImageNet

- The architectures from CIFAR-10 are transferred to ImageNet, but all ImageNet models weights are trained from scratch.

- NASNets achieve state-of-the-art performances with fewer floating point operations and parameters than comparable architectures.
- The convolutional cells discovered with CIFAR-10 generalize well to ImageNet problems.

- Importantly, the largest model achieves a new state-of-the-art performance for ImageNet (82.7%) based on single, non-ensembled predictions, surpassing previous best published result (DPN) by 1.2%. Among the unpublished works (SENet), NASNet is on par with the best reported result of 82.7% .

- Again, NASNets outperform Inception-v1, MobileNetV1 and ShuffleNet V1 with higher accuracy but with similar or smaller models.

## 4.4. MS COCO Object Detection

- Using Faster R-CNN, NASNet-A outperforms MobileNetV1, ShuffleNet V1, ResNet, and Inception-ResNet-v2.

## Reference

[2018 CVPR] [NASNet]

Learning Transferable Architectures for Scalable Image Recognition

## My Previous Reviews

**Image Classification **[LeNet] [AlexNet] [Maxout] [NIN] [ZFNet] [VGGNet] [Highway] [SPPNet] [PReLU-Net] [STN] [DeepImage] [SqueezeNet] [GoogLeNet / Inception-v1] [BN-Inception / Inception-v2] [Inception-v3] [Inception-v4] [Xception] [MobileNetV1] [ResNet] [Pre-Activation ResNet] [RiR] [RoR] [Stochastic Depth] [WRN] [Shake-Shake] [FractalNet] [Trimps-Soushen] [PolyNet] [ResNeXt] [DenseNet] [PyramidNet] [DRN] [DPN] [Residual Attention Network] [DMRNet / DFN-MR] [IGCNet / IGCV1] [MSDNet] [ShuffleNet V1] [SENet] [NASNet]

**Object Detection **[OverFeat] [R-CNN] [Fast R-CNN] [Faster R-CNN] [MR-CNN & S-CNN] [DeepID-Net] [CRAFT] [R-FCN] [ION] [MultiPathNet] [NoC] [Hikvision] [GBD-Net / GBD-v1 & GBD-v2] [G-RMI] [TDM] [SSD] [DSSD] [YOLOv1] [YOLOv2 / YOLO9000] [YOLOv3] [FPN] [RetinaNet] [DCN]

**Semantic Segmentation **[FCN] [DeconvNet] [DeepLabv1 & DeepLabv2] [CRF-RNN] [SegNet] [ParseNet] [DilatedNet] [DRN] [RefineNet] [GCN] [PSPNet] [DeepLabv3]

**Biomedical Image Segmentation **[CUMedVision1] [CUMedVision2 / DCAN] [U-Net] [CFS-FCN] [U-Net+ResNet] [MultiChannel] [V-Net] [3D U-Net] [M²FCN] [SA] [QSA+QNT] [3D U-Net+ResNet]

**Instance Segmentation **[SDS] [Hypercolumn] [DeepMask] [SharpMask] [MultiPathNet] [MNC] [InstanceFCN] [FCIS]

**Super Resolution **[SRCNN] [FSRCNN] [VDSR] [ESPCN] [RED-Net] [DRCN] [DRRN] [LapSRN & MS-LapSRN] [SRDenseNet]

**Human Pose Estimation **[DeepPose] [Tompson NIPS’14] [Tompson CVPR’15] [CPM]