I have just completed the Week 3 programming assignment for Prof. Ng‘s Machine Learning course on Coursera. I have learned linear and logistic regression so far and their application in regression and classification problems respectively. The course also introduced me to Gradient Descent algorithm to solve for the minima of a function. I have used other iterative algorithms to solve for linear algebra problems but this was a new one for me.
There may be countless arguments that weigh in favour of not paying for the course, I decided otherwise. It felt like the right thing to do. Here are my reasons:
- I am learning something new and useful. In the last one and half years, I have developed a healthy inclination and interest in the field of Artificial Intelligence. Few months ago, I had studied NLP. Last year, it was functional programming in Lisp and Haskell. Machine Learning, being a generalisation of the NLP field was a pretty straightforward choice. However, I did not want to pay unless I was sure that I would put regular effort in the subject. Week 4 of 11 seem to be the margin of that decision boundary.
- Ever since I have started earning (dates back to the days when my Ph.D. stipend was insufficient), I have tried to pay for a service or a product that I received and thought was valuable to me. This also acts as a filter. I have sampled a few courses earlier but have veered towards the corresponding textbook instead. Dan Jurafsky’s NLP would be a case in point (book), so would Linear Algebra by Gilbert Strang (book). In both the cases, I have paid the original teacher by buying his book. For the latter, I don’t think a paid course is available. (Instead, please watch his excellent lectures on MIT OCW or on YouTube).
- Andrew Ng is a heck of a guy. I know he doesn’t need my money, but this small contribution is for his effort in building Coursera and the ML course itself.
I can feel that the course gets harder as the subject gets deeper. There are programming assignments, too. Once I have completed the assignments, I will put them up on my GitHub profile. I am trying to write concise solutions to the problems, vectorising as much as possible.