This is a basic learning plan I'm working on to get myself up to speed on the basics of machine learning and understanding the fields ML, DL and other related topics for becoming an ML/Software Engineer. This guide will be a work in progress as I am learning along side finding the proper resources to learn from.
Self study is very difficult so having a set plan like one would have in a school system will help a lot. Here you can find a good guide on machine learning for software developers. It goes more for the top down approach of learning instead of bottom up, but an interesting read nonetheless. An interesting article on how to learn on your own Know what MNIST is.
You can jump around within each step. I would advise to just skim the Stanford lectures if you understand how the previous topics work from implementing them.
- DSA
- Fundamental ML algorithms from scratch
- Linear regression
- Logistic regression
- Support vector machine (SVM)
- K nearest neighbors (KNN)
- Naive Bayes
- Decision tree
- Random forest
- Principal component analysis (PCA)
- K means clustering
- Perceptron
- Learn basics of pytorch (or any other popular ML library)
- Projects:
- Random algo implement from scratch with math notes
- MNIST classifier (using pytorch)
- Multilayer Perceptron/Feed Forward neural network
- Here's a good intro to NN's playlist. Warning: it's not a complete guide!
- Training a classifier with softmax cross entropy loss
- NN from scratch Karpathy (basically implement working MLP
- Karpathy Zero-To-Hero Series
- Andrew Ng - The Deep Learning Specialization
- Neural Network and Deep Learning
- Improving Deep Neural Networks
- Structuring Machine Learning Projects
- Convolutional Neural Networks
- Sequence Models
- Stanford CS230 Deep Learning