Monday, 16 January 2017

Machine Learning


I like taking MOOCs. I find they are a great complement to reading books. Most of them are fun and entertaining, and they are a great way to keep yourself up to date and brush up some practical details (especially for someone like me who doesn't code too much on their day to day). Because of this, I have taken quite a few ML MOOCs and I feel I am pretty well equipped to answer this question. Btw, by “taken” I really mean followed the course, the exercises and taken the exams... for most of them. Here is my review of some of them from best to worst:

This was the first MOOC I took when Coursera still did not exist and it was offered through Stanford. It is still my favorite one and the one I would recommend first.
Pros:
  • Great overall topics. It's hard to pack any more valuable information in such an intro course.
  • Good combination of practical advice, necessary background (e.g. linear algebra review) and (some) depth (e.g. gradient descent)
Cons:
  • Practical exercises in Octave? I think these would have been so much better in Python.
(2) Machine Learning Foundations: A Case Study Approach by UW's Carlos Guestrin and Emily Fox

New course that I just finished last week. I would totally recommend it as a good alternative to Andrew Ng's.
Pros:
  • Pretty good table of contents including “hot topics” such as Recommender Systems and Deep Learning. I think the course gives a pretty good overview for an intro course.
  • Really fun. The fact they motivate the course through cases makes the course really fun to follow.
  • Good practical exercises. It is great that this course uses Python, and more concretely iPython Notebooks, for the exercises. It is also great that exercises are based on “real” datasets and use cases
Cons:
  • The course may appear to lack depth or be “too easy” for some. I do think that is ok since the course it is part of a larger series and the instructors have follow up courses on each of the topics. So, this is just an intro. Still, it has less depth than Andrew Ng's.
  • The instructors do point this out and are open about it, but it is a bit iffy the course is to some extent used to advertise the Graphlab platform and, to a lesser extent, Amazon, both of which are connected to the instructors. To be clear, this is not something strange in regular colleges and it doesn't bother me too much, but I thought I'd point it out.
(3) Intro to Artificial Intelligence by Peter Norvig and Sebastian Thrun

This is not an ML course per se. However, this is a great course that includes a chapter introducing machine learning. And, it even introduces you to related areas such as information retrieval or natural language processing.
Pros:
  • Great content and coverage of topics
  • Well-taught
  • Good practical approach but good balance of theory/practice
  • Interesting exercises and somewhat challenging quizzes
  • Includes interesting topics that are not covered in most courses such as NLP or reinforcement learning
Cons:
  • It is not, strictly speaking, a machine learning course
(4) Intro to Statistical Learning by Trevor Hastie and Rob Tibshirani

I am torn with this course. Unfortunately, I would not recommend it as a general-purpose ML course. It is a somewhat good complement to almost all the others. But, by itself, it has more cons than pros.
Pros:
  • It should be obvious from the title, this course is, by far, the one that offers the more depth in math and stats
  • This is the only general intro course where you will hear about statistical concepts such as confidence intervals, p-values, or bootstrapping
Cons:
  • There are way too many decisions about where to focus on this course that are highly questionable. The amount of time spent dealing with “exotic” areas such as Linear Discriminant Analysis vs., for example, Logistic Regression is hard to understand.
  • There is a general feeling about this course being very “old school” and not being up-to-date with latest ML advances. As an example, most ML practitioners nowadays will understand LDA as the acronym for Latent Dirichlet Allocation. If you are using this for Linear Discriminant Analysis I would expect you at least acknowledge that possibility.
  • There are several pieces of advice that are simply wrong from a practical perspective. Just to be clear, they are not wrong from a theoretical or mathematical perspective. But, in isolation, they are very bad advice for practitioners that are getting started in the field.
  • The practical exercises in R sometimes feel like a waste of time. The more complicated and time-consuming exercises seem completely arbitrary since they are not related to interesting areas where students will benefit from spending more time.
  • Many quiz questions are confusing. Some are wrong.
(5) Probabilistic Graphical Models by Daphne Koller

This is the only ML MOOC I have ever started and not finished. For a reason. I found this course pretty boring, and hard to follow (not because of the difficulty, but because it was hard to find the motivation to so). The topic is definitely interesting, but would only recommend this course if you are very interested in pgm's.
Pros:
  • Detailed overview of an interesting area in ML
  • Depth
Cons:
  • Boring and lacking motivation
  • Hard to follow
  • Not very practical
(6) Others that I havent taken

There quite a few others that are on my list but I haven't taken yet. Will update this answer if I do. In particular, I have heard good things about Pedro Domingos' Intro to Machine Learning and Geoff Hinton's Neural Networks for Machine Learning.

No comments:

Post a Comment