My Personal Experience with the Deep Learning Nanodegree Foundation Udacity Course
After being inundated with the deep learning hype of 2016-2017, I’ve recently taken a journey to learn more deeply about this increasingly popular machine learning technique. Is deep learning just another tech fad, or is there really something there that will form a very important part of our daily lives? AI (and more specifically machine learning) is a field that fascinates me to no end, which is why I am pursuing my higher education in this area. An investigation was in order, so I looked at various online courses and decided to go with Udacity.
Udacity’s Deep Learning Nanodegree Foundation is a 3-6 month, paid online course geared towards individuals who wish to learn and apply the foundations of deep learning: from the underlying linear algebra and derivative calculus it uses, to the high-level CNN, RNN, and GAN architectures. This course is project-driven, whose projects are aimed at individuals who understand the basics of Python who want to show their prospective employers that they can apply fundamental concepts in deep learning to invent and implement artificial neural networks.
The program is split into 5 separate projects, and each project contains several video lessons from knowledgeable professionals in the field, along with lots of helpful text explaining everything one should know before continuing on. At the end of the lessons, an individual is expected to fill out an iPython notebook to solve a deep learning task for their project. The notebook is then evaluated; if all 5 projects are deemed acceptable, then they may graduate from the program. The first project established the underlying mathematical concepts, which culminated in implementing a neural network from scratch with matrices using Numpy. The rest of the projects involved building, training, and evaluating convolutional neural networks, recurrent neural networks, sequence-to-sequence models, generative adversarial networks, and much more. These projects all heavily encouraged the use of TensorFlow, Google’s open source machine learning library.
At the end of it all, I am very confident in applying my newly acquired skills in deep learning. I understand which types of networks are useful for which problem domains, and I also understand how to use TensorFlow to build them. As a natural consequence of being a machine learning technique, I also picked up a lot of helpful tips and tricks on setting up a proper experiment evaluating for some accuracy metric, and visualizing results. There’s plenty of cool stuff a neural network can do, some of which surprised me. For instance, here’s an excerpt from a recurrent neural network that generates TV scripts, trained on Simpson’s episodes:
moe_szyslak: you heard 'im, fleabag. get outta my bar, you're unsanitary.
moe_szyslak: oh, how precious. the cat's sittin' in my dinner.
moe_szyslak: no, the ocean. once you get twelve miles out, there's no laws at all. that's where you all their names written street, but then when i catch you, i'm going to pull out your eyes and shove 'em up your family and friends.
moe_szyslak:(displeased chuckle) who are you, sweetheart, the health inspector?
man_at_bar: no, but i am.
moe_szyslak: uh... what am i lookin' at? i don't see nothin'. i'm gonna stop looking soon... what... what? what? what are you, the person that called nasa yesterday?
homer_simpson:(with crowd) impeach churchill!
For a bunch of matrix math, it is quite impressive that neural networks can be so versatile. These models are still in their infancy, so much of the theory is on shaky ground. Neural networks can be very useful, but it is important to keep in mind that they are useful for very specific and controlled environments, much like other machine learning techniques. However, I can’t count the number of times that I have fired up a trained network and smiled at its impressive display of output. These things are fun to play with.
This is my first time paying for an online course, and I am impressed at how well this Udacity course was organized. The videos were on point and explained concepts at a reasonable pace. What I like about this kind of format is that it allows me to learn at a pace that is comfortable for me (I usually like it fast. I completed the six month course in one month). I’m also quite inclined to take the Udacity AI Nanodegree course in the near future. I would definitely recommend Udacity for getting into the industry with their portfolio-driven approach; I now have a GitHub repository to show any potential employers what I have built. At the end of the program, I also received a certificate of completion, continued access to all content, and a guaranteed enrollment slot into one of Udacity’s other machine learning Nanodegree courses (e.g., the Self-Driving Car Engineer Nanodegree Course). The Slack channel was especially helpful for answering questions and getting feedback from peers and mentors in the program.
The only downside to a traditional classroom setting is that feedback is not as dynamic. Although the course does have a Slack channel that have administrators that supply prompt responses, it still not as efficient in answering questions as personal conversation is. As I am a very independent learner who only occasionally needs to ask clarifying questions, this does not bother me that much (thankfully). But keep this in mind when considering any online courses: one must be motivated to keep pace with the material. Asking plenty of questions when anything becomes unclear helps enormously in this regard.
The entire reason why I chose this course (and went to college) is to make sure I am learning the right concepts, in the right order, and in a manner that I will retain that information. I have found that it can be tremendously difficult for me to motivate myself towards an open-ended goal (e.g., “Let’s learn about deep learning.”). But provide me a curriculum and a tiny bit of feedback, and it is off to the races. The course was just right for my learning style. Likewise for anyone else, one who enjoys a well-defined set of approachable goals would also enjoy this course structure.