I have recently completed Deep Learning paid course offered by Udacity. Udacity provide the course every month. I had enrolled for May cohort. It was a 4 month course consists of 5 important topics /modules of the field.
Each module is supported by many mini coding exercises, quizzes and final assignment. The assignment needs to be completed in terms of all the requirements that are given by Udacity. Once you complete all the assignments for each module you will be graduated and soon after verification you will get the Udacity certified certificate.
Also, Udacity has made all the assignment such that it only focuses on the implementation part of the things that you learned in that module. The supporting things such as data pre-processing etc will be already provided in the assignment Jupyter Notebook. So you only need to focus on the things which matter a lot. Each module comes with a soft dead line just as a reminder. It was meant to be followed but not mandatory. The final dead line of the course needs to be stringently followed. Also, in case if a candidate is not being able to complete some of the assignments, then Udacity will provide 28 days extension to complete all the pending assignments.
The assignments when submitted are review by experts and they will provide detailed feedback on the submission. What are the areas of improvement, what are the best parts of the submission, some of the articles to enhance our knowledge for better understanding etc.
As the field of Deep Learning deals with lot of data, we often need great computing power for the course assignments and small coding sessions. For that Udacity provides 100 $ credits for Amazon Web Services. Also, they provide dedicated module on how to setup the AWS EC2 instance to make it ready to use. The best part is that the 100 $ credits can be used even after the completion of the course.
Regarding the prerequisites, Udacity wants the candidate to have basic knowledge of Python and Mathematics (e.g. Linear Algebra, Calculus, Probability). You don’t need to be an expert Mathematician or expert in Python. You just need enough to understand the basic underlying concepts. Whenever you will encounter something new, just google it and learn that portion. Simple.
As I mentioned the course is divided in following parts.
- Artificial Neural Network:
- As this was the first module and foundational module, they explained each and every thing in detail. How the intuition behind neural network developed, how I can visualize neural networks as universal function approximators, how data has been feed forward to neural networks and back propagation happens in neural networks. Also, the important topic which is backpropagation was taught in detail and in the final project I was asked to implement it from the scratch using numpy only. That had boasted my confidence.
2. Convolutional Neural Network:
- In the second module, I was taught about convolutional neural networks which deals with Images as an input and finds pattern in the images. In this module, I was also taught about TensorFlow library which is widely used. There were mini coding sessions and quizzes which helped a lot to digest heavy concepts. The assignment was to create a Dog App to identify whether the provided image contains dog or not and if it contains a dog then what is the breed of the dog. It was a challenging task. Here I had made multiple failed attempts till my assignment was successfully submitted.
3. Recurrent Neural Network:
- In this module, I was taught about Recurrent neural networks which deals with time dependent data instead of static data. Here I was taught about BPTT — Backpropagation Through Time — underlying concept for RNNs. Along with RNNs I was taught about limitations of RNNs, a better RNN which are LSTMs and GRUs. In the assignment we need to generate TV script based on the given data set of Simpson’s conversation. Loved this project.
4. Generative Adversarial Networks:
- The GANs are the coolest part of this course. They were proposed in 2014 by Ian Goodfellow and he was teaching this module (How coooool!!). I felt that I was learning something cutting edge technology. The best part was assignment. We were supposed to generate human faces based on CelebA dataset. Here, I was fortunate that I had AWS credits as it took a long to train on my local machine. It took me multiple attempts to successfully submit the assignment. The best part was that they had provided a stringent criterion of single epoch on training which was very crucial and challenging. Loved this project.
5. Deep Reinforcement Learning:
- In the start of this module, I thought that the things which are taught not related to Deep Learning. But as I proceeded further to the section of Deep Q Learning, I get to the importance of initial concept building. They also taught concepts and taught about implementing them in OpenAI environment (Which was a big plus as it is currently used by researcher). Here I was also taught about Actor Critic method and DDPG methods which were proposed couple of years back. Here also I felt like I am actually learning something cutting edge technology. The final assignment was to make a Quadcopter fly using Deep Reinforcement learning algorithms that had been taught. Here as the task was difficult to achieve, they provided number of resources and provided less stringent criteria to implement the concept successfully.
Overall, I would definitely recommend this course as it has number of benefits over other paid courses that are available on internet. To summarize, following are the key benefits.
1. Curriculum was designed by some of the best industrial experts
2. Concepts were taught in details and they had provided support of forums where people can post and solve each other’s queries.
3. The modules were perfectly designed and consist of mini coding sessions, quizzes and final assignment at the end of each module.
4. They provide 100 $ AWS credits for the term exercises.
Link to the course: https://in.udacity.com/course/deep-learning-nanodegree–nd101
Happy Learning. Peace. :D
Source: Deep Learning on Medium