
_Andrew’s Ng Deep Learning Specialization on Coursera is one of the most famous Machine Learning Courses online. Many Data Scientist or Machine Learning engineers have this specialisation listed on their Linkedin’s courses section. In this post we will explore its content, see what it is and what its not, and clarify all the hype around it. Lets get to it!_
I’ve recently finished this specialisation and wanted to share my experience, clear the fog, and clarify what it is, what it is not, and help others make the decision of whether to take it or not.
Note: I gain no benefit whatsoever for anyone enrolling on any Deep Learning course. The only goal of this post is to boil down this specialisation and provide an honest and in-depth review about it.
What is it?

The _Deep Learning specialisation_ by Andrew Ng is probably the most famous Machine Learning course on the internet. It is available on Coursera, and it covers everything and more of what you need to know to become a pro on Neural Networks: from their basic form, to how to structure Deep Learning projects and the state of the art networks for Image Recognition and Natural Language Processing: Convolutional and Recurrent Neural Networks.
It is divided in 5 different courses, each being about 3–4 weeks long. However, this duration is relative, as it depends on how much time you spend daily/weekly on the course. For me, I could generally manage to complete a week of one the courses in about half a week of my time, so I could finish one of the courses in a little less than 2 weeks.
One of the main advantages of these kind of courses is the flexibility they offer, so I would recommend you take your time to do it and try to interiorice the learning and test yourself on the content.
Who is it for?

This specialisation is for people that have a fair knowledge of Data Science and Machine Learning, as it explores a specific branch of Machine Learning: Deep Learning and Artificial Neural Networks. If you want to learn about general Machine Learning and take a first step into this world, there is another very famous course by Andrew Ng: The Machine Learning Specialisation, which you should consider taking beforehand.
Taking the Machine Learning Specialisation and then the Deep Learning one is a very fluid process, and will make you a very well prepared Machine Learning practitioner.
Prerequisites

In words of Andrew Ng in an interview with Lex Fridman (it is a fantastic talk, about AI, Education, and hard work, which I will leave bellow this paragraph), to comfortably complete this specialisation you need to know basic programming (in Python), and have a very basic understanding of math (even high school math are enough).
However, as I mentioned previously, from my point of view you will make the most out of this specialisation if you are already familiar with Machine Learning and its main concepts.
Contents

The specialisation is composed of 5 Courses, each divided into various weeks. These courses are the following:
- Course I: Neural Networks and Deep Learning. Explains how to go from a simple neuron with a logistic regression to a full network, covering the different activation functions, forward and backward propagation. The most fundamental information about how an ANN works is explained in this course.
- Course II: _Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization_. Despite not being an exact science, this course mentions how to tune the learning rate, the number of layers, and the number of neurons in each layer. Then regularisation techniques like dropout and Batch Normalisation are covered, to end with an optimisation section that discusses stochastic gradient descent, momentum, RMS Prop and Adam optimization algorithms.
- Course III: Structuring Machine Learning projects. For me, this course was the most helpful of all for a Data Scientist/Engineer. It is all about how to build your projects, get results quickly and iterate to improve these results. It gives delightful insights into how to diagnose the outcomes of our models so that we can see where the performance problem is coming from if there is one: small training set, different distributions of train and test set, over-fitting, and other problems are covered, along with their solutions.
- Course IV: Convolutional Neural Networks. This course is all about the State of the Art networks for image recognition. It covers how CNNs work, different styles of CNNs, and also details their origin. Then it explains the different use cases like object recognition, face verification, face recognition, or Neural Style Transfer.
- Course V: Sequence models. All about Recurrent Neural Networks: how they work, why they excel in some specific tasks over traditional networks, and the different types with their pros and cons. RNNs, LSTMs, GRUs are explained along with how they are used for tasks like speech recognition, Natural Language Processing and Time Series analysis and forecast.
Structure of the Courses

As mentioned several times before, the courses are divided into different weeks: from 3 in the shortest course to 5 in the longest. Each week contains several short videos (the duration can range from 3 to 15 minutes approximately), a quiz, and a programming exercise generally.
The videos start with a quick introduction, progress into a series of slides covering the technical content and finish with a nice summary of what has been explained, and sometimes a short notice for the following video. They are very educational and not hard at all to watch because of their duration. Some of them can be perfectly understood at video speeds greater than normal.
The quizzes have a test-like structure with single choice and multiple choice questions about the material covered that week. They are not extremely hard but you do need to have a good understanding of what has been explained, and to carefully play attention to the questions. In order to be able to progress in the course you need to get a mark of at least 80/100 in these tests, but you can do them as many times as you want so don’t worry about failing them.
Lastly, we have the programming exercises. They are presented with a notebook structure where the materials covered in the week are divided and explained, there are blocks of code for us to run without editing, and others in which we have to program a certain task. They are a great material to go over the theory of the concepts again, and to learn how to implement them in practice. Their difficulty varies widely: in the first two courses the notebooks are quite easy, and most times the code is almost given to you entirely. Courses IV and V have harder notebooks with Tensorflow implementations of the networks that will challenge you. Again, these notebooks are graded and you need a minimum grade to pass.
In the first courses, each week finishes with an interview called ‘Heroes of Deep Learning‘ where Andrew Ng speaks to a certain top personality of the field. This is a great addition and its definitely worth watching these videos.
Lastly, at the end of each course a certificate is handed to you, verifying that you have successfully completed it.
Overview and Opinion

I think the format, with short videos, quick true or false test and notebooks is great. Longer videos tend to feel tedious and never ending, and in this manner you can really feel like you are making progress. This is also good for clearly separating the different contents, and allowing the students to go into more depth into any of them if they want to.
Also, during the course, many practical cases are covered, and the lectures usually back up the theory with a real world example, which in my opinion helps a lot and is quite useful for consolidating the obtained knowledge. The third course is specially good in this sense, with real use-cases as exercises.
I also like that despite having a quite solid mathematical foundations, the lectures insist more on the different aspects each optimisation /structure/ method solves, rather than on these maths. It also makes a clear differentiation between training and application, which is a fundamental separation to create in our way of thinking in order become awesome Machine Learning practitioners.
Overall, I think the specialisation is a great resource to learn about Deep Learning and artificial neural networks. It contains a lot of material, and the quizzes and notebooks really test your understanding of the contents.
The only thing that I miss is a kind of final project maybe at the end of each course or at the end of the specialisation, where you have to code an entire project from scratch yourself, and it gets corrected afterwards by the revisers. I understand that because of the volume of pupils it is impossible to do so, but maybe some other proposals could be offered.
For me, it was definitely worth the time and money, and I hope I can put what I have learned to trial soon! If you are interested in doing it too, you can find it on Coursera. Enjoy it!
That is all, I hope you liked the post. Feel free to follow me on Twitter at @jaimezorno. Also, you can take a look at my posts on Data Science, Statistics and Machine Learning here. Have a good read!