📅 2014-May-14 ⬩ ✍️ Ashwin Nanjappa ⬩ 📚 Archive

A few months ago, I did not know anything about Machine Learning. But, after finishing the Machine Learning course online at Coursera, I am happy to say that I know a bit of it now. This is all thanks to the awesome Prof. Andrew Ng and his Coursera website. This is the third MOOC I have taken and this is easily the best of the three!

Spread over 10 weeks, this course has 18 lectures, an equal number of review question sets and 8 programming exercises. The exercises need to be programmed in Octave, which I got the chance to learn thanks to this course. Though hosted at Coursera, the lecture format is exactly the same as at Udacity. That is, the lecture is split into 5-15 minute chunks that are easy to digest, interspersed with quizzes that test your understanding.

I believe that it is Andrew's teaching style that made this topic interesting and accesible to me. He writes and draws with a pen on the display to explain all the concepts. Seeing the ideas come to life is far more effective than using slides, as Udacity has already proven. He always uses a real world example to motivate and explain a concept. Even the scary looking math formulas became easy to grasp because he breaks everything down to the simplest possible form and shows that it is not really complex.

Thanks to the programming exercises, the student gets to see the math behind a machine learning algorithm come to life. Every exercise starts by asking you to build the smallest pieces of the math formula and then slowly combines those to create the full implementation of the algorithm. Also, the Octave language makes converting a math formula to code extremely easy. I shudder to think of how much C++ or Java code it would take to achieve the same!

This is an introductory course to machine learning. Taking the course requires only high school math and a very basic programming ability. Andrew covers the linear algebra and the Octave programming language needed for the course in his lectures. The course covers all the basic techniques, so that words like neural networks or support vector machines will no longer scare you.

The course easily gobbled up anywhere from 1 to 1.5 days of most of my weekends. I took down notes for all his lectures, else maybe it would have taken lesser time. The final solution to most of the programming exercises would be just a few lines of code. But getting to those few lines of solution in a new language and a new subject took quite some effort. Even the simplest of bugs ended up sucking up a lot of hours! But in the end it always felt great to see the solution working and submission successfully uploaded and finished.

There are always a few teachers from school days who remain etched in memory. It is because they could make the driest subject feel accessible and interesting. I was happy to find that Andrew is one such good teacher who made this scary-looking topic, which I just started on a whim, interesting enough for me to actually put in the effort and finish. Without any hesitation, I highly recommend this course if you are interested in knowing what machine learning is all about. I can assure you that this journey will be fruitful.