This module introduces the essential concepts of building deep learning models with TensorFlow and Keras. Throughout this module students will gain an intuitive understanding of the architectures and engines that make up deep learning models, apply a variety of deep learning algorithms (i.e. MLPs, CNNs, RNNs, LSTMs, collaborative filtering), understand when and how to tune the various hyperparameters, and be able to interpret model results. Students will have the opportunity to apply practical applications covering a variety of tasks such as computer vision, natural language processing, product recommendation and more. By the end of this module, students should have a firm grasp of deep learning and be able to implement a systematic approach for producing high quality modeling results.
This module will step through the process of building, visualizing, testing, and comparing common deep learning models. The goal is to expose you to building various deep learning models for common problems where deep learning tends to shine. By the end of this module you should:
Have an intuitive understanding of the engines and architectures that drive deep learning.
Be ale to apply a variety of deep learning algorithms.
Established a mental model of deep learning.
This module makes a few assumptions of your established knowledge regarding your programming skills and exposure to basic statistical concepts. Below are my assumptions and the relevant courses that you should have already attended to make sure you are properly prepared.
You should be familiar with the basics of:
Prior to session 1, please run the 001-requirements.Rmd
notebook to ensure you have the necessary packages and data assets used throughout.
This workshop is notebook-focused. Consequently, most of our time will be spent in R notebooks; however, I will also jump to slides to explain certain concepts in further detail. Throughout the notebooks, you will see ℹ️ icons that will hyperlink to relevant slides (or additional resources).
Session | Description | Notebook | Source code | Other |
---|---|---|---|---|
1 | Introduction to deep learning and deep learning ingredients | Notebook | 02-main-ingredients/01-main-ingredients.* |
Slides |
2 | Approaching deep learning model development | Notebook | 03-recipe/01-starter-recipe.* |
|
3 | Portfolio builder: Predicting Ames, IA home sales prices | Notebook | 03-recipe/02-mini-project-ames.* |
|
4 | Introduction to Computer vision and CNNs | Notebook | 04-computer-vision-CNNs/01-mnist-revisited.* |
Slides |
5 | Image generators & augmentation | Notebook | 04-computer-vision-CNNs/02-cats-vs-dogs.* |
Slides |
6 | Transfer learning for CNNs | Notebook | 04-computer-vision-CNNs/03-transfer-learning.* |
Slides |
7 | Portfolio builder: Classifying natural images | Notebook | 05-project/01-Project.* |
|
8 | Introduction to word embeddings | Notebook | 06-word-embeddings/01-word-embeddings.* |
Slides |
9 | Pre-trained word embeddings | Notebook | 06-word-embeddings/02-pretrained-word-embeddings.* |
|
10 | Portfolio builder: Product reviews | Notebook | 06-word-embeddings/03-your-turn-amazon-word-embeddings.* |
|
11 | Collaborative filtering | Notebook | 07-recommender-collaborative-filtering/collaborative-filtering.* |
Excel |
12 | Introduction to RNNs & LSTMs | Notebook | 08-NLP-LSTMs/01-intro-to-lstms.* |
Slides |
13 | Portfolio builder: Sentiment polarity with LSTMs | Notebook | 08-NLP-LSTMs/02-your-turn-lstms.* |
|
14 | Portfolio builder: Detecting duplicate quora questions | Notebook | 09-project/Final-Project.* |
Activity | Notebook | Source Code |
---|---|---|
Improving generalization with k-fold cross validation | Notebook | 99-extras/99x1-validation-procedures.* |
Performing a grid search | Notebook | 99-extras/99x2-imdb-grid-search.* |
Linear regression with stochastic gradient descent | Notebook | 99-extras/99x3-manual-gradient-descent.* |
Diagnosing model performance with learning curves | Notebook | 99-extras/99x4-learning-curve-diagnostics.* |
Save your models for later with serialization | Notebook | 99-extras/99x5-save-your-models-diagnostics.* |
Visualizing what CNNs learn | Notebook | 99-extras/99x6-visualizing-what-cnns-learn.* |