Neural networks have seen renewed interest from data scientists and machine learning experts for their ability to accurately classify high-dimensional data. In this session we will discuss the fundamental algorithms behind neural networks, and develop an intuition for how to train a deep neural network using large data sets. We will then use the algorithms we have developed to train a simple handwritten digit recognizer, and illustrate how to generalize this technique to different images. In the second and final part, we will show you how to apply the same algorithms using DL4J, a Spark-based Java library for deep learning. You will learn how to implement a neural network, monitor it's training progress and test its accuracy over time. Prior experience with Java and some basic algebra is a pre-requirement.