[D] What is the best way of learning Machine Learning on my own?
Here is what I did. I don't know how good your programming skill is so I am going to start from the very beginning.
-
Take the intro python course first from MIT's edx.6.001x. Don't be alarmed that it's a course from a big name school. It will be hard but not impossible to finish. Some concepts will be foreign or straight up weird. Take it again if you have to, I am a slow learner I think I took the course 3 times before actually completely finishing it which is on the slow side.
-
During this time brush up your math skills: Linear algebra for matrix multiplications, dot product and you should also learn how to read Greek letter formulas. This will help you build future intuitions on why our trusty for loops are no longer useful. Learn basic statistics concepts like mean square error, std, variance, distributions etc. You can also go into Calculus to learn the chain rule and how to derive gradients. TBH I didn't do this step very well, I did enough to help me understand the concept of backpropagation and gradient descent but if you ask me to manually derive everything I will have a hard time doing so.
-
Once you are able to understand other people's code in python I recommend taking the Udacity ML course instead. Normally every one starts with the Coursera course but they use octave instead of python. I was constantly frustrated from debugging my octave code while trying to learn these concepts I didn't really enjoy the course. You can always watch the videos but please save your time and skip octave if you already know python.
-
Now you should know enough to start a Personal Project, this part is where you actually start to learn what you are doing. It sounds silly I know, you can watch 10 thousand hours of video, copy other's code and it will not beat the experience gained from just 1 hour of hands-on practice. You should find some code that interests you on Github, type everything out while taking notes, then recall the information back on why the person did that particular thing in his code. All the previous lectures and videos are just to get you started to understand the reasons behind someone else's workflow. Other people's work will also help you build intuition and reference points. The real learning starts when you begin to absorb someone else's concept then turn it into your own so you can work on your own projects.
4.5) [Optional] There are tons of specialized fields in ML, you should have enough foundations and intuitions to go in more specialized fields. eg computer vision, robotics etc.
5) Read Papers to keep yourself updated on the latest discoveries.
Finally, repeat step 4 through 5 for profit.
Edited: Once you understand the fundamentals you should start to learn different frameworks to increase your productivity. Sklearn is very popular for basic ML, for computer vision there are tensorflow, theanos, keras, pytorch etc.
Edited: grammar
More on reddit.com