Training

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.

c-ndfm-vyaaevat

Overview

Week 0: (Optional) Introduction to Python
Topics

  1. Python for programmers who haven’t used python
  2. Pyenv, virtualenv, setting up a python environment
  3. Preview of basic scientific computing tools: numpy, pandas, scikit and jupyter notebooks

Week 1:Introduction to Machine Learning

Topics

  1. High level introduction to machine learning
  2. Training data, feature selection algorithm choice
  3. 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

  1. How and why to use custom features
  2. Basic terminology of NLP: word segmentation, n-grams, etc.
  3. 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

  1. How decision trees and boosting works
  2. 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

  1. How multi-layer perceptrons work
  2. Back-propogation and gradient descent
  3. 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

  1. Introduction to convolutional neural networks
  2. Introduction to Keras
  3. 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

  1. Intuition behind popular networks: VGG, Resnet, Inception
  2. How to use Resnet and Inception for other applications
  3. 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

  1. Introduction to TensorFlow
  2. How to do object detection with frcnn
  3. 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

  1. How to use GPUs with Tensorflow to speed up learning
  2. How to apply resnet to style transfer and image completion
  3. 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

  1. Working with audio data
  2. 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

  1. Introduction to RNNs
  2. Working with time series data
  3. 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

  1. Introduction to LSTMs
  2. Overview of word2vec
  3. Build and train an LSTM in Keras
  4. 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

  1. Quick overview of working with audio data
  2. Training LSTMs on audio data
  3. 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

  1. Running deep learning at scale
  2. Running deep learning on multiple gpus/cpus
  3. 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

  1. Review everyone’s final project
  2. How to parse a machine learning research paper
  3. Resources to continue learning machine learning in different fields
  4. New applications of machine learning: robotics, healthcare