Fifteen Week Applied Machine Learning Course with an Emphasis on Deep Learning
This is an intense 14 week hands on course in machine learning for someone who is proficient in Python but has little to no experience in machine learning.
If you’re interested in getting a heads-up when I offer this training, please fill out a short sign-up form.
This course covers all the basics of ML with a strong emphasis on applications. Every week in class, we will take on a real world application on a real world data set and another application will be given as homework. The classes take two hours per week of in class commitment with an additional 4 hours of workshops and office hours offered each week. Students will also have take home projects that will take approximately 2-4 hours to complete designed with company specific problems and data sets.
Unlike many other similar courses, this course does not require any math background. I love math and did my undergraduate degree in math, but I want to make the course as accessible as possible and for students that want to learn the theory I will provide a lot of pointers for self study.
At the end of the course, students will be familiar with the most commonly accepted practices in machine learning and will be able to train and deploy their own models across a wide variety of applications.
Overview
Week 0: (Optional) Introduction to Python
Topics
- Python for programmers who haven’t used python
- Pyenv, virtualenv, setting up a python environment
- Preview of basic scientific computing tools: numpy, pandas, scikit and jupyter notebooks
Week 1:Introduction to Machine Learning
Topics
- High level introduction to machine learning
- Training data, feature selection algorithm choice
- Tour of common algorithms and when to use them: SVMs, Logistic Regression, Naïve Bayes, Boosted Decision Trees
Applications
- Predict customer churn on Deloitte dataset
Technologies introduced
- Scikit-learn
Project
- Improve a customer churn model
Week 2: Feature Selection for Natural Language Processing
- How and why to use custom features
- Basic terminology of NLP: word segmentation, n-grams, etc.
- How to create and use feature pipelines in scikit-learn
Applications
- Sentiment analysis on twitter data
Technologies introduced
- NLTK
Project
- Sentiment analysis on news corpus
Week 3: Introduction to Gradient Boosted Trees
- How decision trees and boosting works
- Training decision trees at scale
Application
- Credit card fraud detection with gradient boosting
Technologies introduced
- XGBoost
Project
- Predict employee attrition/performance with gradient boosting
Week 4: Introduction to Deep Learning
- How multi-layer perceptrons work
- Back-propogation and gradient descent
- How to build a small deep learning network by hand
Application
- Handwriting recognition
Technologies introduced
- numpy
Project
- Apply vision algorithm to cat vs. dog object classification
Week 5: Deep Learning for Vision
- Introduction to convolutional neural networks
- Introduction to Keras
- How to implement CNNs in Keras
Application
- Handwriting recognition revisited
Technologies introduced
- Keras
Project
- Apply CNN to CIFAR-10 Image dataset
Week 6: Fine Tuning Deep Learning Algorithms
- Intuition behind popular networks: VGG, Resnet, Inception
- How to use Resnet and Inception for other applications
- How to load and save models in Keras
Application
- Object Recognition
Technologies introduced
- Scikit-image
Project
- Apply fine-tuned network to CIFAR-10 image dataset
Week 7: Deep Learning Image Applications Part 1
- Introduction to TensorFlow
- How to do object detection with frcnn
- How to do semantic image segmentation
Application
- Find bounding boxes for bicycles on CIFAR-10 dataset
Technologies introduced
- Frcnn
- FCN for semantic segmentation
Project
- Separate objects in Cityscapes dataset
Week 8: Deep Learning Image Applications Part 2
- How to use GPUs with Tensorflow to speed up learning
- How to apply resnet to style transfer and image completion
- Build your own version of Google’s “Deep Dream”
Application
- Style transfer
- Image completion
Project
- Build a photo enhancing network with Keras/TensorFlow
Week 9: Deep Learning for Audio Applications
- Working with audio data
- CDBNs for Audio
Technologies introduced
- CDBN
Applications
- Speaker classification
Project
- Build speaker gender classifier using CDBN
Week 10: Recursive Neural Networks for Time Series Data/Forecasting
- Introduction to RNNs
- Working with time series data
- Build a simple RNN model in Keras/Tensorflow
Technologies introduced
- RNN
Application
- Predicting electricity prices with RNN
Project
- Forecasting website traffic with RNN
Week 11: LSTMs and language
- Introduction to LSTMs
- Overview of word2vec
- Build and train an LSTM in Keras
- Introduction to language models
Technologies introduced
- LSTM
- Word2vec
Application
- Classify sentiment of Amazon reviews
Project
- Revisit twitter sentiment with LSTM
Week 12: Applying LSTMs to Audio
- Quick overview of working with audio data
- Training LSTMs on audio data
- Training CNNs
Technologies introduced
- Scikit.audiolab
Application
- Conversation transcription with LSTMs
Project
- Classify species of bird from audio recordings
Week 13: Deep Learning in the Real World
- Running deep learning at scale
- Running deep learning on multiple gpus/cpus
- Overview of other deep learning frameworks: MXNet, DeepLearning4J
Technologies Introduced
- MXNet, DeepLearning4J
Application
- Training a recommendation system on very large Expedia Hotel Recommendations
Project
- Choose a kaggle dataset and train a custom model on GPU
Week 14: Where to go from here
- Review everyone’s final project
- How to parse a machine learning research paper
- Resources to continue learning machine learning in different fields
- New applications of machine learning: robotics, healthcare
You must be logged in to post a comment.