ML & DL Learning path

Source: Deep Learning on Medium

A guide through the myriad online courses & MOOCs available for ML & DL

You could be lost even before you begin

Following up on my earlier post on the transition I made from Business Intelligence to Machine Learning world, I’d like to share my learning experiences from the many online courses that I took along my path. I believe some direction on the order of these courses would help newbies who are interested & curious about machine learning & deep learning a great deal. In addition, I’d also add pointers on the degree of difficulty I encountered in completing some of these courses(and not completing some of them).

Before diving into the details, let me share the guiding principle for me in choosing the below courses — choice of programming language. When I began doing these courses a few years ago the machine learning community widely adopted R or Python as a programming language. (To a certain degree, R was ahead in the race back then) I even began with a course on ‘R programming’ to get introduced to R. But I believe, Python caught up with R soon in terms of the available libraries for machine learning & advanced analytics and soon gained popularity. In addition, I believe Python is a better language for a data scientist/analyst because it is a versatile language that gives one ability to code up projects in a wide range of areas — machine learning, big data programming on Spark, text mining & natural language processing, Pytorch for deep learning et al.(One can even code web applications using Python frameworks) In addition newer frameworks that keep coming into the industry such as h20 etc support python APIs owing to its popularity among the coding community. Btw, I’m not suggesting that people who chose R cannot learn as much, but knowing python gives the advantage to cross-over to related frameworks easily.

Machine Learning Courses

  1. Machine Learning by Stanford — Andrew Ng
Machine Learning by Stanford

This, I guess is the defacto place to start your journey in machine learning with the guru (Andrew Ng) himself delivering this course. Very few can explain the concepts as clearly as he does. This course will ground you on some of the fundamental techniques in machine learning/advanced stats such as linear/logistic regression. He explains the concepts using the example of house price dataset if I remember correctly.

I did not complete the course though as it required the exercises to be completed in a language called octave which I believe is similar to Matlab and I was too lazy to pick up a new language in order to complete this course. Nevertheless, I’d recommend this to be your first stop in your learning path.

2. Machine Learning Mastery with Python-Jason Brownlee

Machine Learning Mastery

Jason Brownlee is among a few experts in the field (Jeremy Howard is another) who advocates a top-down approach to learning ML. He comes with a PhD himself but strongly advocates that it is not necessary for one to be a PhD to be a successful ML professional and the primacy is know-how to apply different algorithms on data for results. Later, delve deeper into the nuts & bolts of an algorithm.

His site is one of the first urls that you’ll come across for searches related to ML in python and offers some really useful resources for learning. He offers e-books on machine learning/deep learning using python and I got my first taste of scikit learn python library through his e-book on ML, “Machine Learning Mastery With Python”. In addition to using scikit learn library, one would also learn the typical process to follow in an ML project life cycle illustrated with a publicly available dataset.

Expected Study time — 2–4 weeks, if you plan to spend about a couple of hours a week. If you are really hooked onto it, you can breeze through it over 1 or 2 weekends. You can always use this as a reference book for any of your projects in future

3. Machine Learning Specialization by the University of Washington. Instructors — Carlos Guestrin & Emily Fox

Machine Learning Specialization

Once I got the understanding of applying ML algos on data using python library — scikit learn, my search for a ML specialization course using python lead me to this course. The instructors are Carlos Guestrin & Emily Fox who co-founded Dato that got acquired later by Amazon and they are distinguished professors at Univ of Washington in CS department.

This is a four-part course covering fundamentals of ML, Regression, Classification & Clustering. The regression course walks through the concepts of a simple, multiple linear regression with the help of housing price dataset in Washington. The classification course walks through core concepts of this type of algorithms focussing on Linear models and non-linear models using decision trees. Carlos G explains the concepts so lucidly and uses primarily intuition to develop an understanding of the decision trees and glm models. He uses publicly available Amazon consumer reviews to predict the sentiment of the review using the classification technique. (His illustrations are so vivid that I can still remember the Giraffe toy whose reviews he uses for classifying sentiment)

Most of the solutions that one would encounter in real-life would fall under the classification problem domain, for eg, modelling customer churn, customer propensity to products, advanced text classification et al, so if it helps one may do just the classification course.

Expected Study time — 8–12 weeks for each part

4. How to Win a Data Science Competition: Learn from Top Kagglers-Coursera

how to win DS competition?

This is a great course for ML engineers who aspire to win in competitions. I found many novel, practical concepts that one wouldn’t find in books and other courses in this course. This, I think is the ultimate practical guide to winning ML competitions like Kaggle taken by top Kagglers.

A couple of useful concepts I can recall from this course are Mean factor encoding, data leakages. I couldn’t pursue this course to completion since I couldn’t find much time to take part in competitions, but I would certainly recommend this course.

5.Practical Machine Learning on H2O by H2O — Coursera

This is a course offered by H2O, a company that offers its own open-source machine learning/AI framework/ libraries for faster computation on distributed computation frameworks such as Spark. It is voted as a visionary in Garner’s magic quadrant among vendors who offer ML framework. Given the wide adoption of this framework currently, it certainly helps to add this framework to one’s repertoire. I wish I’d more time to complete this course as well, but would highly recommend it.

Deep Learning Courses

  1. Deep Learning Specialization(

This is a suite of 5 courses on Deep Learning, starting with starter course and covering all major types of DL networks — CNN, RNN. This one is delivered by Andrew Ng with his famous quote that ‘AI is the new electricity’ and throughout the course, he draws on his experiences from Baidu. In addition to course content, he also shares his interviews with the top names in deep learning & AI field including the likes of Andrej Karpathy, Ian Goodfellow etc under the title ‘Heros of Deep Learning’.

In the starter course, he covers the basics of neural nets and implements a working example using the numpy library. Later he’d do the same using tensorflow library with tensors. From there he covers CNN topic and explains the concept of image classification, object detection, facial detection among other things. Finally, he finishes it with sequence models (RNN) and its applicability in the field of natural language processing, NLP.

Even though there are hand worked examples using tensorflow, since I chose Pyspark as my library of choice for deep learning, I focussed less on the hands-on exercises from this course.

Expected Study time — 8–10 weeks per courses

2. Practical Deep Learning for Coders —

Jeremy Howard & Rachel Thomas co-founded the company that specialises in deep learning training content, library that does to pytorch what Keras does to tensorflow . It is a library that highly optimizes the code needed for deeplearning applications. Before sharing information on the course, it’s worth mentioning about Jeremy H coding principles.

Jeremy H, similar to Jason Brownlee comes from the ‘top-down learning approach’ school of thought that advocates to practice the practical aspects of applying deep learning before diving deep into the nuts & bolts of it. He, in fact, quotes examples of how wrong it is to learn up Deep Learning using a bottom-up approach. One cannot possibly learn statistics, math or a PhD in computer science and everything else related to it, before embarking on deep learning journey. He was a #1 ranked Kaggler and is a classic example of why one need not have a PhD degree to make a mark in Deep Learning application & research.

There are about 7 parts to this free course and each one handles a different topic in deep learning including NLP, CNN, RNN et al. He is one of the reasons why I felt reassured to choose pytorch as the library of choice for deep learning instead of tensorflow, as according to him and other greats like Andrej Karpathy, pytorch makes coding simpler vis-a-vis tensorflow. Moreover according to Jeremy H, every researcher he respects uses Pytorch for their research purposes. Besides it helps that it is based on pythonic flavor making it easy for any python machine learning engineer to pick up quickly.

Expected learning time- It would take about 2 weeks to complete 1 part if one wants to do justice to the content. Although I must admit that I merely sifted through some of the content as I wanted to get a sense of content quickly. I’d certainly like to use it a source of reference for projects.

3. Deep Learning Nanodegree -Udacity

Udacity DL Nanodegree

My drive for deep learning intensified after taking Jeremy Howard’s course on deep learning and my search for a pytorch based certification course landed me to this one. Udacity offered this course originally in tensorflow but owing to the success pytorch was seeing among the research community, the content was shifted to pytorch. Another instance that strengthened my choice of Pytorch and besides Pytorch saw the second most significant updates among all open source projects in the year 2018 greater than Tensorflow.

This course is offered by multiple instructors covering the basics of neural nets and deep nets. From there it covers all important topics such as CNN(Convolutional Neural Nets) used primarily in image classification tasks, RNN(Recurrent Neural Nets) used in natural language processing tasks, GANS(Generative Adversarial Neural Nets) and about deploying deep learning models at production scale on AWS.

The cool part about this course is the projects that one gets to work on for each of the above topics. One gets to code up applications that can classify a dog breed from its image(CNN), automatic generation of tv script (RNN), create fake facial images using a set of faces (GANs), deploying a sentiment classifier model on AWS and accept reviews and return responses real-time.

Expected learning time- 4 months–nd101

4.Practical Deep Learning with PyTorch — Udemy by Deep Learning Researcher, NUS

Udemy — Pytorch Course

While I was looking for content on pytorch training, I chanced upon this course on Udemy and started skimming through it. Although most of the concept might seem like it is repeating, I found it to be helpful in getting hands-on practice on pytorch and some of the concepts were explained with a different intuition.

For eg, the instructor explains the concept of a feature-map in a convolutional layer (aka filter) and how it gets its name, very intuitively. In my view, some times alternating perspectives of the same topic enhances the understanding of the concept and thereby its recall.

Expected Learning Time- 2–3 months

Thanks for reading through this post, I hope you found this useful. I’d like to follow this up with another post on blogs, youtube videos & podcasts that I found worth it listening to.