Back in February I attended the PHPUK Conference in london. There were some great talks on offer, one of the most inspiring being Ian Barber’s Teaching your machine to find fraudsters. It can be caught here if you’re interested in watching it, if not I did a write up on the conference which included a small overview of Ian’s talk. Anyway toward the end there was a mention of a free online course being offered by stanford university which prompted me to check it out.
The machine learning course is offered free online by Coursera and I believe they’ve just moved into enrollment for the third iteration.
The format is very well laid out, every week you get around 2 hours of video lectures which are coupled with programming exercises (using octave) and some review questions.
They have some good optional material to help get the lesser experienced student up to speed. These include an overview of octave, doing matrix multiplication or inverting.
When I started out I initially felt well out of my depth, and had to stop and re-watch the videos a number of times. I often found myself struggling to understand the algorithms and the properties contained within them, and how to apply them in a programmatic sense. However thanks to the pratical examples of these in action you begin to gather a much clearer intuition on how they work. By the forth week I was a lot more comfortable with the content.
I don’t want to cover my thoughts on each algorithm learn’t as the material is quite comprehensive. But it does cover both supervised (linear / logistic regression, neural networks, SVM) and unsupervised (K-means, PCA, Anomoly detection) machine learning techniques. The difference being supervised has a training set where you know the outcome, and unsupervised where you don’t.
Once you complete the course you get a statement of accomplishment signed by the professor hosting it (Andrew Ng). I’ve just completed it baby-steps away from the 100% mark with 79.5 / 80 on the review questions.
Yay me! The course was a real eye-opener and I learnt a ton. I’d advise any developer to have a shot at it, you come away with greater understanding of how technologies like Netflix and Google News work. Also I’m sure you’ll soon be writing your own character recognition software, or teaching a car to drive itself.
That’s it, that’s all I wanted to share.