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 graduated and moved on. 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 the 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 what sounded like a Mario video. Being a fan of 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.
Needless to say, my mind was 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 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.
My Review of the Machine Learning Course by Andrew Ng
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 is introductory level and is designed for complete beginners to machine learning. You don’t need any prior experience with machine learning tools and libraries.
- The course is 100% free. You’ll need to pay about $50 if you want the course certificate after completion.
- The course itself is 11 weeks. I spent 3-4 hours a week. If you have more time, you can definitely finish it sooner.
- 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 :)
What to do next?
Deep Learning is one of the most sought after skills in the field of machine learning, and it is transforming many industries. Coursera and Andrew Ng offer some great courses on Deep Learning:
- Neural Networks and Deep Learning
- Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization
- Structuring Machine Learning Projects
- Convolutional Neural Networks
In addition, you should also join Kaggle. It is an online community of data scientists and machine learning enthusiasts. It runs competitions which are slightly advanced for beginners but a good way to explore the field. For many beginners, Kaggle’s best feature is the no-setup, customizable, Jupyter Notebooks environments, and access free GPUs plus a huge repository code published by other developers.
Happy machine learning.