Online Course Review - the Best Machine Learning Course for Beginners19 Jan 2017
Back when I was in college, I enrolled in a couple of introductory AI courses. I quickly got bored: artificial neural networks didn’t sound very practical and the dry mathematics was off-putting. After I finished the courses, I chalked it down as too futuristic and didn’t think about pursuing the subject further. A while ago, I started noticing articles and blogs on self-driving cars that use “machine learning”. It sounded like a fancy new way to position decades-old field of AI. I still wasn’t sure what the hype was all about. That was about to change.
One evening by chance, I came across a link to a what sounded like a Mario video. Being a sucker for retro video games, I opened it. The video shows a skilled player playing Super Mario World. Here’s the twist: the skilled player isn’t a human. It is a neural network program that taught itself how to play Super Mario World with zero help. When it started, it knew absolutely nothing about Super Mario World or Super Nintendo. It didn’t even know that pressing the A key on the controller makes Mario jump over obstacles. It learned to play and complete the first level all by itself… made possible by machine learning.
Mind = Blown.
I wish my professors had shown something similar at the beginning of the course. I would have been all over it. It was a fantastic demonstration of the power of machine learning. I spent the weekend reading blogs and news articles about machine learning applications. I tried to run some simple applications but didn’t get far. I wanted to understand what problems it can solve. I wanted to apply it to a real-world problem.
At some point, I decided that I need to take a course so I could read and understand machine learning blogs and research papers. I researched online found a course on Coursera offered by Andrew Ng. For those of you who don’t know who Andrew is, he is a highly respected and a very influential scientist in the fields of machine learning and AI. He’s leading machine learning efforts at Google and Baidu. Before that, he taught at Stanford as an associate professor.
I enrolled in Andrew’s course on Machine Learning and I’m super glad I did. If I have to rate Andrew’s course out of 5 stars, I would give it 6 stars. It was literally one of the best learning experiences of my life. I had fun throughout and learned many useful concepts many of which I was able to apply to solve real-world problems.
- The course itself is 11 weeks. I spent 3-4 hours a week. If you have more time, you can definitely finish it sooner.
- The course is 100% free. You’ll need to pay about $50 bucks if you want the course certificate after completion.
- The course is designed for complete beginners to machine learning. You don’t need any prior experience with machine learning tools and libraries.
- Andrew Ng has an amazing teaching style. It’s super fun and very engaging. He clearly articulates complex algorithms and mathematical equations which make it very easy to grasp the subject matter.
- The course will introduce you to various flavors of machine learning algorithms: linear regression, logistic regression, k-means, (artificial) neural networks, support vector machines, unsupervised learning. By covering many different algorithms, it lays the groundwork and sets up the foundation so you can continue learning in the areas that interest you.
- Programming assignments focus on solving real-world problems: handwritten digit recognition using neural networks and spam classification with support vector machines (SVM) were my favorites.
- A couple of friends who took the course complained about one aspect: the assignments must be done in MATLAB or Octave. They were hoping they’d be able to use their favorite language and learn a machine learning library like TensorFlow. However, I feel MATLAB/Octave is a great choice for this course. It forces you to think about applying machine learning algorithms using matrices and matrix operations, without getting caught in the nuances of a high level language or a library. I would however strongly recommend that you do not skip the tutorial sections covering MATLAB/Octave and pay very close attention to them. Review the tutorial sections twice if you need to, or you’ll spend a lot of time stuck on assignments.
If you are interested in machine learning (you should) and you are a beginner or know very little about it, Andrew’s course is the best investment of your time that you can make. The only regret you’d have is that you didn’t enroll sooner :)
Happy machine learning.