Absolute Beginner’s Guide to Machine Learning and Deep Learning

Okay, so you must have heard the buzzword around Machine Learning and Deep Learning and want to dive deep into it. Good. We need more people with Machine Learning skills. But the question is, how do you get started?

Worry not, here I will guide you through your journey from an absolute beginner to an actual beginner 😜. What! We are all learning. So, buckle up, the journey will be fun and thrilling.

Disclaimer: This guide is based on “my personal” favorite methods to learn Machine Learning. I have been trying-failing-succeeding in MLDL (Machine Learning and Deep Learning) stuff for last 8–9 months. So, I am also a beginner, not too different from you, and my advises are not foolproof. There are many experts who might have better ideas. If you find some way that works better than mine, please suggest in the comments, I’d appreciate that.

What Time Is it ⏰?

4~5 Months:

Part 1: Start With Machine Learning, 2 months

Coursera Machine Learning course is suitable for any level of learners. If you know how to multiply two matrices, and have some basic understanding of any programming language, you are good to go. The course will teach you everything else on the way. Dr. Ng is a wonderful and inspiring teacher, such that I literally cried when the course ended. This course has weekly programming assignments and quizzes almost every week. The programming assignments are done in MATLAB/Octave. But no worry if you are unfamiliar with MATLAB/Octave, they will teach you on the fly. I can’t stress it enough, DO THE PROGRAMMING EXERCISES! You’ll learn as much from the exercises as from the lectures.

This course will dive into classical Machine Learning models such as Linear Regression, Logistic Regressions, Neural Networks, SVM, PCA, Unsupervised Learning and many more. This course touches most of the important concepts in a very easy and understandable manner.

Edit: I recently looked into Udacity Intro to Deep Learning course. It looks pretty good for getting started fast.

Expanding The Horizon: By the time you start Neural Network on week 5 at the Coursera course, you should start looking at some outside resources in parallel with the course. First, there is a *FANTASTIC* YouTube playlist by 3blue1brown on Neural Network, it’s a must watch.

Neural Network Playlist

I think the Coursera course rushes the Neural Network part a little bit, which deserves more attention. There is a fantastic free online book on Neural Network and Deep Learning named, guess what, neuralnetworkanddeeplearning.com!

The author Michael A. Neilsen dives real deep into every small part of Neural Network but in a very easy and intuitive way. He will also walk you through a Digit Recognizing python code that has an accuracy of 97+%. I recommend you read first 2 chapter of this book, in parallel with the Andrew Ng course. By the time you will be familiar with many of the concepts, so you can skim through the part you already know. You can, and should attempt the rest of the book when you will start Deep Learning. Have patience, it’s going to take time, But it’s worth it.

Once you go through this, now many of the concepts in Machine Learning and Deep Learning literature will start making sense to you. For fun, head over to Chriss Olah’s blogs, they’re awesome!

Part 2: Deep Learning, Here I come (1 month)

There are many resources online on Deep Learning. So many that it’s hard to focus. My best pick is to start with Andrew Ng’s Deep Learning specialization.

Note that this specialization is a collection of 5 courses, and they are not free. You can buy it for $50/month, but if you can’t afford that, they have very generous financial aids. But plan ahead while applying to these aid, because it takes about 15 day to process. Make sure to show a good reason why you need the aid in the application, and they will accept it. If you apply for an aid for a course, make sure to complete it and get the certificate. Even without buying this course, or getting a financial aid, you can access most of the course materials. Go to a course page, click “Enroll” and then “Audit this course”. Most of the videos are also available in YouTube for free.

The 5 courses in this specialization are:
1. Neural Networks and Deep Learning (4 week course)
2. Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization (3 week course)
3. Structuring Machine Learning Projects (2 week course)
4. Convolutional Neural Networks (4 week course)
5. Sequence Models (3 week course)

First 3 courses are for Neural Network and Deep Learning in general, 4th and 5th course goes into specific topics. If you plan to work on Images, course 4 is what you need. And if you want to work on sequence data, such as, Natural Language Processing (NLP), audio, or time series data, course 5 is for you. But if you need course 5 only, I would recommend you skim through course 4 as well. Some important details are described there. But in general, the recommended way is to do all 5 courses, in the given order.

Timing: If you are working full time on these courses, I think it’s possible to finish each week’s content in 1~2 days. So don’t get intimidated by the schedule. But give yourself some time to breathe between courses.

It’s also time to read Chapter 3, 4, 5, 6 from neuralnetworkanddeeplearning.com to strengthen your concepts. I think the 4th and 5th course of the Deep Learning Specialization is also a bit rushed. If you get stuck in any concepts, head over to Olah’s blog, Google, and read related papers. Yes! You need to read papers to learn Deep Learning. One of the most fascinating thing about many Deep Learning topics is they are very new. Many only 2~3 year old. So you won’t often find good tutorials for them. In those cases, reading the papers will be your only way. And also, the field of Deep Learning is constantly changing, and nobody knows where it’s headed. So, better make a habit of reading papers to stay up to date with the Deep Learning world.

Part 3: Practical Implementation of Deep Learning (1~2 months)

Fast.ai has a wonderful resource for practical Deep Learning.

They built a library on top of a popular Deep Learning tool named PyTorch, which gives world class performance in few lines of codes. The philosophy of fast.ai is a bit different. While Andrew Ng or others teach in a Top down approach (know first, do later) fast.ai teaches in a bottom up approach (do first, know later). You will build world class image classifier in the first lecture! The excitement of training your own model will get you going for the rest of the course. The instructor of this course Jeremy Howard hold’s one of the highest rank in Kaggle (Kaggle is kind of like CodeForces for Machine Learning).

Two other courses I would mention is CS231n and CS224n by Stanford University. CS231n is focused on computer vision with Deep Learning, and CS224n focuses on Sequence Modeling such as Natural Language Processing with Deep Learning. If you are interested in specializing on these topics, you should take the respective course. I am yet to take these courses, so I cannot provide much details for now.

So this is the end of my 3 part recommendation to Machine Learning and Deep Learning. It’s about a 5 months schedule. But what if you don’t have the time? It is important to take time and have a clear understanding of the concepts of ML and DL. But if you must do quick, here’s my best guess what you should do:

2 Months or Less:

  1. Watch the Neural Network playlist from 3Blue1Brown YouTube channel.
  2. Complete Course 1 (Neural Networks and Deep Learning) from Deep Learning Specialization in Coursera. Do the exercises.
  3. If you want to start an Image Processing project, take the 4th course in Coursera specialization, or if you want to work on Natural Language Processing or sequence data, take course 5.
  4. Search for open source implementation and YouTube videos of projects that you are interested in. If you are concerned about which language to use, I think it’s good to stay with Keras (with Tensorflow backend) for a while. Later you can move to Tensorflow or PyTorch, depending on your needs.

1 Month or Less:

  1. Skim through Coursera Machine Learning course Week 1 to 5. Just watch the videos, grasp the concept. You can skip the MATLAB/Octave tutorials in Week 3.
  2. Watch the Neural Network playlist from 3Blue1Brown YouTube channel.
  3. Skim through Course 1 (Neural Networks and Deep Learning) from Deep Learning Specialization in Coursera.
  4. If you want to do an Image Processing project, read the chapter 6 from Nielsen’s book: http://neuralnetworksanddeeplearning.com/chap6.html
    Or if you need some idea about Sequence Modeling, head over here to Olah’s blog: http://colah.github.io/posts/2015-08-Understanding-LSTMs/
  5. Siraj Raval has some interesting video’s to give you a gist of most ML and DL topics.
  6. Search for open source implementation and YouTube videos of projects that you are interested in. And keep tweaking them to your need. As mentioned earlier, my recommended language will be Keras with Tensorflow backend.

Some Optional Resources:

  • Twitter can be a fantastic tool to stay updated with new ML inventions.
  • If you get stuck, there are many groups and communities in Reddit and facebook where people will help you out. Don’t hesitate to ask for help.

Conclusion:

One thing to mention, unlike other areas of Computer Science, Deep Learning resources are less abundant. So many times you will fail and get frustrated. Don’t let those feelings intimidate you. Reach out to others, ask for help. There are many people who will be willing to help you out. We are all learning.

And a misconception about MLDL is you need to have a CS background to learn it. That’s not true at all. You do need some idea about programming to get started, but that’s it. Many of the biggest experts in today’s Machine Learning world are from other fields of study. Even the best Deep Learning people I’ve seen are also from other backgrounds than CS. It is certainly a benefit if you have a CS background, but it’s not too hard to catch up it if you are from other disciplines.

Thank you for reading so far. Let me know if you have any questions or suggestions. And if you want me to elaborate on any topics I’ve mentioned here, or want me to write on any other topic, let me know that too.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store