Which algorithms have been proposed to learn the architecture of a deep neural network? Yoshua Benhgio's Learning Deep Architectures for AI book mentions that 


  we should [...] strive to develop learning algorithms that use the data to determine the depth of the ﬁnal architecture.


Would anyone know of any algorithms proposed thus far to achieve this?



So far I have come across:

The tiling algorithm for building a feed-forward network to learn a Boolean function. It adds layers as well as units, but Boolean functions aren't too relevant for applied problems.
This predates the start of the "deep learning craze" in the mid-2000s, but for me the cascade correlation algorithm (Fahlman &amp; Lebiere, 1989; pdf) is the build-your-own-topology NN algorithm. I am not sure how popular the algorithm is in ML now-a-days, but it is still popular in cognitive science despite it's unrealistic grounding in biology. If you want intersections with genetic algorithms (like the one @vzn points out with more recent examples) then that has been done with CC as well (Potter, 1992; pdf).

You might also find the following questions on other SEs to be of interest:


Why do neural networks seem to perform better with restrictions placed on their topology?
Dynamically adjusting NN architecture: inventing the unnecessary? (also on MetaOptimize)