Deep Learning
SCHOOL OF ARTIFICIAL INTELLIGENCE
Syllabus
udacity.com
udacity.com
Deep Learning
BEFORE YOU START
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 or launch a brand new career. You will
study cutting-edge topics such as neural networks,
convolutional neural networks, recurrent neural networks,
and generative adversarial networks. Plus, you’ll build
projects in PyTorch. Join the next generation of deep learning
talent that will help define a highly beneficial AI-powered
future for our world.
Learnin O e tives
g bj c Prerequisites
A graduate of this program will e a le to: b b Students should have experience working
with and/or knowledge of the following
Create a simple neural network (NN) using PyTorch to topics:
predict patterns from real data.
Derivatives
Intermediate Python
Build convolutional neural networks (CNNs) to classify
landmark images based on patterns and objects that appear
Linear Algebra
Jupyter notebooks
in them.
Numpy, Pandas
Implement a recurrent neural network (RNN) and its variants
(LSTMs, GRUs) with PyTorch to build a customer service
chatbot.
Length of Program*: Skill level: Required Hardware/Software
4 months at 10hrs/week Intermediate
NLTK, SKLearn, BeautifulSoup, Numpy
*The length of this program is an estimation of total hours the average student may take to complete all required coursework, including
lecture and project time. If you spend about 5-10 hours per week working through the program, you should finish within the time provided.
Actual hours may vary.
udacity.com
Deep Learning
Course #1:
Introduction to Deep Learning
This course covers the fundamental theoretical and practical topics in deep learning.
You’ll begin by learning about how experts think about deep learning, when it is
appropriate to use deep learning, and how to apply the skill. You’ll then learn the
foundational algorithms underpinning modern deep learning: gradient descent and
backpropagation. Once those foundations are established, explore design constructs of
neural networks and the impact of these design decisions. Finally, the course explores
how neural network training can be optimized for accuracy and robustness using training
techniques like early stopping, dropout, regularization, and momentum. Throughout the
course, theory and fundamental implementations are woven together with PyTorch code
to reinforce both the theory and practice of deep learning.
cour s e pro j ect
Developing a Handwritten Digits Classifier with PyTorch
In this project, you will develop a handwritten digit recognition system in PyTorch.
Then, use data preprocessing skills to load data appropriately for use in models.
Develop a neural network using PyTorch and write a training loop that trains the
model with the loaded data. Lastly, apply advanced training techniques to improve
accuracy on the test set
#03 - Introduction to Neural Networks
Lessons Explain essential concepts in neural networks.
Design neural network architectures.
Distinguish between problems based on the objective of
#01 - Deep Learning the model.
Explain the difference between artificial intelligence, Implement appropriate architectures for model objectives.
machine learning, and deep learning.
Recognize the power of deep learning by reviewing popular #04 - Training Neural Networks
examples of deep learning applications.
Define a loss function and optimization method to train a
neural network.
#02 - Minimizing the Error Function with
Gradient Descent Distinguish between overfitting and underfitting, and
identify the causes of each.
Use PyTorch to preprocess data.
Optimize the training process using early stopping,
Use maximum likelihood, cross-entropy, and probability to regularication, dropout, learning rate decay, and
measure model performance.
momentum.
Apply gradient descent to minimize error.
Distinguish between batch and stochastic gradient descent.
Implement backpropagation algorithm.
Build a neural network with PyTorch and run data through it.
Identify key components of perceptrons. Test and validate a trained network to ensure it generalizes.
u dacity.com
Deep Learning
Course #2:
Convolutional Neural Networks
This course introduces convolutional neural networks, the
most widely used type of neural networks specialized in
image processing. You will learn the main characteristics of
CNNs that make them better than standard neural
networks for image processing. Then you’ll examine the
inner workings of CNNs, including how to build CNNs from
scratch to complete image classification tasks. After, you’ll
apply these architectures to custom datasets using transfer
learning and learn to use autoencoders for anomaly
detection as well as image denoising. Finally, you will learn
how to use CNNs for object detection and semantic
segmentation.
course project
Landmark Classification and Tagging for Social Media
Photo sharing and photo storage services like to have location data for each photo that is uploaded. With the location data,
these services can build advanced features, such as automatic suggestion of relevant tags or automatic photo organization,
which help provide a compelling user experience. Although a photo’s location can often be obtained by looking at the
photo’s metadata, many photos uploaded to these services will not have location metadata available. This can happen when,
for example, the camera capturing the picture does not have GPS or if a photo’s metadata is scrubbed due to privacy
concerns.
If no location metadata for an image is available, one way to infer the location is to detect and classify a discernible landmark
in the image. Given the large number of landmarks across the world and the immense volume of images that are uploaded
to photo sharing services, using human judgment to classify these landmarks would not be feasible.
In this project, you will build models to automatically predict the location of the image based on any landmarks depicted in
the image. You will go through the machine learning design process end-to-end: performing data preprocessing, designing
and training CNNs, comparing the accuracy of different CNNs, and deploying an app based on the best CNN you trained.
u dacity.com
Deep Learning
Course #2: Convolutional Neural Networks
Lessons
List main applications of CNNs.
#01 - Introduction to CNNs Understand professional roles involved in the development of a CNN-based application.
Understand the main events in the history of CNNs.
Recap training networks in PyTorch.
Use multi-layer perceptron for image classification.
#02 - CNN Concepts
Understand limitations of MLPs when applied to images.
Learn the basic concepts of CNNs that make them great at tasks involving images.
Learn how to use the basic layers used in CNNs.
Put all layers together to build a CNN from scratch.
#03 - CNNs in Depth Classify images using a CNN built from scratch.
Improve the performances of your CNN.
Export a model for production.
Understand key CNN architectures and their innovations.
#04 - Transfer Learning Apply multiple ways of adapting pre-trained networks using transfer learning.
Fine-tune a pre-trained network on a new dataset
Understand linear and CNN-based autoencoders.
#05 - Autoencoders Design and train a linear autoencoder for anomaly detection.
Design and train a CNN autoencoder for anomaly detection and image denoising.
Understand the architecture of an object detection model.
#06 - Object Detection and
Train and evaluate an object detection model.
Segmentation Understand the architecture of a semantic segmentation model.
Train and evaluate a semantic segmentation model.
u dacity.com
Deep Learning
Course #3: RNNs & Transformers
This course covers multiple RNN architectures and discusses design patterns for those
models. Additionally, you’ll focus on the latest transformer architectures.
course project
Text Translation and Sentiment Analysis using Transformers
In the project, you will use a pre-trained transformer to analyze the sentiment of
movie reviews in three different languages - English, French, and Spanish. You will
first read the movie review data and convert the French and Spanish reviews and
synopses into English, and then analyze the sentiment of each review.
Lessons
Explain how RNNs evolved from feedforward neural networks.
Recognize the benefit of RNNs by reviewing the applications of RNNs in areas
like machine translation.
#01 - Introduction to RNN
Perform backpropagation on an RNN.
Implement simple RNN models using PyTorch.
Apply the GloVe technique to implement word embeddings.
Explain the limitations of simple RNNs and how they can be
overcome by using long short-term memory networks (LSTMs).
Understand the functioning of the LSTM via the four LSTM gates:
#02 - Introduction to LSTM the learning gate, the forget gate, the remember gate, and the use
gate.
Implement LTSM for predicting temperature and sentiment
analysis.
Identify the changes in architecture that occurred during the transition from
recurrent networks to transformer networks.
#03 - Introduction
Understand the encoder-decoder and the self-attention mechanism as part of
to Transformer the transformer architecture.
Understand simple transformer-based models like BERT and GPT3 and their
applications.
Use pre-trained transformer models to perform simple tasks like text generation
and text translation.
u dacity.com
Deep Learning
Course #4:
Building Generative Adversarial Networks
In this course, you’ll become familiar with generative adversarial networks (GANs).
You will learn how to build and train different GANs architectures to generate new
images. Discover, build, and train architectures such as DCGAN, CycleGAN, ProGAN
and StyleGAN on diverse datasets including the MNIST dataset, Summer2Winter
Yosemite dataset, or CelebA dataset.
Course Project
Face Generation
In this project, you will build and train a custom GAN architecture on the CelebA dataset,
leveraging the different skills learned during the course. In particular, you will have to build
a custom GAN architecture, including generator and discriminator. You will also
experiment with the different loss functions discovered during the course, such as the
Binary Cross Entropy loss or the Wasserstein loss. Finally, utilize some of the methods
learned to stabilize training, such as label smoothing
Lessons
#01 - Generative Adversarial Networks #03 - Image to Image Translation
Build generator and discriminator using fully
Implement unpaired data loader.
connected layers.
Build the CycleGAN generator using residual connection
Implement loss functions.
and an encoder-decoder structure.
Train a custom GAN on the MNIST dataset Train a CycleGAN model on the summer2winter Yosemite
dataset.
#02 - Training a Deep Convolutional GANs
Build generator and discriminator using convolutional, batch #04 - Modern GANs
normalization, and fully connected layers.
Implement Wasserstein loss and gradient penalties.
Train a DCGAN model on the CIFAR10 dataset.
Build the ProGAN generator.
Implement evaluation metrics and evaluate generated Implement StyleGAN components (adaptive instance
samples normalization).
u dacity.com
Deep Learning
Meet your instructors
Erick Galinkin
Principal AI Researcher
Erick Galinkin is a hacker and computer scientist, leading research at the intersection of security
and artificial intelligence at Rapid7. He has spoken at numerous industry and academic conferences
on topics ranging from malware development to game theory in security.
Giacomo Vianello
Principal Data Scientist
Giacomo Vianello is an end-to-end data scientist with a passion for state-of-the-art, but practical
technical solutions. An accomplished speaker with more than 20 invited public talks, he works at
Cape Analytics where he brings cutting-edge solutions to the insurance and real estate industries.
Nathan Klarer
Head of ML & COO of Datyra
Nathan is a data scientist and entrepreneur. He currently leads a Datyra, a 50-person AI
consultancy. He was the first AI team member at $CORZ. Prior to that he founded a VC backed data
startup that was acquired. Nathan was named “27 CEO’s Under 27” by Entrepreneur.com and has
been featured in Inc. and Forbes.
Thomas Hossler
Sr Machine Learning Engineer
Thomas is originally a geophysicist but his passion for computer vision led him to become a deep
learning engineer at various startups. By creating online courses, he is hoping to make education
more accessible. When he is not coding, Thomas can be found in the mountains skiing or climbing.
u dacity.com
Learn More at
www.udacity.com
udacity.com