/Kickstart

Study route for learners in machine learning / deep learning / computer vision

Learning schedule

This learning schedule is sorted out for reseachers or whoever interested in machine learning / deep learning / computer vision. It's also most welcomed for instructors to refer to this schedule to train beginner students. Each course listed below takes about two weeks to finish if you are fully dedicated to it.

Introduction

The skills you need to develop a machine learning / deep learning / computer vision project include:

  • Coding skills. Coding is not the objective, but the tool. Without the tool, nothing can be built.
  • Mathematics. Math is the foundation of machine learning that you can't evade, among which statistics and probability are the most important.
  • Machine learning algorithms, which is the focus of most research or competitions.
  • Paper reading and writing, which involves English proficiency and professionalisim. You may not necesssarily publish a paper on a journal or a conference. However, to keep up with others' work and report your work, you have to be familiar with how to read and write a paper.

Beginner

These courses are for beginners. It's suggested to follow the order below. Try to finish the coding and mathematics homework in each course. Everyone should have covered the following staffs before your REAL journey to machine learning. It does not mean you have to take the following courses, we recommend you to do so; but if you are not totally fresh, you should know the contents.

Quick intro to machine learning, no math but a very good overview about what ML is and what ML does. We recommend approx. 2 weeks for study. The MATLAB assignments are not longer recommended.

Quick intro to deep learning, with emphasis on computer vision. You could do some interesting staffs after taking this course (and code practice!), e.g., face recognition, pedestrian detection and segmentation, medical image diagnosis, image generation.

After finishing the above courses, it's highly suggested to join some simple competitions before you keep going on Kaggle, a well-known data science competition website. You can refer to others' code for inspiration. Free GPU resources are also available on Kaggle. For beginners, the Getting Started category is the best place to obtain project experience and practice coding skills. The following two competitions are good basic options.

We recommend ML freshman should know the following packages:

  • scipy-family (numpy, scipy, pandas, matplotlib, etc.)
  • scikit-learn (for out-of-box ML tools, models, metrics, etc.)
  • one of deep learning packages: PyTorch or Keras (other DL packages are recommended for beginners!)

Intermediate

Now we need to expand our sight to the current research topics in machine learning / deep learning / computer vision.

By far, you should be familiar with the basic concepts of machine learning / deep learning / computer vision. You might need to participate in a real project in a lab at school (choose a reputed lab carefully) or in a IT company. You may also consider join a more advanced competition on Kaggle.

Here, we provide a PyTorch coding template in python for developing a real project.

Advanced

Don't rush to dig into these advanced courses. These courses are more specific for certain topics. Only after you have several project experiences, can these advanced courses help you build up a systematic sense of these topics.

  • Yida Xu (UTS)'s Probabilities and Machine Learning video link: Youtube Bilibili
  • Hung-yi Lee (NTU)'s GAN 2018 YouTube
  • Hung-yi Lee (NTU)'s Next Step of Machine Learning YouTube
  • CS 294-131: Trustworthy Deep Learning Homepage
  • CMU 10-708 PGM (19) by Eric Xing Homepage
  • Berkely Deep RL Bootcamp Homepage
  • CS294-158 Deep Unsupervised Learning Spring 2019 Homepage
  • Udacity's Cuda (Homepage)
  • Cousera's Programming Language Homepage
  • Udacity's Design of Computer Programs Homepage

At this point, you have mastered the basic skill and knowledge required for machine learning / deep learning / computer vision research. But there are still so much unknown placed waiting for you to explore. What you learn here merely provides you with the way leading to those places. Begin you adventure now! And enjoy the beauty of maching learning! Ads

Tools

TODO

Any advice or comments to improve this learning schedule is most welcomed.

Maintainer

Contributors

  • Jiancheng Yang who provides the primary study route and first start this project.
  • Linguo Li who provides the MNIST reference code and packages list.