Review of Andrew Ng’s Machine Learning and Deep Learning Specialization Courses on Coursera

Junhong Wang
5 min readJan 14, 2019

--

Machine Learning (Left) and Deep Learning (Right)

Overview

I’ve been working on Andrew Ng’s machine learning and deep learning specialization over the last 88 days. I finished machine learning on Day 57 and completed deep learning specialization on Day 88.

I’d like to share my experience with these courses, and hopefully you can get something out of it. You can check out my study logs of the courses below from Day 1.

Initial Specs

I had some basic knowledge about matrix multiplication and taking derivatives of simple functions. But I was pretty much new to machine learning. I didn't know anything about linear regression or logistic regression. I knew some stuff about neural network, but I had no idea how back propagation worked.

Quick Review

If you are a complete beginner in machine learning, I would definitely recommend taking Andrew’s machine learning course. I gave up Andrew’s machine learning course a few times in the past, but I realized his lectures are much easier to understand after crawling through other machine learning videos and tutorials online.

If you already know the traditional machine learning algorithms like logistic regression, SVM, PCA, and basic neural network, you can skip the machine learning course and move on to the deep learning specialization.

If you are already confident with basic neural network, you can skip the first three specialization courses and move on to fourth and fifth courses, where you can learn about CNN and RNN.

Machine Learning

This is a free course. I didn’t receive a certificate for this course because I didn’t purchase the course for certificate.

Lecture Style / Organization

The course is very organized as it was originally offered as CS 229 at Stanford University. The original lectures are available on Youtube.

I think Stanford version is very math heavy and hard to understand as a beginner. Coursera version only requires minimum math background and more geared towards wider audience. It also contains sections for math review. Andrew’s teaching style is bottom-up approach, where he starts with a simplest explanation and gradually adding layers of details.

Content

You will learn most of the traditional machine learning algorithms and neural network. Here’s a list of things you will learn from this course.

  • Linear Regression
  • Polynomial Regression
  • Logistic Regression
  • Multi-class Classification
  • Neural Network
  • Support Vector Machine (SVM)
  • K-means Clustering
  • Primary Component Analysis (PCA)
  • Anomaly Detection
  • Recommender System

Programming Assignment

The course is designed to use Octave for the programming assignment because python was not as popular as it is now for machine learning back then. But I found a github page that has python version of the assignment, and it also allows you to submit your python code to Coursera for grading!

The programming assignment lets you implement stuff you learned from the lecture videos from scratch. For example, you will implement neural network without using any machine learning libraries but just numpy.

Deep Learning Specialization

This is not a free course, but you can apply for the financial aid to get it for free. Otherwise, you can still audit the course, but you won’t have access to the assignments. The deep learning specialization course consists of the following 5 series.

  1. Neural Networks and Deep Learning
  2. Improving Deep Neural Networks
  3. Structuring Machine Learning Projects
  4. Convolutional Neural Networks
  5. Sequence Models

Lecture Style / Organization

The lecture style is same as machine learning course. But I would say the organization was okay, especially for Sequence Models. I felt the last course was pretty confusing, and I ended up looking for other resources online to help me understand Andrew’s lectures.

Content

The first three sequences are pretty much a review of machine learning course. I’d say 70% of the stuff you would already know if you’ve taken his machine learning course. Although the materials from fourth and fifth courses were pretty complicated, I think Andrew did a great job to explain them for the most part.

  • Neural Network
  • Convolutional Neural Network
  • Recurrent Neural Network

Programming Assignment

Just like in machine learning course, you will get to implement some machine learning algorithms like basic CNN and RNN from scratch. But for more complex models, you will use machine learning frameworks such as Tensorflow and Keras. I personally didn’t really like the assignment using these frameworks as there are little instructions on how to use the libraries. Although I was able to complete the assignment with the machine learning frameworks, I didn’t really understand why the code is working. But it does give you a general idea about the algorithms. The forums are pretty useful when you get stuck.

Summary / Recommendation

Andrew’s machine learning and deep learning courses are very beginner friendly. However, sometimes Andrew explain things not clearly. In these cases, you can google about the topics and find better explanations. For example, Andrew didn’t go deeply into the math behind SVM, but I was curious about how SVM works. So I googled about SVM and found this ebook useful. You can find how I studied for Andrew’s machine learning and deep learning courses in more details at my machine learning diary series mentioned in the beginning. The full list of the series is available at my website.

What’s Next?

I’m not really sure where to go after completing these courses. Although I have some knowledge about machine learning, I feel like I’m lacking the programming exercises to actually implement the algorithms. I might try Kaggle or Udacity’s machine learning courses to brush up the my programming skills and get more familiar with various machine learning frameworks. I will update this post when I decide where I will be going next. Hope this review helps!

--

--

Junhong Wang

I'm Junhong. I'm a Software Engineer based in LA. I specialize in full stack web development and writing readable code. junhong.wang