Learn about neural networks and how to implement them with the deep learning framework PyTorch. Construct convolutional networks for image recognition, recurrent networks for sequence generation, and generative adversarial networks for image generation, as well as learn how to deploy models that can be accessed via a website.
Course 1: Neural Networks
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.
- 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
Project: Predicting Bike-Sharing Patterns
Learn the fundamentals of neural networks and create your first network with Python and NumPy. You will define and train a multi-layer neural network, which you will then use to analyze real-world data. You will build and train neural networks from scratch to predict the number of bike-share users on a given day in this project.
Course 2: Convolutional Neural Networks
- 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.
CNN's 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.
- 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 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.
Project: Landmark Classification & Tagging for Social Media
In this project, you will build a landmark classifier using the skills you learned in the course. Landmark classification may be used by photo-sharing or photo-storage services to automatically tag photos with relevant hashtags or location markers. This type of functionality may be especially useful when photo location metadata is unavailable, which may occur when a photo is taken without metadata (e.g., phone was in aeroplane mode, camera was old and without GPS) or when a photo's metadata has been scrubbed. You will go through the entire machine learning design process in the project, including data preprocessing and augmentation, designing your own CNN from scratch, and training and saving your best CNN model. You will also use transfer learning and compare your transfer-learned model to your CNN created from scratch.
Course 3: Recurrent Neural Networks
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.
- 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.
Project: Generate TV Scripts
In this project, you will use PyTorch to create your own Recurrent Networks and Long Short-Term Memory Networks. You will perform sentiment analysis and generate new text, as well as use recurrent networks to generate new text that is similar to a training set of TV scripts.
Course 4: Generative Adversarial Networks
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.
Project: Generate Faces
Learn about Generative Adversarial Networks from the model's creator, Ian Goodfellow. Then, using what you've learned in this project, build a Deep Convolutional GAN. This DCGAN is composed of two multi-layer neural networks that compete with one another until one learns to generate realistic images of faces.
Course 5: Updating a Model
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.
- 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.
Project: Deploying a Sentiment Analysis Model
In this project, you will use Amazon SageMaker on AWS to train and deploy your own PyTorch sentiment analysis model. This model will be trained to analyse sentiment in movie reviews (positive or negative reviews). You will create the model, deploy it, and create a gateway to access it from a website.