  Over the past half-decade, many methods have been considered for neural
architecture search (NAS). Bayesian optimization (BO), which has long had
success in hyperparameter optimization, has recently emerged as a very
promising strategy for NAS when it is coupled with a neural predictor. Recent
work has proposed different instantiations of this framework, for example,
using Bayesian neural networks or graph convolutional networks as the
predictive model within BO. However, the analyses in these papers often focus
on the full-fledged NAS algorithm, so it is difficult to tell which individual
components of the framework lead to the best performance.
  In this work, we give a thorough analysis of the "BO + neural predictor"
framework by identifying five main components: the architecture encoding,
neural predictor, uncertainty calibration method, acquisition function, and
acquisition optimization strategy. We test several different methods for each
component and also develop a novel path-based encoding scheme for neural
architectures, which we show theoretically and empirically scales better than
other encodings. Using all of our analyses, we develop a final algorithm called
BANANAS, which achieves state-of-the-art performance on NAS search spaces. We
adhere to the NAS research checklist (Lindauer and Hutter 2019) to facilitate
best practices, and our code is available at
https://github.com/naszilla/naszilla.
