Deep Belief Nets in C++ and CUDA C: Volume III: Convolutional Nets (Volume 3)
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: convolutional nets. These models are especially useful for image processing applications. 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 executable CONVNET program which implements these algorithms, are available for free download from the author’s website. Source code for the complete CONVNET program is not available, as much of it is highly specialized Windows interface code. Readers are responsible for writing their own main program, with all interface routines. You may freely use all of the core convolutional net routines in this book, as long as you remember that it is experimental code that comes with absolutely no guaranty of correct operation.