Books/ Deep Belief Nets in C++ and CUDA C: Volume II: Autoencoding in the Complex Domain
Deep belief nets are one of the most exciting recent developments in artificial intelligence. The structure of these elegant models is much closer to that of human brains than traditional neural networks; they have a ‘thought process’ that is capable of learning abstract concepts built from simpler primitives. A typical deep belief net can learn to recognize complex patterns by optimizing millions of parameters, yet this model can still be resistant to overfitting. This book presents the essential building blocks of a common and powerful form of deep belief net: the autoencoder. Volume II takes this topic beyond current usage by extending it to the complex domain, which is useful for many signal and image processing applications. Several algorithms for preprocessing time series and image data are also presented. These algorithms focus on the creation of complex-domain predictors that are suitable for input to a complex-domain autoencoder. Finally, this book provides a method for embedding class information in the input layer of a restricted Boltzmann machine. This facilitates generative display of samples from individual classes rather than the entire data distribution. The ability to see the features that the model has learned for each class separately can be invaluable. At each step the text provides intuitive motivation, a summary of the most important equations relevant to the topic, and concludes with highly commented code for threaded computation on modern CPUs as well as massive parallel processing on computers with CUDA-capable video display cards. Source code for all routines presented in the book, and the DEEP program which implements these algorithms, are available for free download from the author’s website.