Review of Coursera’s “Machine Learning”, and what’s next

I finished this course a couple of weeks ago now, so I thought I’d share my impressions of how I found it, and also what I think I want to do next as I continue on as a Human Learning Machine Learning (see what I did there?)

The Good

  1. The Teacher Professor Ng is actually a very good teacher. He has a good way of covering off some fairly complicated topics without being patronising or overly academic. He is clearly passionate (without being a super-geek) about his topic and that is also encouraging. Despite a faint Asian accent, he speaks clearly enough – and even when I had the videos sped up, I could still understand him. Quite different to a Chinese lecturer I had at university who was VERY hard to understand.
  2. Content The content itself – delivered over eleven weeks – seems pretty comprehensive for an introductory course. It covers off all the main areas of machine learning – although understandably not in great detail. But, starting with linear regression and moving through to logistic regression, neural networks and support vector machines, and then a couple of different approaches to unsupervised learning, it covers off all the basics pretty well. The load each week was pretty balanced. Only the last two weeks (without any MatLab project work) did I knock off quickly in one week.
  3. High Level Understanding In addition to the ‘hows’ and ‘whats’ of ML, Prof. Ng also spends quite a lot of time talking about the ‘whys’ of different approaches in ML, including helping us get better intuition about what is going on, and how to debeg/trouble shoot algorithms. This is the black art of ML – and folks who know this stuff well will be well equipped to use their time wisely in real-life projects
  4. Delivery This was also pretty good. Each week there is around 60-120 minutes of video to watch in bite-size chunks. They aren’t replete with funky animations; mostly it is just the professor’s voice while he annotates in real-time with a digital pen the slides he has put together. But this is totally fine. They also come with little pop quizzes to check you are getting what is being taught. All up, it is quite similar to what you might find in a real classroom. I fully expect that these are the exact same resources he uses when teaches off-line. In addition, you can download well formatted courses notes in PDF format for future reference after the course has finished instead of trying to scrub though all the videos.
  5. Assessment Each week there are a couple of five-question multi-choice quizzes. You need to score 4 out of 5 in order to pass. These are randomised at each sitting. By and large, these were well written and got the right balance between not being super-basic or too hard. I had to think pretty hard about some of them before answering, but that’s good, right?
  6. Maths In all ML, there is going to be some level of maths involved. Knowing what you need to explain in detail and what you can just say “take my word for it – the maths here works” is important for any ML course. Personally, I think Professor Ng got the right balance here – at least for me. Granted, I do have a background (albeit somewhat distant these days!) in linear algebra, statistics and computerised numerical analysis so even if I didn’t remember everything that I learned back in the day (and I definitely didn’t), the concepts were all pretty familiar. But, if I was coming to this without that maths background, most likely I would have really struggled. My guess is that when he put this course together many of the ML frameworks (that hide a lot of the actual maths) on the market today didn’t exist – and you really had to implement a lot of this stuff yourself. Times have changed, but I still think it’s helpful to have a good sense of what is going on “under the hood”.
  7. Cost You can actually do this entire course (i.e. watch all the videos, do all the exercises, download all the notes, participate in the forums and tutorials) without paying a penny. I know that because up until the very last quiz, that is exactly what I did. Since I appreciated the course so much, and who knows, maybe a real certificate will be helpful for me one day, I finally ponied up the USD$79 at the very end. That is not a lot of money for a lot of information. After the first few weeks, they stopped bugging me to pay as well which I also really appreciated.
  8. Suggestions As the course was finishing, Coursera suggested a bunch of different, yet relevant, other next courses for me to take.

The Not So Good

With so much to like in this course, what might I prefer to have been a little different?

  1. MatLab Personally, I am not a fan of MatLab (or Octave). Professor Ng explained why he chose MatLab rather than a more commonly used programming language (like Python, Java or C++) and I get his point. You could spend a lot of time fighting with the boilerplate and syntax of those languages before making any progress on what you are really trying to learn: how to implement the maths behind ML. That said, as someone who is pretty au fait with those sorts of languages (as I expect many of his customers are),  having to learn the basics of yet another language – that I have no intention of continuing with – was a bit of a hassle. Despite its obvious power for mathematical applications, it seems very dated and clunky as a programming environment. I won’t be missing it. What should have been used? Probably one of these ML frameworks – most of which likely didn’t exist when he wrote the course.
  2. Project Assessments It is pretty tough to set up an environment whereby a computer can automatically mark code. But their system works, and was (almost) flawless. However, almost by definition, it led to some very prescriptive ways of solving the problems. It wasn’t quite fill-in-the-blanks programming (which doesn’t lead to much real learning) but it wasn’t too far off sometimes. And if you got stuck with one part of an exercise, then in many cases you wouldn’t have been able to continue. Thankfully the forums and tutorials gave me enough hints to get me on track for a couple of exercises I just wasn’t getting.
  3. Video Typos This is a tiny thing, but there were a few typos/retakes in the videos. Fixing this would likely only take a couple of hours, and save having to put the errata in the handouts.

What Next?

Clearly, I am a fan, and would sit in on another of Professor Ng’s courses – and probably will one day. But for now, I have decided to take a different tack.

One of my frustrations with this course was having to use MatLab. I’d really like to have been able to use on of the (many) languages I already know. It’s just one less thing to scratch your head over…. It turns out that Python seems to be the language of choice for ML these days – which I also don’t know, although I do have a fair bit of Ruby experience, and the two are related. However, right now, I really have my head in Javascript, and even if JS performance isn’t great, I’d like to be able to learn all the new ML concepts using the tooling and language I am familiar with.

Well, it turns out that Google have recently released a Javascript API for their TensorFlow ML framework. Although the original API appears to be Python, the JS implementation (along with a few other planned languages) is coming online now. So, I am planning to work my way through the Google TensorFlow crash course to solidify my understanding, and also learn the TensorFlow API which seems to have a fair bit of traction these days. I’ll keep you posted on how it’s going.

2 Replies to “Review of Coursera’s “Machine Learning”, and what’s next”

  1. Glad you enjoyed this course Charles, I did too. (although I think I only watched the videos, so I’m impressed that you successfully knocked off each of the assignments — that will probably help the concepts stick around longer in your mind)

    I’m curious whether there were any ideas in the course, big or small, that you found particularly interesting / inspiring. Are there any uses of ML that you could imagine in the coming decades that strike you as particularly compelling or otherwise interesting?

    1. What interests me most about ML is not so much the mechanics of how it is done, but more the questions it raises about the nature of intelligence. Other than the black box innards of a neural network’s hidden layers, there was not too much mystery in the course. But probably the thing I enjoyed most was seeing how to turn real life problems into a problem that ML could solve. And the more I progress in the field, the more I expect to see how to apply it to other problems. That is probably the closest I got to feeling ‘inspired’ during the course… Hopefully my inspiration is not dulled by too many failed attempts to get it working on some of my own little projects!

Leave a Reply

Your email address will not be published. Required fields are marked *