EIEIOTECHNOVATION
← Training programmes

EIEIO / ARTIFICIAL INTELLIGENCE

Deep Learning Nanodegree Program

Course outline

Duration to discuss

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.