for fitness evaluation in CoDeepNEAT. Modules from species specified in the blueprint are inserted into locations specified in the blueprint, forming a full network. This approach allows evolving repetitive and deep structures seen in many successful DNNs.[]{data-label="fg:assembling"}](figures/codeepneat.pdf){width="\linewidth"}

Architecture and Hyperparameter Search {#sc:nas}
--------------------------------------

As deep learning tasks and benchmarks become increasing complex, finding the right architecture becomes more important. In fact, the performance of many state of the art networks [@he:arxiv16; @szegedy2015going; @ng:arxiv15; @szegedy:cvpr16] depend mostly on novel and interesting architectural innovations. Unfortunately, discovering useful hyperparameters and architectures by hand is tedious and difficult; as a result, much research focuses on developing automated methods for doing it. Some promising methods for hyperparameter search include deep Bayesian optimization [@snoek:arxiv15] and CMA-ES [@loshchilov:arxiv16]. One unique approach uses reinforcement learning to develop an LSTM policy for generating appropriate network topologies and hyperparameters for a given task [@zoph:arxiv16].

One particular promising area of research is the use of evolutionary algorithms (EAs) for performing architecture search. Evolutionary methods are well suited for this kind of problems because they can be readily applied with no gradient information. Some of these approaches use a modified version of NEAT [@miikkulainen2017evolving; @real2017large], an EA for neuron-level neuroevolution [@stanley:ec02], for 