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.
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.
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.
Digit Recognizer
A classification task based on hand-written digit images. A convolutional neural network might be involved. For this competition, we provide somereference code
with different mahcine learning computing package.Titanic: Machine Learning from Disaster
A classification task based on structured data.
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!)
Now we need to expand our sight to the current research topics in machine learning / deep learning / computer vision.
-
Hsuan-Tien Lin (NTU)'s Machine Learning Foundations
Homepage
video link:Youtube
Bilibili
-
Hsuan-Tien Lin (NTU)'s Machine Learning Techniques
Homepage
video link:Youtube
Bilibili
-
Hung-yi Lee (NTU)'s Deep Learning
Homepage
video link:Youtube
Bilibili
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.
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
- git (best tutorial I've read in Chinese, haven't found a counterpart in English)
- How to use remote server
- How to set up a brand new machine, from installing Linux to installing Pytorch (
Here is a rough instruction in Chinese
) (Here is the packages list required to set up a system for machine learning research
) - Advanced coding courses
- Papers reading and writing
- Code convention
Any advice or comments to improve this learning schedule is most welcomed.
Jiancheng Yang
who provides the primary study route and first start this project.Linguo Li
who provides the MNIST reference code and packages list.