Duration
4 months (at 12hrs/week)
Program Overview
The Deep Learning Nanodegree program offers you a solid introduction to the world of artificial intelligence. In this program, you’ll master fundamentals that will enable you to go further in the field, launch or advance a career, and join the next generation of deep learning talent that will help define a beneficial, new, AI-powered future for our world. You will study cutting-edge topics such as Neural Networks, Convolutional Neural Networks, Recurrent Neural Networks, Generative Adversarial Networks, and Network Deployment, and build projects in PyTorch and NumPy. You’ll learn from authorities such Ian Goodfellow and Jun-Yan Zhu, inventors of types of generative adversarial networks, as well as AI experts, Sebastian Thrun and Andrew Trask. For anyone interested in this transformational technology, this program is an ideal point-of-entry.
The program is comprised of 5 courses and 5 projects. Each project you build will be an opportunity to prove your
skills and demonstrate what you’ve learned in your lessons.
Prerequisite Knowledge
This program has been created specifically for students who are interested in machine learning, AI, and/or deep learning, and who have a working knowledge of Python programming, including NumPy and pandas. Outside of that Python expectation and some familiarity with calculus and linear algebra, it's a beginner-friendly program.
Course 1: Neural Networks
Course Project Predicting Bike-Sharing Patterns
Learn neural networks basics, and build your first network with Python and NumPy. You’ll define and train a multi- layer neural network, and use it to analyze real data. In this project, you will build and train neural networks from scratch to predict the number of bike-share users on a given day
Lesson Titles
Learning Outcomes
Introduction to Neural Networks
- In this lesson, you will learn solid foundations on deep learning and
neural networks. You’ll also implement gradient descent and
backpropagation in Python.
Implementing Gradient Descent
- Mat and Luis will introduce you to a different error function and guide
you through implementing gradient descent using NumPy matrix multiplication
Training Neural Networks
- Now that you know what neural networks are, in this lesson, you will learn several techniques to improve their training. Learn how to prevent overfitting of training data and best practices for minimizing
the error of a network.
Sentiment Analysis
- In this lesson, Andrew Trask, the author of Grokking Deep Learning,
will show you how to define and train a neural networks for sentiment analysis (identifying and categorizing opinions expressed in text).
Deep Learning WIth Pytorch
- Learn how to use PyTorch for building and testing deep learning
models
Course 2: Convolutional Neural Networks Course Project Dog Breed Classifier
In this project, you will define a Convolutional Neural Network that performs better than the average human when given the task: identifying dog breeds. Given an image of a dog, your algorithm will produce an estimate of the dog’s breed. If supplied an image of a human, the code will *also* produce an estimate of the closestresembling dog breed. Along with exploring state-of-the-art CNN models for classification, you will make important design decisions about the user experience for your app.
Lesson Titles
Learning Outcomes
Cloud Computing
- Take advantage of Amazon’s GPUs to train your neural network faster. In this lesson, you’ll setup an instance on AWS and train a neural
network on a GPU.
Convolutional Neural Network
- Alexis and Cezanne explain how Convolutional Neural Networks can be used to identify patterns in images and how they help us dramatically
improve performance in image classification tasks.
CNNs In PyTorch
- In this lesson, you’ll walk through an example Convolutional Neural
Network (CNN) in PyTorch. You’ll study the line-by- line breakdown of the code and can download the code and run it yourself.
Weight Initialization
- In this lesson, you’ll learn how to find good initial weights for a neural
network. Having good initial weights often allows a neural network to arrive at an optimal solution, faster than without initialization.
Autoencoders
- Autoencoders are neural networks used for data compression, image
denoising, and dimensionality reduction. Here, you’ll build
autoencoders using PyTorch.
Transfer Learning in PyTorch
- Most people don’t train their own networks on massive datasets. In
this lesson, you’ll learn how to finetune and use a pretrained network and apply it to a new task using transfer learning.
Deep Learning for Cancer
Detection
- In this lesson, Sebastian Thrun teaches us about his groundbreaking
work detecting skin cancer with Convolutional Neural Networks.
Course 3: Recurrent Neural Networks Course Project Generate TV Scripts
In this project, you will build your own Recurrent Networks and Long Short-Term Memory Networks with PyTorch. You’ll perform sentiment analysis and generate new text, and use recurrent networks to generate new text that resembles a training set of TV scripts.
Lesson Titles
Learning Outcomes
Recurrent Neural Networks
- Ortal will introduce Recurrent Neural Networks (RNNs), which are
machine learning models that are able to recognize and act on sequences of inputs.
Long Short-Term Memory Network
- Luis explains Long Short-Term Memory Networks (LSTM), and similar
architectures that form a memory about a sequence of inputs, over time.
Implementation of RNN & LSTM
- Train recurrent neural networks to generate new characters,words,
and bodies of text.
Hyperparameters
- In this lesson, we’ll look at a number of different hyperparameters that
are important for our deep learning work, such as learning rates. We’ll
discuss starting values and intuitions for tuning each hyperparameter.
Embeddings & Word2vec
- In this lesson, you’ll learn about embeddings in neural networks by
implementing a word2vec model that converts words into a representative vector of numerical values.
Sentiment Prediction RNN
- In this lesson, you’ll learn to implement a recurrent neural network for
predicting sentiment. This is intended to give you more experience building RNNs.
Course 4: Generative Adversarial Networks Course Project Generate Faces
Learn to understand Generative Adversarial Networks with the model’s inventor, Ian Goodfellow. Then, apply what you’ve learned in this project and implement a Deep Convolutional GAN. This DCGAN is made of a pair of multi-layer neural networks that compete against each other until one learns to generate realistic images of faces.
Lesson Titles
Learning Outcomes
Generative Adversarial Network
- Ian Goodfellow, the inventor of GANs, introduces you to these exciting
models. You’ll also implement your own GAN on a simple dataset.
Deep Convolutional GANs
- Implement a Deep Convolutional GAN to generate complex, color
images of house numbers.
PIX2PIX & Cyclegan
- Jun-Yan Zhu and Cezanne lead you through a CycleGAN formulation
that can learn from unlabeled sets of images.
Course 5: Updating a Model
Course Project Deploying a Sentiment Analysis Model
Lesson Titles
Learning Outcomes
Introduction to Deployment
- Learn where cloud deployment is used in industry and about various methods for deployment (websites, apps, etc.). Become familiar with
cloud deployment terminology
Deploy a Model
- Deploy a model using Amazon SageMaker and learn to apply built-in
algorithms, like XGBoost, to a variety of tasks.
Custom Models & Web Hosting
- In this lesson, you’ll train and deploy your own PyTorch model. Then,
see how to define a gateway using SageMaker to allow for outside- access to your model. See how your model responds to user input.
Model Monitoring
- In this lesson, learn how to interpret log messages and monitor the
behavior of your model over time. See how to implement an A/B test, in SageMaker, to evaluate the performance of two different models.
Updating a Model
- Developing a machine learning model is an iterative process. Learn how to look at indicators like data distribution to see if you should
update a model.
Programme scope, delivery arrangements and suitability are confirmed during enquiry.