lukas / ml-class

Machine learning lessons and teaching projects designed for engineers
https://www.youtube.com/channel/UCBp3w4DCEC64FZr4k9ROxig
GNU General Public License v2.0
2.37k stars 1.17k forks source link
deep-learning-tutorials machine-learning-tutorials

Projects

Binder

These are specific bite-sized projects to learn an aspect of deep learning, starting from scratch. There is an associated video around 10 minutes long. I assume no background in ML but some proficiency in python. The projects are in order from beginner to more advanced, but feel free to skip around.

Project Starter Code Video
Build a simple image classifier for apparel projects/1-fashion-mnist Build your first machine learning model
Improve your image classifier projects/2-fashion-mnist-mlp Multi-Layer Perceptrons
Build a convolutional image classifier projects/3-fashion-mnist-cnn Convolutional Neural Networks
Build a denoising autoencoder projects/4-fashion-autoencoder Autoencoders
Build a text classifier with Scikit-Learn projects/5-sentiment-analysis Sentiment Analysis
Predict the weather with an RNN projects/6-rnn-timeseries Recurrent Neural Networks
Build a text generator projects/7-text-generation Text Generation using LSTMs and GRUs
Build a sentiment classifier on Amazon reviews. projects/8-text-classification Text Classification using CNNs
Hybrid LSTM/CNNs
Seq2seq Models
Transfer Learning
One Shot Learning
Speech Recognition
Data Augmentation
Batch Size and Learning Rate

More Projects: Benchmarks

If you have done all of the tutorial projects, we have a few more that don't have associated lessons yet! You can learn by contributing to one of our collaborative Benchmarks.

Project Link
Japanese handwriting recognition https://app.wandb.ai/wandb/kmnist/benchmark
Video prediction with cat GIFs https://app.wandb.ai/wandb/catz/benchmark
Drought detection from satellite https://app.wandb.ai/wandb/droughtwatch/benchmark
Visual game playing https://app.wandb.ai/wandb/witness/benchmark
Image resolution enhancement https://app.wandb.ai/wandb/superres/benchmark
Photo colorization https://app.wandb.ai/wandb/colorizer-applied-dl/benchmark

Getting Started

  1. Clone this repository
  2. Get the python libraries (run 'pip install -r requirements.txt')

You don't need a fancy computer to run most of the examples, but especially to do the later projects you may want to invest in a GPU.

Slides

O'Reilly 9.10.2019 - Using Keras to classify text using LSTMs

Videos

Introduction to Machine Learning

Examples

In my in-person classes, I typically use a lot of the examples in the directory examples. This code is liable to change as I update things.

Reusing the materials

Please feel free to use these materials for your own classes/projects etc. If you do that, I would love it if you sent me a message and let me know what you're up to.

Windows

Git

Install git if you don't have it: https://git-scm.com/download/win

Anaconda

Install anaconda

Try running the following from the command prompt:

python --version

You should see something like

Python 3.6.1 :: Anaconda 4.4.0 (64-bit)

If don't see "Anaconda" in the output, search for "anaconda prompt" from the start menu and enter your command prompt this way. It's also best to use a virtual environment to keep your packages silo'ed. Do so with:

conda create -n ml-class python=3.6
activate ml-class

Whenever you start a new terminal, you will need to call activate ml-class.

Clone this github repository

git clone https://github.com/lukas/ml-class.git
cd ml-class

libraries

pip install wandb
conda install -c conda-forge scikit-learn
conda install -c conda-forge tensorflow
conda install -c conda-forge keras

Linux and Mac OS X

Install python

You can download python from https://www.python.org/downloads/. There are more detailed instructions for windows installation at https://www.howtogeek.com/197947/how-to-install-python-on-windows/.

The material should work with python 2 or 3. On Windows, you need to install the 64 bit version of python 3.5 or 3.6 in order to install tensorflow.

Clone this github repository

git clone https://github.com/lukas/ml-class.git
cd ml-class

If you get an error message here, most likely you don't have git installed. Go to https://www.atlassian.com/git/tutorials/install-git for instructions on installing git.

Install necessary pip libraries

pip install -r requirements.txt

Reading material for people who haven't done a lot of programming

If you are uncomfortable opening up a terminal, I strongly recommend doing a quick tutorial before you take this class. Setting up your machine can be painful but once you're setup you can get a ton out of the class. I recommend getting started ahead of time.

If you're on Windows I recommend checking out http://thepythonguru.com/.

If you're on a Mac check out http://www.macworld.co.uk/how-to/mac/coding-with-python-on-mac-3635912/

If you're on linux, you're probably already reasonably well setup :).

If you run into trouble, the book Learn Python the Hard Way has installation steps in great detail: https://learnpythonthehardway.org/book/ex0.html. It also has a refresher on using a terminal in the appendix.

Reading material for people who are comfortable with programming, but haven't done a lot of python

If you are comfortable opening up a terminal but want a python intro/refresher check out https://www.learnpython.org/ for a really nice introduction to Python.

Suggestions for people who have done a lot of programming in python

A lot of people like to follow along with ipython or jupyter notebooks and I think that's great! It makes data exploration easier. I also really appreciate pull requests to make the code clearer.

If you've never used pandas or numpy - they are great tools and I use them heavily in my work and for this class. I assume no knlowedge of pandas and numpy but you may want to do some learning on your own. You can get a quick overview of pandas at http://pandas.pydata.org/pandas-docs/stable/10min.html. There is a great overview of numpy at https://docs.scipy.org/doc/numpy/user/quickstart.html.