Note: this page is forked from here. I update this page contents regularly, and it does not similar to the original page.
Learning schedule
This learning schedule is sorted out for reseachers or whoever interested in machine learning / deep learning / computer vision.
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.
BOOKS
- Dive into Deep Learning - NumPy/MXNet, PyTorch, and TensorFlow.
Beginner
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.
-
Feifei Li (Stanford)'s Computer Vision (CS231n) - 2017
Homepage
video link:Youtube
Bilibili
-
CS231n Winter 2016 Youtube
Intermediate
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.
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
: How to approach programming problems and devise a solution is an essential skill for any Python developer - by Peter Norvig.
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 your adventure now! And enjoy the beauty of maching learning!
Tools
- git (best tutorial I've read in Chinese, haven't found a counterpart in English)
TODO
- 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.
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.