Ask HN: How do I go about learning machine learning?
Thank you.
Thank you.
The French method for teaching these things (the one I'm used to) is to first do a lot of mathematics and then to introduce these topics through powerful mathematical formalisms, from the get go. All else equal, for most people, it's probably a worse approach.
However, the American way does err a little bit on the side of too little mathematics, and it can come and bite you. My suggestion would thus be to follow all the advice given, but give 50% more emphasis on mathematics than people would otherwise suggest. Fortunately, the mathematics of machine learning aren't too complicated, but you want to be able to breathe that stuff. In particular this means:
- linear algebra
- real and complex analysis
- multivariate calculus
- topology (just a bit)
- probability theory
It's like touch typing. It may be tedious at first, but once you know this stuff really well, learning new things will be a breeze.
http://www.cambridge.org/al/academic/subjects/computer-scien...
Long story short, the biggest mistake I see people making is not actually rolling up their sleeves and learning the math.
People are often content to watch hour after hour of Udacity, Khan academy and Coursera videos but the applied follow up is where most people drop off. At the very least any course work should be followed up by something practical like a kaggle exercise to prove that you can apply the technique you just learned. Consider the benefit of just watching videos vs doing actual applied work.
On one hand if you just watch videos you might learn alot but how do you prove that to someone hiring you? On the other hand if you sit down and spend a week attaching a Kaggle excise then at the very least you have something to point people to, to show that you can apply machine learning techniques.
My recommendation has always been to read the first 5 chapters of Introduction to statistical learning: http://www-bcf.usc.edu/~gareth/ISL/
and if you fly thorugh it then sample Elements of statistical learning http://statweb.stanford.edu/~tibs/ElemStatLearn/ for the topics that you want to learn.
If intro to statistical learning is too advanced, then go to Khan academy and work your way through their statistics videos.
From my experience you can bucket people into skill level by looking at how they attack a new problem.
Beginners tend to start by saying they'll need a hadoop cluster and spend the next week setting up a pipeline.
Intermediate people tend to jump into R or scikit and try to model the problem with a small subset of data and the library and technique they know best.
The advanced people tend to flesh out their hypothesis first and then work out the math and then jump to modelling with a small set of data and finally move to a cluster.
Then you can continue with improving your maths (Linear Algebra [1], Calculus [2], [3]) and moving on with Statistical Learning [4] [5]. I am personally going now through this plan.
[0] http://shop.oreilly.com/product/0636920033400.do
[1] http://www.amazon.com/Linear-Algebra-Right-Undergraduate-Mat...
[2] http://www.amazon.com/Calculus-4th-Michael-Spivak/dp/0914098...
[3] http://www.amazon.com/Calculus-Manifolds-Approach-Classical-...
[0] http://www-bcf.usc.edu/~gareth/ISL/
[1] http://www-bcf.usc.edu/~gareth/ISL/ISLR%20Fourth%20Printing....
If you think you've nailed Python, go ahead and look at NumPy and SciPy - they're different enough from Python, and they crop up very often in ML.