A review of Udacity’s Machine Learning Engineer nanodegree
You can say I'm into AI. I've published a couple of papers on the subject and worked with Game AI before. Moreover, I've taken the original AI and ML classes offered by Stanford University back in 2011. Still, I felt my memory could use some refreshing, and decided to give the program a shot.
There are some reviews of other nanodegree programs on the Internet, so I'm going to talk about the Machine Learning one specifically.
The trial period
One piece of information I didn't know before was that all nanodegrees have a trial period of one week. You can use to, for example, do a sprint on a weekend and try to figure whether you like the program or not.
Coaching & career center
This is probably what sets Udacity's courses apart from traditional MOOC offerings. They have someone who you can talk to to help you on understanding the content and talking about projects. Also, feedback for the submitted project came incredibly fast.
This kind of support may be particularly useful for people starting their professional lives, or changing careers.
They also have courses teaching how to write resumes and to set up your LinkedIn and github accounts. This is nice and such, but I don't see so much value in it for me.
Last but not least, they have something they call the “career center”, with links and tips on how to succeed on interviews and all that stuff. I won't be able to see whether that gets constantly updated (does it ever need to?), so I wonder whether the value of these features wouldn't decrease for people that took more than one nanodegree.
Course content
The course's content comes mainly from two courses: Udacity's Introduction to Machine Learning and Georgia Tech's Machine Learning course, part of the online master's degree they have. As Udacity states in their page, you can access the course contents without having to pay anything, one thing they don't mention, though, is that the content for the projects of Georgia Tech's courses are not freely available. Nor are the nanodegrees’ projects, which is weird, since they encourage students to publish their projects to github, which requires some context for the code to make sense. But I digress… The idea from drawing from the two courses is nice, because the former focuses on more practical aspects, while the latter give a little bit of a theoretical treatment to some topics. The organization is, alas, a bit confusing and repeats (slightly different) explanations1.
Udacity also assumes, appropriately, that you know some statistics, and provide content from the Intro to Statistics course and a few lectures from the original AI class to refresh your AI knowledge.
Classes
I've catalogued all classes required for projects 2, 3, and 4. Honestly, to do project 1 with a complete understanding of what you are doing, you need to watch stuff that belongs to project 2. That's weird, but acceptable, since I already had some knowledge with sklearn
. You can check my solution of project 1 at the github repository. The list of classes is available below.
Requirements for project 2
Using supervised learning to build a Student Intervention System.
- Decision Trees
- More Decision Trees
- Regression & Classification
- Regressions
- More Regressions – This one is not fun, leave it alone
- Neural Networks
- Kernel Methods & SVM
- SVM
- Instance Based Learning
- Naive Bayes
- Bayesian Learning
- Bayesian Inference
- Ensemble learning
Requirements for project 3
Using unsupervised learning to create customer segments.
Requirements for project 4
Using reinforcement learning to train a smart cab how to drive
- Markov Decision Processes
- Reinforcement Learning
- Game Theory
- More Game Theory beginning at Stochastic games and Multiagent RL
Projects
So far, I've only implemented the first project, which deals with using kNN to predict house prices, and I liked it. I'm yet to see how the other projects will turn out to be. What I can say for now is that, had I taken some of these classes before, I would've been saved of the pain of learning some concepts the hard way. Another thing I can say is that the final project of the Introduction to Machine Learning seems quite interesting and, perhaps, even more interesting than the ready-made projects from the nanodegree. One exception to that last comment might be the capstone project, which will only be publicized in November 23rd, 2015 and, therefore, I won't be able to see what it is about.
Update: Udacity has a repository on github with the code specifications for all projects. You can clone that repo to work on the projects, in case you choose to follow the course using the free alternative.
Conclusion
There is some good value in the program especially if you are a new grad, or is trying to build a portfolio to break into the computing industry and need guidance from more knowledgeable people. If you have had exposure to machine learning before, maybe you could just watch the lectures as a refresher and implement whatever you want to. The very idea of having an open-ended final project made me think about many interesting things I may want to implement one day for fun and profit, and perhaps subscribing to a course like this may be the incentive you need to implement your dream project.
*[AI]: Artificial Intelligence *[ML]: Machine Learning *[MOOC]: Massive Open Online Course *[kNN]: k-Nearest Neighbor
Perhaps this is good if you're just learning the concepts, but this was not what I felt.↩