Neural networks have seen renewed interest from data scientists and machine learning researchers for their ability to accurately classify high-dimensional data, including images, sounds and text. In this session we will discuss the fundamental algorithms behind neural networks, such as back-propogation and gradient descent. We will 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 same technique across larger types of images using convolutional neural nets. In the second and final part of this presentation, we will show you how to apply the same algorithms we have implemented using Keras and TensorFlow, a Python library for deep learning on large datasets. Attendees will learn how to implement a simple neural network, monitor its training progress and test for accuracy over time. Prior experience with Python and some basic algebra is a pre-requirement.