A beginner's roadmap to getting started in Machine Learning, by COPS IIT(BHU).
If you do a quick google search: "How can I learn Machine Learning", you will receive a lot of content. Most of this content will probably not be well suited for you, possibly because such content is mostly created for a large audience. (so you may find it boring/too slow, and sometimes misleading)
We, however have been in the same place as you are now (freshmen or sophomores), so we know exactly what you need to know, and what you might be interested in.
So, here is a guide to all the resources you will require to properly get introduced to machine learning and artificial intelligence. Try to follow the sequence, and skip whatever you already know.
The list is very selective. There may be a lot of resources out there, but we feel that this list will be the best for you, in terms of content and difficulty.
A quick tip: Although this roadmap is well built, we will keep adding updates to make sure the site is upto date with new and awesome content posted daily on the internet. So, make sure to star this repository on github, and also add watch for "All Activities", just to make sure you dont miss any updates on this.
A word of advice: For working independently, you need to exploit the power of Google. If you find something unfamiliar, just do a quick google search. After some practice, you will start recognizing which sites to trust.
Dual boot your machine with Ubuntu 20.04 LTS. Working with linux is comparatively much easier than Windows.
If you are using linux, installing these will be a piece of cake!
- Install git
- Install OpenCV (A Computer Vision library)
- Install the latest version of Pytorch (A widely used Deep Learning framework).
- Install VScode
A word of advise: My journey of using text editors are as follows: Codeblocks -> Sublime -> VSCode
. I personally find VScode cool, because it comes under "text editors" and not "IDEs", so it is light-weight.
And on top of that, there are some cool extensions which make your life easy.
Adding to the above advice: If you are using VScode, make sure you take advantage of debugging. Here's a quick demo.
Github is the opensource platform that lets you share code. Having an active github account will surely be helpful. If you haven't, quickly sign up on www.github.com.
Complete Level 0 and 1 from here before starting with the resources below. You will also get a high level intuition from here.
If you have some experience in c, c++ or java, then you will find python very easy to follow. Apart from the syntax, Python is basically english :)
I recommend python 3.6 (as of 2021) due to its compatibility with most frameworks. Watch this tutorial series by Sentdex. First 30 videos should be enough, but feel free to complete the playlist.
Also, dont start learning the syntax. You can always google!
This course by Andrew NG is the launchpad for most Ai enthusiasts. You can mix it up with this StatQuest playlist.
A word of advise: Don't enforce yourself to complete these lectures. Generally I hear people get overwhelmed with too much math. For ML, you do require some basic understanding, but it doesn't mean you have to be a pro. If you dont find it interesting, dont worry. There are a lot of other exciting topics waiting for you!
This is one of the fundamental requirements for any computer scientist. This will help you get started.
Formal introduction: Git is a version control system, which will be very handy while writing code, and colaborating with people.
The git and github introduction by Daniel Shiffman should be a quick and easy way to get familiarized.
A word of advise: You may want to watch these in 1.5x to 3x depending on your caliber. For those thinking that youtube only allows upto 2x: there are chrome extensions that allow upto 16x playback speeds :)
Crudely speaking this is MATLAB for Python. I suggest you do this after the Andrew NG course. You can go to its official tutorial or learn it with hands-on deep learning experience via deeplearning.ai’s first course.
This is one of the most crucial and powerful libraries in data science. To begin with, you end up learning how to read and write CSV and JSON files as well as how to manipulate Data Frame rows, columns, and contents. Again, Sentdex to the rescue.
A word of advise: Don't enforce youself! Just keep watching till you think you have a good idea. Rest can be managed with google search.
Learn how to plot basic graphs. Its very important to visualize your data. The pyplot submodule should be enough for the beginning. Sentdex is your savior again.
OpenCV is one of the best computer vision libraries out there. May god bless sentdex.
A word of advise: This could be very interesting, since you can play with data generated you! So try to use your webcam's live feed for all the tranformations discussed in this playlist.
Colab lets you train your models online. SO, it prevents you from frying your laptop (Machine learning generally required huge compute and may require overnight training).
Here is the official tutorial. Give it a brief read, just to know how things work.
OpenAI’s gym is a toolkit for the development of reinforcement learning algorithms. It has many agents and environments for which state, action, observation, returns based on actions, etc. can be generated. You can follow the official documentation.
Get it installed and play around with it for a while. Give this a read. Possibly try running it, locally or on colab.
No other course will give you as good an introduction and insight as the ones given by the Stanford lectures. The concepts are explained well, and after completing them, you yourself will know what to do next, because these lectures give you all the tools you will require for the topic.
If possible, do the course assignments too.
Computer Vision CS231: Youtube Link Course Link
Reinforcement Learning CS234: Youtube link Course Link
Natural Language Processing CS224: Youtube link Course Link
A word of advise: The same advise goes here: "Don't enforce youself!". But if you are like us, you may find these so interesting that you may feel compelled to complete this. You can pick one, or do all three. But I would suggest you to try atleast the first 2-3 lectures of each, before coming to conclusions.
Understanding the concepts in Reinforcement Learning directly from the course can be somewhat challenging. Hence, we provide some additional resources to help you have a smooth experience.
The following two courses can be helpful. If you find CS234 too hard to follow, you can start with either of the two courses below:
- https://www.coursera.org/specializations/reinforcement-learning
- UCL's course by David Silver; youtube link
You will be doing most of your work in Pytorch (because it is the easiest to use and provides fast prototyping). I recommend pytorch official docs. After completing the Stanford lectures, it will be easy for you to follow.