I’ve always found it painfully ironic that despite attending one of the world’s
leading artificial intelligence research institutions, my undergraduate
experiences with AI and machine learning courses at Carnegie Mellon were
disappointing.
A lot has changed in AI/ML in the decade since I graduated. Last summer I did
the (excellent) Udacity Artifical Intelligence
course taught by Peter Norvig and
Sebastian Thrun (who, more irony, was at Carnegie Mellon when I was an
undergrad). And today I finished Andrew Ng’s Machine Learning
course on Coursera, which has been my primary focus for weeks 4-8 of my
RC batch.
I’ve heard the same reticence from other Recursers that I initially felt about
spending time at RC doing a MOOC, but I’ve found it deeply rewarding. RC is a
great environment for maintaining focus, and once I got over my fear of not
typing sufficient keystrokes and watching videos while others around me are
engaged in more voluminous hacking, I embraced the external structure and
purpose the course provided.
Ng does a great job of explaining how to turn concepts and math into code, and
spends as much time on practical advice for implementing and getting good
results from the algorithms as he does on the theory. Every programming
assignment has an automated grading system, which makes feedback immediate. My
only complaint might be that the assignments provide so much of the boiler plate
(which lets the students focus just on the particular concept being taught) that
I didn’t get any experience writing the code to load the data and plumb it
between the various components of the learning algorithms – stuff that isn’t ML
specific but is absolutely crucial to doing machine learning in practice.
Topically, this course is super relevant for the interests of a lot of current
Recursers and for the conversations happening around the space.
Ultimately, my goal was to learn the details of the math underlying common ML
algorithms, and to practice turning that math into real code. I didn’t want to
learn how to use the tools without having an intimate understanding of the
underlying concepts. With this knowledge in hand, I’m going to jump into a
deep learning course (I’m considering few), with the same goals – understand
the math and theory, and then get practice implementing them with the real
tools.
While I’m at it, part of why MOOCs in general and this MOOC in particular have
worked really well for me is that video is a much better medium for learning for
me than attending lectures. I struggled to stay awake in all of my lectures
in college. I watched all of these videos at 1.75x playback rate, which
allowed me to get through them faster, while staying more focused. And
random-access playback lets me go back over anything I missed or need to review.
(One more thing – I usually have music playing softly in my headphones at the
same time. For some reason, that has made it easier to focus during long
stretches of video.)