My experience with Udacity Machine Learning Engineer Nanodegree
I completed the Udacity Machine Learning Engineer Nanodegree back in October.
Thanks so much to my employer Airteam for sponsoring my Nanodegree and investing in my education and professional education.
Anyway, here’s my experience with it.
Course format
This is an online course, with video lectures, and guided projects which are assessed by real people.
There are 7 modules altogether. Of those, 6 require projects to be submitted. After you submit a project, it gets reviewed, and you get personalised feedback.
Here’s what they teach you:
- Machine learning foundations. This is just an overview of machine learning algorithms
- Model evaluation and validation. This is how you would evaluate an ML model. That is, concepts like cross-validation, overfitting/underfitting, confusion matrix, metrics, etc.
- Supervised learning. Linear regression, logistic regression (they teach and call it the perceptron which is the same thing), naive bayes, decision trees, naive bayes, SVMs, ensemble methods (Adaboost, Random Forests).
- Unsupervised learning. K-means, hierarchical clustering, Gaussian mixture models, DBSCAN, PCA, ICA
- Deep learning. Multi-layer perceptrons (linear transforms, non-linear activations, gradient descent, backpropagation), convolutional neural networks, transfer learning. Some GPU stuff.
- Reinforcement learning. Classic algorithms like Q-learning, reinforcement learning in continuous spaces, deep reinforcement learning, policy-based methods, actor-critic based methods.
- Capstone. You need to submit a proposal for a project of your choosing, then you need to do that project.
There’s also some mentoring, but I didn’t make use of it.
Effort required
It can get pretty intense, but nothing in the course is really “difficult”. You will need to expect to put in a bit of effort and time to complete all the projects.
Quality of the lectures
Generally very high, but also all over the place.
Some of the units (machine learning foundations, model evaluation, supervised learning, deep learning) are some of the best quality lectures I’ve seen anywhere.
They’re truly amazing, and the video lectures explain concepts in a way that even someone with high school math can understand. The focus is on building intuition, and those units succeeded in that.
For some of the units, the quality drops a little bit. For example, some video lectures in unsupervised learning, like PCA were taken from other Udacity courses, so that might cause some minor confusion.
The PCA ones are actually pretty good (they’re also offered in the free ML course in Udacity by Sebastian Thrun). But there is a short unit on Independent Component Analysis that is recorded very poorly. The narrator for those ICA videos was clearly unprepared, swallows important words, and is generally inaudible. That’s a huge shame as that is one of the most interesting parts of the course. That being said, the same narrator did the video series for hierarchical clustering, and that was pretty good.
Reinforcement learning is a bit of a difficult module. Where the earlier units focused on building intuition, the RL ones are very mathematical. Sometimes it feels like the videos just narrate the equations, which is pretty pointless. That being said, I’m not sure there is a better way to teach this material.
Very short deep learning section
I was very, very disappointed that the deep learning section was so short.
The deep learning section stopped at MLPs and CNNs. There is a whole bunch of interesting things that could have been included particularly those related to NLP/sequence models, like Recurrent Neural Networks (RNNs/LSTMs/GRUs), attention mechanism, word embeddings.
There’s also generative adversarial networks and style transfer which are not included.
Anyway, that material seems to be offered in the Deep Learning Nanodegree (which I didn’t take), and the free Intro to Deep Learning with PyTorch course.
Is it worth the money?
Probably. I enjoyed the course very much, and found it of generally good quality.
When I enrolled it was a 6-month course worth AUD$1250. I think it was worth it at the time, even though it was very generously sponsored by my employer Airteam, instead of me paying out of my own pocket.
However, now it is a two-term course, at double the price. It’s now AUD$1250 for each term, about AUD$2500 in total. I would honestly struggle to recommend this today at that price.
I’m also torn, as Udacity courses tend to become more expensive as time goes by, so if you don’t enrol today there’s a high chance it will become even more expensive.
If you’re thinking of doing this nanodegree but are worried about the price, I would advise you to take a quick scan of the syllabus and see if you can learn the material elsewhere. That requires a lot of discipline, especially doing projects yourself.
Anyway, in the long run AUD$2500 is probably not a large amount of money to invest in yourself. You won’t get a job in machine learning doing just the nanodegree by itself of course, but the material is high quality, and the guided projects and feedback are great. It’s a great starting point to start your career.
If you have any questions about my experience, feel free to let me know!