A couple of days ago I mentioned that on Wednesday, January 18th at 10AM EST I am launching a Kickstarter to fund my new book — Deep Learning for Computer Vision with Python.
As you’ll see later in this post, there is a huge amount of content I’ll be covering, so I’ve decided to break the book down into three volumes called “bundles”.
A bundle includes the eBook, video tutorials, and source code for a given volume.
Each bundle builds on top of the others and includes all content from lower bundles. You should choose a bundle based on how in-depth you want to study deep learning and computer vision:
- Starter Bundle: A great fit for those taking their first steps toward deep learning for image classification mastery.
- Practitioner Bundle: Perfect for readers who are ready to study deep learning in-depth, understand advanced techniques, and discover common best practices and rules of thumb.
- ImageNet Bundle: The complete deep learning for computer vision experience. In this bundle, I demonstrate how to train large-scale neural networks from scratch on the massive ImageNet dataset. You can’t beat this bundle.
The complete Table of Contents for each bundle is listed in the next section.
The Starter Bundle includes the following topics:
Machine Learning Basics
Take the first step:
- Learn how to set up and configure your development environment to study deep learning.
- Understand image basics, including coordinate systems; width, height, depth; and aspect ratios.
- Review popular image datasets used to benchmark machine learning, deep learning, and Convolutional Neural Network algorithms.
Form a solid understanding of machine learning basics, including:
- The simple k-NN classifier.
- Parameterized learning (i.e., “learning from data”)
- Data and feature vectors.
- Understanding scoring functions.
- How loss functions work.
- Defining weight matrices and bias vectors (and how they facilitate learning).
Study basic optimization methods (i.e., how “learning” is actually done) via:
- Gradient Descent
- Stochastic Gradient Descent
- Batched Stochastic Gradient Descent
Fundamentals of Neural Networks
Discover feedforward network architectures:
- Implement the classic Perceptron algorithm by hand.
- Use the Perceptron algorithm to learn actual functions (and understand the limitations of the Perceptron algorithm).
- Take an in-depth dive into the Backpropagation algorithm.
- Implement Backpropagation by hand using Python + NumPy.
- Utilize a worksheet to help you practice the Backpropagation algorithm.
- Grasp multi-layer networks (and train them from scratch).
- Implement neural networks both by hand and with the Keras library.
Introduction to Convolutional Neural Networks
Start with the basics of convolutions:
- Understand convolutions (and why they are so much easier to grasp than they seem).
- Study Convolutional Neural Networks (what they are used for, why they work so well for image classification, etc.).
- Train your first Convolutional Neural Network from scratch.
Review the building blocks of Convolutional Neural Networks, including:
- Convolutional layers
- Activation layers
- Pooling layers
- Batch Normalization
Uncover common architectures and training patterns:
- Discover common network architecture patterns you can use to design architectures of your own with minimal frustration and headaches.
- Utilize out-of-the-box CNNs for classification that are pre-trained and ready to be applied to your own images/image datasets (VGG16, VGG19, ResNet50, etc.)
- Save and load your own network models from disk.
- Checkpoint your models to spot high performing epochs and restart training.
- Learn how to spot underfitting and overfitting, allowing you to correct for them and improve your classification accuracy.
- Utilize decay and learning rate schedulers.
- Train the classic LeNet architecture from scratch to recognize handwritten digits.
Work With Your Own Custom Datasets
Working with your custom datasets + deep learning is easy:
- Learn how to gather your own training images.
- Discover how to annotate and label your dataset.
- Train a Convolutional Neural Network from scratch on top of your dataset.
- Evaluate the accuracy of your model.
- …all of this explained by demonstrating how to gather, annotate, and train a CNN to break image captchas.
The Practitioner Bundle includes everything in the Starter Bundle. It also includes the following topics.
Advanced Convolutional Neural Networks
Discover how to use transfer learning to:
- Treat pre-trained networks as feature extractors to obtain high classification accuracy with little effort.
- Utilize fine-tuning to boost the accuracy of pre-trained networks.
- Apply data augmentation to increase network classification accuracy without gathering more training data.
Work with deeper network architectures:
- Code the seminal AlexNet architecture.
- Implement the VGGNet architecture (and variants of).
Explore more advanced optimization algorithms, including:
- …and best practices to fine-tune SGD parameters.
Best Practices to Boost Network Performance
Uncover common techniques & best practices to improve classification accuracy:
- Understand rank-1 and rank-5 accuracy (and how we use them to measure the classification power of a given network).
- Utilize image cropping for an easy way to boost accuracy on your test set.
- Explore how network ensembles can be used to increase classification accuracy simply by training multiple networks.
- Discover my optimal pathway for applying deep learning techniques to maximize classification accuracy (and which order to apply these techniques in to achieve greatest effectiveness).
Scaling to Large Image Datasets
Work with datasets too large to fit into memory:
- Learn how to convert an image dataset from raw images on disk to HDF5 format, making networks easier (and faster) to train.
- Compress large image datasets into efficiently packed record files.
Compete in deep learning challenges and competitions:
- Compete in Stanford’s cs231n Tiny ImageNet classification challenge…and take home the #1 position.
- Train a network on the Kaggle Dogs vs. Cats challenge and claim a position in the top-25 leaderboard with minimal effort.
Object Detection and Localization
Detect objects in images using deep learning by:
- Utilizing naive image pyramids and sliding windows for object detection.
The ImageNet Bundle includes everything in the Starter Bundle and Practitioner Bundle. It also includes the following additional topics:
ImageNet: Large Scale Visual Recognition Challenge
Train state-of-the-art networks on the ImageNet dataset:
- Discover what the massive ImageNet (1,000 category) dataset is and why it’s considered the de-facto challenge to benchmark image classification algorithms.
- Obtain the ImageNet dataset.
- Convert ImageNet into a format suitable for training.
- Learn how to utilize multiple GPUs to train your network in parallel, greatly reducing training time.
- Train AlexNet on ImageNet from scratch.
- Train VGGNet from the ground-up on ImageNet.
- Apply the SqueezeNet architecture to ImageNet to obtain a (high accuracy) model, fully deployable to smaller devices, such as the Raspberry Pi.
ImageNet: Tips, Tricks, and Rules of Thumb
Unlock the same techniques deep learning pros use on ImageNet:
- Save weeks (and even months) of training time by discovering learning rate schedules that actually work.
- Spot overfitting on ImageNet and catch it before you waste hours (or days) watching your validation accuracy stall.
- Learn how to restart training from saved epochs, lower learning rates, and boost accuracy.
- Uncover methods to quickly tune hyperparameters to massive networks.
Discover how to solve real-world deep learning problems, including:
- Train a network to predict the gender and age of people in images using deep learning techniques.
- Automatically classify car types using Convolutional Neural Networks.
- Determine (and correct) image orientation using CNNs.
So there you have it — the complete Table of Contents for Deep Learning for Computer Vision with Python. I hope after looking over this list you’re as excited as I am!
I also have some secret bonus chapters that I’m keeping under wraps until the Kickstarter officially launches — stay tuned for more details.
To be notified when more Kickstarter announcements go live (including ones I won’t be publishing on this blog), be sure to signup for the Kickstarter notification list!