I followed the ‘Deep Learning’ course developed by Google, freely available on Udacity over the past couple of weeks. In a brief summary, the course provides a nice overview about the ‘hot’ field of Deep Learning including a set of interesting coding assignments. The course does, however, not replace reading a textbook/the papers introducing the topics presented to understand the theory.
The course covers roughly the following topics: intro to neural networks (NNs); logistics classifiers and (stochastic) gradient descent; deep NNs; regularization; convolutional NNs; embeddings; long short-term memory recurrent NNs. Furthermore, basic ML concepts such as splitting your data into train, test, and validation set are explained.
It consists of 4 lessons with ~10 short, 2-3 minute videos and a total of 6 programming assignments. The videos are presented by Vincent Vanhoucke, Principal Scientist at Google, and contain lots of simple drawings which make it easy to understand the course materials. I spent about two hours watching and summarizing the videos in each lesson and 2-3 hours on each of the assignments.
Speaking of the course assignments: The assignments come as Jupyter notebooks hosted on GitHub. This makes it really easy to understand how the different pieces of code provided by the course organizers fit together.
Overall, the assignments provide a great intro to Google’s ML library TensorFlow. If you are short on time, simply looking at the code provided for the assignments will give you a basic understanding of how deep NNs can be implemented using TensorFlow.
The problems presented in the assignments are quite interesting, e.g., classifying characters in the notMNIST data set. One drawback is however, that not a lot of effort was made to clearly specify the sub-tasks in each assignments. This will force course participants to spend quite some time searching the course forums for clues. This is not a huge problem since the course forums are quite active but this is something that could definitely be improved in coming iterations of the course.