Deep learning approaches have shown impressive performance across a wide range of domains, including computer vision, audio processing, natural language processing, and others. These algorithms are based on neural networks, highly-parameterized models which use multiple layers of representation to transform data into a task-specific representation. By using unsupervised feature learning algorithms, deep learning approaches are able to pre-initialize these networks with useful features, avoiding the over-fitting problems commonly seen when neural networks are trained without this initialization. This and several other useful properties, described in this book, make deep networks an excellent choice for robotic applications.