Neural Architecture Search is Surprisingly Powerful (Na

Author: Zen and the Art of Computer Programming

1 Introduction

The NAS (Neural Architecture Search) algorithm has received more and more attention in recent years, because it plays an important role in optimizing the model structure, accelerating the training process, and reducing the consumption of computing resources. Its original purpose was to find out the neural network architecture that can achieve better results under given hardware conditions, but in recent years it has been expanded to include autonomous driving systems, handwritten digit recognition and other fields.

This article will discuss the basic concepts of NAS, the algorithm principle and specific operation steps of NAS, implementation cases and future development directions. The content of the article is not difficult to read, and requires readers to have a certain understanding of related concepts.

2. Basic concepts

2.1 NAS algorithm

The NAS (Neural Architecture Search) algorithm is a machine learning method that solves the problem of model optimization by searching for the best neural network structure. Usually, a model is composed of multiple layers, and each layer can be a linear or nonlinear transformation. These layers interact with each other according to a certain connection method to form a complex neural network structure. Therefore, the architecture of the model is composed of different layers that constitute the metaphor of the model.

However, humans often draw on a lot of experience and heuristics when designing a neural network. For example, people often consider whether the model has good expressive ability, that is, whether it can learn sufficiently complex features. At the same time, people will also measure the weight between the various layers according to the size and distribution of the data set. Finally, people also set parameters, such as activation functions, batch normalization methods, regularization terms, etc., so that the model can better fit the data. Based on these experiences and heuristics, the NAS algorithm automatically generates a series of possible model architectures, then tests them, and selects the model that can achieve better performance under given hardware conditions.

NAS algorithms can be divided into two categories: methods based on evolutionary algorithms and methods based on constraint programming. The former searches for models by simulating the evolution process of natural organisms, and the latter searches for models through integer programming or other forms of optimization problems.

Guess you like

Origin blog.csdn.net/universsky2015/article/details/132438433