Review: The new Machine Learning Specialization
How the new Machine Learning Specialization is different compare to the old Machine Learning Course?
Andrew Ng’s Machine Learning course — released in 2011 — is one of the most famous machine learning introductory courses, millions of students around the world through the last decade considered it as the beginning of studying machine learning. you can hardly find a roadmap that doesn’t recommend it because it’s known for simplicity, focusing on key concepts.
Last April, Andrew Ng Announced that the new, rejuvenated Machine Learning Course — now specialization — will be available on Coursera soon.
It launched the first two courses first in June, then the third — and the last one — became finally available at the end of July.
In this article, we will discuss in detail this new specialization, what are the differences between it and the old course. should you take it if you have taken the old one?
Content Comparison
The contents in the old course and the new Specialization are quite similar in many aspects, however, there are many differences in terms of the covered topics, and how these topics are covered.
Topics in the new specialization only
1- Decision Trees
The lectures starts with defining the decision trees, the splitting criteria ,and different uses of the tree like applying the algorithm to categorial features, splitting on continuous features ,or using the trees for regression problems, then it explains combining multiple trees and using Ensemble Learning to apply Random Forest, in the last lecture we take a glimpse of XGBoost and how to use them, without any more details.
2- Reinforcement Learning
This is probably the most hyped part of the whole specialization, I found many people celebrating that this introductory course will discuss such topics.
on this simple, discrete, finite-valued example, it explains the definitions of many concepts like state, action, reward, return, and policies, it discusses the state-action value function and what is Bellman Equation, how to consider the probability of undesired behaviors and their effect on the return value and the state-action value function.
afterward, it discusses a more general application with continuous values, and how to use Deep Learning and apply Deep Q Networks to learn the state-action value function, and a bunch of refinements to the algorithm such as modifying the neural network architecture, soft update and ɛ-greedy policy.
Topics in the old course only
1- Support Vector Machines
The SVMs have a whole lecture in the first course that explains in detail the idea of large margin classifiers, SVM decision boundaries, and how to apply the kernel trick to fit higher dimensional vector
2- Dimensionality Reduction
After showing two motivational examples in data compression and visualization, it started explaining the principle component analysis (PCA) and how to choose the number of components.
Topics in both with differences
1- Neural Networks
About half of the second course in the specialization is neural networks. and it’s mentioned in many topics afterward like content-based filtering and reinforcement learning.
In my opinion, the main ideas of neural networks are explained better in the new specialization, with more intuitive examples and better flow, given that the old course focuses only on the main concepts.
The single topic that the new specialization doesn’t discuss is Backpropagation, it is mentioned very briefly, while it is discussed in more details in the old course.
The new specialization also discusses some additional topics like
- Different activation functions and their use, and the main purpose of using activation functions (this very topic has been explained identically in the first course in Andrew’s Deep Learning Specialization )
- Multiclassification — mentioned very briefly in the old course — using Softmax regression.
- Different layer types, and CNN as an example
- Adam optimization algorithm
- TensorFlow implementation of neural networks, which will be used also in the third course as well
2- Recommender Systems
The collaborative filtering part is quite similar (with some details in the old course) but the idea of using deep learning for content based filtering is exclusive to the new specialization, and how to apply the filter on large datasets using Retrieval and Ranking.
Topics in both with no noticeable differences
The other parts are generally similar, the main difference is regarding the practical part in the labs — check the next point — and in the lectures, some of them discussed some codes, which is something I hardly saw in the old course.
Even though there are little differences, here’re some of them
- Linear Regression: the normal equation is mentioned very briefly in the new specialization
- Advice for Machine Learning: is quite richer in the new specialization, with discussing some topics (briefly) like transfer learning.
Assignments, Labs and Quizzes
One major downgrade of the old course is that the programming assignments are in Octave, which might be reasonable in 2011, but now and in the last few years, many students complained about it. and some already have remade the whole assignments in python, providing an auto grader and submitter to Coursera, I used this repo myself and found it very useful.
The new specialization offers new, delivered as Jupyter Notebooks, the contents differ from writing pure python code and using NumPy to implement the algorithms from scratch or using some libraries like scikit-learn and TensorFlow.
The notebooks contain all required information about the equations, diagrams drawn in the lectures and amazing visualizations, and of course, auto grading and different levels of hints for each exercise.
besides the programming assignments, there’re many optional labs throughout the course in which you don’t write any code: just reading some notes, and code cells — which you may be asked to do in the assignments — and many visualizations that you can manipulate yourself by changing the parameter or even the data points.
And finally, like the old course, there were many in-video quizzes and quizzes after lessons, one thing I noticed that the quizzes in the new specialization are easy compared to the old one, which was relatively tricky and they change with each retry in contrast to the new one.
Should you consider taking the specialization if you have taken the old course?
my opinion is no, you don’t have to. but, if you want you can check the new parts and focus on the labs, which will be very good.
If you have taken some of the old course, I recommend starting from the beginning, going through the videos fast — if you needed — , watching the lectures discussing codes, and solving the quizzes and labs.
General Tips
- You should know some high school math, and some programming with Python in order to take the specialization, and you better have an idea about NumPy library.
- if you’re going to take the specialization for the first time, or just for refreshing, try to do the exercises by yourself and don’t check the hints instantly, the exercises are easy and very clear.
- Even though the course videos are available and you can recheck them anytime you want, I prefer some note taking just to remember the main points of any topic.