Search Strategy: Hardware-aware search strategies can be formulated using reinforcement learning (RL), evolutionary algorithms, one-shot differentiable NAS, or Bayesian optimization [1]}. RL techniques, such as NASNet [2]} and MNASNet [3]}, model NAS as a Markov Decision Process on a proxy dataset to reduce search time. RL controllers (e.g., proximal policy optimization, deep deterministic policy gradient, and Q-learning) are used to find the optimal combination of neural network cells from a pre-defined set recursively. The network graph can either consist of a series of repeatable and identical blocks (e.g., convolutional cells) whose structures are found via the controller or represented in a factorized hierarchical fashion via a layer-wise stochastic super-network. Device constraints are included in the reward function to formulate a multi-objective optimization problem. Gradient-driven NAS using continuous gradient descent relaxation can reduce the search and training cost further on the target dataset over RL-based techniques. The goal is to learn the weights and architectural encodings through a nested bi-level optimization problem, with the gradients obtained approximately. The optimization problem can be efficiently handled using path binarization, where the weights and encodings of an over-parametrized network are alternatively frozen during gradient-update using binarized gates. The final sub-network is obtained using path-level pruning. Hardware metrics are converted to a gradient-friendly continuous model before being used in the optimization function. The search space can consist of static blocks of directed acyclic graphs containing network weights, edge operations, activations, and hyperparameters or a factorized hierarchical super-network. Examples of gradient-driven NAS include DARTS [4]}, FBNet [5]}, ProxylessNAS [6]}, and MicroNets [7]}. To eliminate the need for performing NAS for different hardware platforms separately, Han et al. [8]}[9]}[10]} decoupled training from search by training a "once-for-all" super-network consisting of several sub-networks which fits the constraints of eclectic target platforms. Evolutionary search is used during the search phase, where the best performing sub-networks are selected from the super-network, crossed, and mutated to produce the next generation of candidate sub-networks. Progressive shrinking and knowledge distillation ensure all the sub-networks are jointly fine-tuned without interfering with large sub-networks. Evolutionary search can also be applied to RL search spaces [11]} for faster convergence or applied on several candidate architectures not part of a super-network [12]}. When training infrastructure is weak, the search space and hardware metrics are discontinuous, and the training cost per model is high, Bayesian NAS is used as a black-box optimizer. The loss function is modeled as a constrained single-objective or scalarized multi-objective optimization problem. Gaussian process, which allows uncertainty metrics to propagate forward while looking for Pareto-optimal frontier, is used as the surrogate model. The acquisition function decides the next set of parameters from the search space to sample from, balancing exploration and exploitation. Examples include SpArSe [13]}, BayesNAS [14]}, Vizier [15]}, and THIN-Bayes [16]}. Table REF  compares several NAS frameworks developed for microcontrollers.
