Table of Contents
Intro
In the previous post, I reviewed one of the most successful intro courses on Machine Learning. Namely, “Machine Learning” by Andrew Ng on Coursera.
If you’ve taken this course or have some initial Machine Learning knowledge – the “Deep Learning Specialization” on Coursera is a great way to continue your learning journey.
In this article, I will describe this Specialization, its Pros and Cons, and what to expect as a learning outcome.
Let’s get going.
High-Level Overview
You will start with a gentle intro to Neural Network architectures – the main driving force behind them, what problems they solve, and in what domain areas they are utilized.
You’ll dive deep into NNs implementation, how Backpropagation works for them, how to make them better with strategies like Dropout, BatchNorm, Xavier/He initialization, and more.
Then you’ll explore a lot more specialized areas of Deep Learning like Computer Vision, Sequence Models, Natural Language Processing.
This includes solving many exciting challenges like speech recognition, music synthesis, chatbots, machine translation, and more.
From a coding perspective – in your assignments, you’ll use Python and Tensorflow 2+.
Note that the initial version of the Specialization was built in Tensorflow 1, but it was recently updated(as of May 2021) to the latest Tensorflow.
Required Background
This Specialization is not for the absolute beginner in Machine Learning.
It’s good to have at least some intuition behind concepts like Linear/Logistic Regression, cost functions, Gradient Descent, vectorized implementations.
Even if you don’t, don’t be discouraged. The author will still go through all of the required materials.
However, you will find it more challenging than if you first take a more introductory course like ”Machine Learning.”
Time to Complete
From my experience, it takes around 5-6 months to complete the Specialization, spending 5-7 hours per week.
Pricing
With this Specialization you get a 7 day free trial and then it’s $49/month.
This means the faster you progress, the less money you’ll spend 😊
You will also receive a Completion Certificate to share in your CV and LinkedIn profile.
The Courses
In this section, I’ll provide a deeper overview of each of the courses in the Specialization.
Course 1 – Neural Networks and Deep Learning
This is the introductory course on vanilla Artificial Neural Networks.
You will get some high-level introduction on the idea behind Deep Learning and how it revolutionalizes the modern Big Data era.
By the end of the course, you will know how to build your own neural network and train it on some sample data.
This will enable you to understand what’s really going on under the hood instead of just looking at NNs as a black box.
Material Covered
- Neural Networks Basics
- Logistic Regression with a Neural Network Mindset
- Shallow Neural Networks
- Planar Data Classification with One Hidden Layer
- Key Concepts on Deep Neural Networks
- Building your Deep Neural Network: Step by Step
- Deep Neural Network – Application
Rating
Course 2 – Improving Deep Neural Networks: Hyperparameter Tuning, Regularization and Optimization
This course is about understanding the process that drives the performance of Neural Networks and generates good outcomes systematically.
You will learn about bias/variance, when and how to use different types of regularizations, hyperparameters tunning, batch normalization, gradient checking.
In the assignments, you’ll implement optimization algorithms like mini-batch gradient descent, Momentum, RMSprop and Adam, and check for their convergence.
Material Covered
- Practical aspects of Deep Learning
- Initialization
- Regularization
- Gradient Checking
- Optimization Algorithms
- Optimization Methods
- Hyperparameter tuning, Batch Normalization, Programming Frameworks
- TensorFlow Introduction
Rating
Course 3 – Structuring Machine Learning Projects
The third course of the Specialization is very different than the other ones.
You will learn how to build a successful machine learning project and get to practice decision-making as an ML project leader.
At first glance, this course may seem irrelevant as you wouldn’t learn any new fancy optimization algorithm or architecture.
However, this goal is to understand how you need to tackle a machine learning project from the very beginning. As engineers, it’s too easy to jump straight into some nitty-gritty optimizations and lose the big picture of your ML-based system.
Prof Ng gives many examples of companies wasting precious resources on something doomed to fail due to reasons that are super easy to check upfront if you have the required knowledge.
This course will prepare you for such scenarios.
By the end, you will be able to diagnose errors in a machine learning system, prioritize strategies for reducing errors, understand complex ML settings, such as mismatched training/test sets, comparing to and/or surpassing human-level performance, apply end-to-end learning, transfer learning, and multi-task learning.
Material Covered
- Orthogonalization
- Single Number Evaluation Metric
- Satisficing and Optimizing Metric
- Train/Dev/Test Distributions
- Size of the Dev and Test Sets
- When to Change Dev/Test Sets and Metrics?
- Why Human-level Performance?
- Avoidable Bias
- Bias and Variance with Mismatched Data Distributions
- Addressing Data Mismatch
- Transfer Learning
- Multi-task Learning
Rating
Course 4 – Convolutional Neural Networks
This course is about Computer Vision and the neural network architecture that powers most CV models – Convolutional Neural Networks.
You will understand how Computer Vision has evolved and become familiar with its exciting applications such as autonomous driving, face recognition, reading radiology images, and more.
All these problems are very challenging real-life projects. They help the student practice building the required architectures. They are also a great jump start for a project of your own.
By the end, you will be able to build a Convolutional Neural Network, including variations such as Residual Networks, apply CNNs to visual detection and recognition tasks, use Neural Style Transfer to generate art, and apply these algorithms to a variety of image, video, and other 2D or 3D data.
Material Covered
- The Basics of ConvNets
- Convolution Model Application
- Deep Convolutional Models
- Residual Networks
- Transfer Learning with MobileNet
- Detection Algorithms
- Car detection with YOLO
- Image Segmentation with U-Net
- Special Applications: Face Recognition & Neural Style Transfer
- Face Recognition
- Art Generation with Neural Style Transfer
Rating
Course 5 – Sequence Models
In the fifth course of the Deep Learning Specialization, you will become familiar with Sequence Models and their exciting applications such as speech recognition, music synthesis, chatbots, machine translation, natural language processing (NLP), and more.
By the end, you will be able to build and train Recurrent Neural Networks (RNNs) and commonly-used variants such as GRUs and LSTMs.
You’ll apply RNNs to Character-level Language Modeling, gain experience with Natural Language Processing and Word Embeddings, and use HuggingFace tokenizers and Transformer Models to solve different NLP tasks such as Named Entity Recognition and Question Answering.
Material Covered
- Recurrent Neural Networks
- Language Models
- Jazz Improvisation with LSTM
- Natural Language Processing & Word Embeddings
- Operations on Word Vectors – Debiasing
- Sequence Models & Attention Mechanism
- Neural Machine Translation
- Trigger Word Detection
- Transformers
- Transformers Architecture with TensorFlow
Rating
Negative Feedback
In this section, I will share some of the most common negative feedback from my experience and collected from the discussion forums and course reviews.
Too Much Helper Code
Some of the labs are built to contain most of the code, and the student needs to “fill in the blanks.”
Sometimes you should literally write what the comment above the code block says.
This means there are cases when you can pass an assignment with very little overall knowledge on the subject matter.
However, I don’t think those are the majority of the cases. Plus, some of the material would be super challenging without such detailed guidance. Examples are implementing Backpropagation for Neural Networks, attention-based Sequence Models, Convolutional Networks.
I am pretty sure that if these specific labs didn’t have this clear guidance, they would have brought many more complaints and frustration among the students.
The Assignments Can be More Interactive
The courses are structured so that the assignments and the quizzes are at the end of every week.
However, there are certain weeks where there’s a lot of material, and the assignments don’t really test you on all of the covered topics.
Probably, it would be better if the assignments are a little more interactive and you have some small challenges regularly after every new concept is introduced.
Not Enough on Computer Vision and Sequence Models
The last two courses on Computer Vision and Sequence Models contain fairly complex materials.
It’s not a coincidence that some of them are pretty recent breakthroughs like the usage of Transformers and Attention Based architectures.
I spent a lot of time on these topics and reached out for many side materials until I started wrapping my head around them.
There are some complaints that those topics are taught too fast, but in my opinion, they are just one of the items that require additional effort and take some more time to sink in.
Summary
All in all, I think the “Deep Learning Specialization” is a great place to go if you want to dive deep into the Neural Network architectures and solve some exciting real-world challenges.
Make sure you give yourself enough time and be persistent. Try to absorb the material as much as possible, so you get the most out of your learning journey.
Good luck and see you next time!