Table of Contents
Intro
In my last article, I’ve suggested why you might consider stepping into Machine Learning and shared some practical advice on getting into the field.
In this post, I’ll continue with a review of one of the Hall-of-Fame online courses – Machine Learning by Andrew Ng at Coursera.
With all of its’ bright sides, the course also has some shortcomings.
Let’s review all of these in the following sections!
High-Level Overview
This course is about Machine Learning fundamentals.
You will get deep familiarity with a broad spectrum of topics starting from Logistic Regression through Support Vector Machines, Neural Networks, clustering algorithms, just to name a few.
You will also learn some handy techniques to debug your models – something that can be quite tricky in ML and is often overlooked in most of the other ML courses.
You will also implement a lot of the core algorithms yourself. In the real world, you’ll get these use out-of-the-box with your favorite library, but going through the efforts of the manual implementation will bring your understanding to an entirely new level.
You will be introduced to topics like text understanding (web search, anti-spam), computer vision, medical informatics, audio, database mining, and others.
Also, be ready to brush up on your math – especially Linear Algebra, Calculus, Statistics, Probability Theory. Still, don’t let this discourage you – the math will just sink in as you go.
Success Factors
The course has built an excellent reputation for itself since it was launched.
It’s one of the most popular and highest-rated courses from the online learning platforms I have experience with:
Indeed, this is not a coincidence.
Let’s discuss some of the success factors.
The Author
From Andrew Ng’s Coursera profile:
Andrew Ng is Founder of DeepLearning.AI, General Partner at AI Fund, Chairman and Co-Founder of Coursera, and an Adjunct Professor at Stanford University. As a pioneer both in machine learning and online education, Dr. Ng has changed countless lives through his work in AI, authoring or co-authoring over 100 research papers in machine learning, robotics, and related fields. Previously, he was chief scientist at Baidu, the founding lead of the Google Brain team, and the co-founder of Coursera – the world’s largest MOOC platform. Dr. Ng now focuses his time primarily on his entrepreneurial ventures, looking for the best ways to accelerate responsible AI practices in the larger global economy.
There’s no doubt Andrew Ng has excellent charisma, especially in his teaching. He manages to present the material in a very patient, clear, consistent, and well-structured manner.
Attention to Details
I’ve already taken more than 35+ courses at Coursera.
I’ve also been a long-term member of platforms like Udemy, Pluralsight, Udacity.
I can definitely say that the quality of the Machine Learning course is one of the best I’ve seen. Every piece of content – videos, graphics, written materials, are very well edited and structured.
One of my favorite things about the course is that pretty much every video lecture is also covered in a written format – a pdf lecture notes or slides.
This is very useful if you want to revisit a certain material without watching the full lecture videos again.
The authors and editors of the course have clearly put in the required efforts to make this course as accessible as possible for different types of learners.
The Right Level of Abstraction
When learning something new, especially if it’s a big and unknown area like Machine Learning, it’s great if you can keep some initial healthy level of ignorance of all the inner complexities.
Otherwise, you can easily get distracted from your learning path and even fall victim to self-doubt paralysis/Imposter Syndrome.
Generally, you need to trust the learning process and conquer the materials one step at a time.
The course content is structured in a way to gradually increase the complexity once you’re ready for it.
When introducing a new concept, Andrew Ng would first try to give you enough of the intuition behind the main idea.
Then, learning the inner details becomes more comprehensible.
Don’t get me wrong, though – mastering some of the material would require blood, sweat, and tears.
When the content feels too challenging, my advice is to have a deep breath, take a step back and start over from the beginning of the section.
In most cases, when you feel stuck, you’ve probably missed some of the fundamentals, and there’s a great chance you gain a much better understanding once you go through the materials once again.
The Drawbacks
Now, although I strongly recommend taking the course, it also has its drawbacks.
In this section, I have collected different opinions on the cons.
I agree with some of them, but I don’t with others.
Let’s discuss them in detail.
The Programming Language and Tooling
The course is built in Octave – a programming language for scientific computing, similar to MATLAB.
Andrew Ng explains that he decided to use Octave because of its’ simplicity which enables the students to focus on the logic and the algorithms without getting distracted by some complex environment setup.
Still, I’m pretty sure that if he updates the material(which I hear he might do pretty soon), this time, he will use Python.
In reality, Python has become way too mainstream for data science and ML. Setting up the environment and using NumPy for some matrix calculations has become quite popular and straightforward.
Still, remember that the specific programming language doesn’t matter that much for this course.
What’s more, in the beginning, you’ll spend quite some time with a pen and a piece of paper, figuring out the dimensions of matrix multiplications.
The programming language, in most cases, will be irrelevant.
Too Much Helper Code
In many of the programming assignments, you don’t just start writing code from scratch.
Usually, there is some code skeleton where you have to fill in some missing code blocks.
There are some cases when filling in the missing parts is way too trivial. The code comments pretty much tell you exactly what you need to write.
In such scenarios, it’s somewhat easy for the student to pass the assignment without having a good enough understanding of the subject matter.
However, chances are, if you take the easy path, you’ll need to get back and understand the material as part of some future assignments.
Not Enough on Neural Networks
Some people complain that there isn’t enough content on Artificial Neural Networks(ANNs).
Indeed, there are just a couple of weeks devoted to this topic.
Still, I believe the course touches on the most critical building blocks.
Bear in mind that Neural Networks and Deep Learning are huge topics of themselves, and that’s why I recommend taking the Deep Learning Specialization right after you complete the Machine Learning course.
Too Much/Too Little Math
Interestingly, some students claim there’s too little math covered in the course. Others say that some of the content is way too math-heavy and becomes very challenging and impractical.
I guess it depends on the students’ background.
However, this is one of the points I disagree with.
To me, as I’ve described earlier, Andrew Ng manages to find the perfect balance between practice and theory, so you get enough math background, at least for a high-level understanding of a certain concept.
In most cases, you also get additional links to external resources with deeper explanations of the math theory.
Time to Complete
The course home page states that it takes students around 60 hours to complete it.
I think that’s a pretty accurate estimation.
From my personal experience, I managed to finish it for less than 3 months, spending 5-7 hours per week.
Pricing – Free Without a Completion Certificate
The pricing depends on whether or not you’d like to receive a completion certificate.
To be precise, the course is:
- Free without a Certificate.
- $79 with a Certificate
There are plenty of discussions if/how valuable a certificate is from an online learning platform.
It’s true that in most cases, employers don’t pay a lot of attention to such certificates when screening a candidate.
Still, as this Machines Learning course is quite popular, many technical guys would’ve taken it themselves. They will know what materials you’ve gone through.
So maybe it makes some sense to go with the paid version.
Anyways, knowledge is more important than a certificate.
Make sure you focus on the learning rather than just passing the assignments.
Course Content Overview
In this section, I’ll give a brief summary of every week’s content.
Most of the screenshots and descriptions below are taken directly from the lectures.
Week 1 – Linear Regression
This week, we introduce the core idea of teaching a computer to learn concepts using data—without being explicitly programmed.
We are going to start by covering linear regression with one variable. Linear regression predicts a real-valued output based on an input value. We discuss the application of linear regression to housing price prediction, present the notion of a cost function, and introduce the gradient descent method for learning.
We’ll also have optional lessons that provide a refresher on linear algebra concepts. Basic understanding of linear algebra is necessary for the rest of the course, especially as we begin to cover models with multiple variables.
Week 2 – Linear Regression with Multiple Variables
This week we’re covering linear regression with multiple variables. We’ll show how linear regression can be extended to accommodate multiple input features. We also discuss best practices for implementing linear regression.
We’re also going to go over how to use Octave. You’ll work on programming assignments designed to help you understand how to implement the learning algorithms in practice.
Week 3 – Logistic Regression
This week, we’ll be covering logistic regression. Logistic regression is a method for classifying data into discrete outcomes. For example, we might use logistic regression to classify an email as spam or not spam. In this module, we introduce the notion of classification, the cost function for logistic regression, and the application of logistic regression to multi-class classification.
We are also covering regularization. Machine learning models need to generalize well to new examples that the model has not seen in practice. We’ll introduce regularization, which helps prevent models from overfitting the training data.
Week 4 – Neural Networks: Representation
This week, we are covering neural networks. Neural networks is a model inspired by how the brain works. It is widely used today in many applications: when your phone interprets and understand your voice commands, it is likely that a neural network is helping to understand your speech; when you cash a check, the machines that automatically read the digits also use neural networks.
Week 5 – Neural Networks: Learning
In Week 5, you will be learning how to train Neural Networks. The Neural Network is one of the most powerful learning algorithms (when a linear classifier doesn’t work, this is what I usually turn to), and this week’s videos explain the ‘backpropagation’ algorithm for training these models. In this week’s programming assignment, you’ll also get to implement this algorithm and see it work for yourself.
Week 6 – Advice for Applying Machine Learning
In Week 6, you will be learning about systematically improving your learning algorithm. The videos for this week will teach you how to tell when a learning algorithm is doing poorly, and describe the ‘best practices’ for how to ‘debug’ your learning algorithm and go about improving its performance.
We will also be covering machine learning system design. To optimize a machine learning algorithm, you’ll need to first understand where the biggest improvements can be made. In these lessons, we discuss how to understand the performance of a machine learning system with multiple parts, and also how to deal with skewed data.
When you’re applying machine learning to real problems, a solid grasp of this week’s content will easily save you a large amount of work.
Week 7 – Support Vector Machines
This week, you will be learning about the support vector machine (SVM) algorithm. SVMs are considered by many to be the most powerful ‘black box’ learning algorithm, and by posing a cleverly-chosen optimization objective, one of the most widely used learning algorithms today.
Week 8 – Unsupervised Learning
This week, you will be learning about unsupervised learning. While supervised learning algorithms need labeled examples (x,y), unsupervised learning algorithms need only the input (x). You will learn about clustering—which is used for market segmentation, text summarization, among many other applications.
We will also be introducing Principal Components Analysis, which is used to speed up learning algorithms, and is sometimes incredibly useful for visualizing and helping you to understand your data.
Week 9 – Anomaly Detection
When you buy a product online, most websites automatically recommend other products that you may like. Recommender systems look at patterns of activities between different users and different products to produce these recommendations. In this module, we introduce recommender algorithms such as the collaborative filtering algorithm and low-rank matrix factorization.
Week 10 – Large Scale Machine Learning
This week, we will be covering large scale machine learning. Machine learning works best when there is an abundance of data to leverage for training. With the amount data that many websites/companies are gathering today, knowing how to handle ‘big data’ is one of the most sought after skills in Silicon Valley.
Week 11 – Application Example: Photo OCR
This week, we will walk you through a complex, end-to-end application of machine learning, to the application of Photo OCR. Identifying and recognizing objects, words, and digits in an image is a challenging task. We discuss how a pipeline can be built to tackle this problem and how to analyze and improve the performance of such a system.
Summary
This was everything I wanted to share about this excellent course.
I firmly believe it’s a great way to start exploring the field of Machine Learning.
I hope you’ll give it a shot and enjoy it to the same extent that I did.
In the next post, I’ll do a full review of the Deep Learning Specialization.
Thanks for reading and see you next time!