I just completed Udacity’s Machine Learning Engineer Nanodegree, here’s what I think of it…
Two weeks ago, I completed and submitted my capstone project for the Udacity Machine Learning Engineer Nanodegree Program, so I would like to share my experience with others considering the program. The whole program took me 5 months to complete, which is a decent run considering that I have full time job with travel. According to Udacity, the average completion time is 6 months, but they also give you up to 12 months, just in case. I will start by sharing my overall experience and then in future posts I will dive deeper into each project, explaining the more technical bits, complete with Python code and comments. Some of the projects include learning more about customers through customer segmentation; predicting house market prices; training a self-driving car; and using deep learning to classify images. I will write more about this here and on my new blog, which is still under construction.
Overall, I highly recommend this program to anyone who is serious about data science and machine learning, especially if you are a self-motivated learner who needs the flexibility of an online platform so that you can keep your day job while you improve your knowledge. I completed all 7 parts of the core curriculum (6 projects and an original capstone of my choice). The content covered significant ground on supervised, unsupervised, reinforcement and deep learning. The material was thoroughly presented with enough background to get even a beginner up to speed. However, you should at least have taken some Python courses and/or a data analytics or statistics course beforehand, otherwise you will hit the wall quite often and quite hard given some of the more complex parts later in the course. Personally, I already had some machine learning knowledge from reading the book An Introduction to Statistical Learning in R and taking introductory python courses from MITx on EdX.Even with prerequisite knowledge, you may still have some sleepless nights, but that is pretty normal in this field, and it is always worth it if you stick with it and push through. Generally, all of the projects were well-curated and logically presented to take you from introduction to understanding and practical implementation of the models in reasonable time.
The Nanodegree also offered some career-related tools such as resume review, tips on using Kaggle and advice on interviewing and updating your likedin profile but I honestly didn’t use these much as my goal was to squeeze as much as I can from the core machine learning content. Another program feature was getting a mentor to help you chart your program completion plan and check in with you when you hit roadblocks. However, I only got a mentor in the first couple of weeks and then got a message saying that I had completed the mentorship program, but it wasn’t clear why or how. I suspect it was because I appeared quite well-prepared given my background and performance on the first couple of projects. So I can’t really say I benefited from the mentoring aspect. Again, to be honest, I don’t think I needed a mentor per se, but I did need the really good, personalized and quick feedback to improve my core skills. This is really where Udacity shines! I got feedback sometimes within 30–45 minutes and reviewers left no stone unturned in terms of pointing out areas of improvement and additional reference materials.In fact, the feedback was so good, I saved it and I go back to it frequently to brush up on tricky concepts.
My personal Frustrations
I was, however, slightly disappointed by the project on deep learning and convolutional neural networks as it was literally quite convoluted, pun intended :). The first version of the leacture materials for this project was very hard to follow and felt like a hodge-podge of different pieces strung together. Granted, this topic was and still is new and changing quickly, but it could have been presented better the first time around. However, by the time I completed the Nanodegree, there was already a new set of more homogeneous lesson materials, using Keras instead TensorFlow as the main library for the models. This was a welcome change since Keras is more intuitive than TensorFlow, but the change came a litte too late for me :( . Nevertheless, I should add that even though it was hard to sort through the some of the strung-together lessons and climb the steep TensorFlow Learning curve, I ended up learning a lot more by cross-referencing with other materials such as the Stanford class CNNs for Visual Recognition (CS231) and the Fast.ai Practical Deep Learning for Coders.
The moral of this post is that if you are thinking of starting this program, go for it! Make sure you meet the prerequisites (Python, Statistics and Linear Algebra) and you will definitely come out wiser on the other end. I got value for both time and money. There are only a few programs with this level of high-quality material, instruction and a comprehensive feedback/review system. I am glad I spent my nights watching the videos, taking notes and coding it up. I also have a cool certificate to show for it:). I see this as only getting my feet wet and I am looking for the next level material. I have already begun to use my new machine learning skills at my current job and I will share some non-sensitive examples in the future. Until next time, happy coding!