Water

My ML Resources!

Hello World!

Thank you so much for coming here to read my blog. This is my first blog and I want to answer the most asked question via DMs, replies, tweets and all the other places ~ "What are my ML learning resources?"

I get this question daily and I have been asked this by a lot of people and answering this personally is a tough task. So, I am finally writing this blog. Also, I know that I have been averting this blog for a long time. This was supposed to be a thread, then my college began and I couldn't write it and finally it has come to this blog, so I'm really sorry for that. Now then, let's begin...

I am forgetting a lot of things that I did and therefore I will keep updating this blog or make a separate page consisting all my resources and keep updating it. Also I know I am starting from the very basics (Math and Python) but people actually need this, some of them have no idea where to start from, and hence I am including even the basics here.

1. Mathematics

The main topics that you need to cover before starting ML are Linear Algebra, Calculus, Probability Theory, etc. Since I completed the required math from my school and uni, I didn't learn the math part separately as I had decent knowledge about it. But I asked Lelouch about the Math resources and here are the resources that he suggested-

  1. Khan Academy for basic algebra to pre calculus
  2. Calculus through Prof.Leonard YT channel
  3. Math Academy along with a textbook to solve difficult problems

Lelouch is also going to write a blog on the Math resources soon. Once that is up, I'll put the link here.

2. Python

Next important thing that you should know before starting ML is Python. After all you are going to code all your ML models in Python. Python is a pretty simple language. If you already have some experience with coding, it should be easy for you to start coding in Python and also if you're new to coding, then starting with Python can be the easiest way for you to get into programming. It's so easy to learn that you can just type Python in YouTube search bar, watch the first playlist that pops up and you'll learn Python. Here are some resources you can get started with-

  1. Harvard CS50 Course

  2. Code With Harry

3. Libraries

Numpy, Pandas and Matplotlib are the must know libraries in ML and it is extremely important to have good knowledge about them before touching ML. Again! since this is a common topic there are a lot of YouTube playlists available that can help you understand them. But to name a specific channel that helped me learn them was this-

  1. DataCode with Sharad (You can search the playlists on the channel for libraries and start watching)

  2. Codemy.com - Pandas and Matplotlib

  3. Codemy.com - Numpy

4. Machine Learning

Now that we have finally learnt the Math, the tool to write programs (Python) and the libraries, we can finally keep out foot in the domain of Machine Learning. Here, we are supposed to learn about concepts such as Regression, Classification, RL, etc. This is an important step since this will help us in learning neural networks later. To study this section,

  1. I used a Udemy course right! a Udemy course called "Machine Learning A-Z" by Kirill Eremenko. I used to study the concepts from here then head to this playlist by CampusX and search for the topic to understand the underlying math and concepts. And for the coding part I would go back to the Udemy course and start coding them myself. The CampusX playlist is in Hindi :( but you can turn on the subtitles and watch them.

  2. This is a Machine Learning course offered by DeepLearningAI by Andrew Ng that you can use to study ML.

  3. There is also this Machine Learning Specialization course by Coursera and Andrew Ng. It's probably the newer version of the YT course. The thing about this course that I have heard from a lot of people is that this course focuses a lot on mathematics, making it a little boring but there are a lot of people who have taken this course and liked it.

And also it was around this time that I started competing in the Kaggle competitions, although not very good but I was trying to make decent models and get some good results. You can try them too or wait till you learn Neural Networks. I will include more ML resources in some time.

5. Deep Learning

Finally let's address the elephant in the room. This is the part I spent my most time in. I've spent ~70% time learning DL in my ML learning journey. It is important to know that if you know the basics of Neural Networks and its related concepts, you already have a lot of things figured out. All the other things here revolve around the concept of Neural Networks and it's use in different scenarios. Well then let's start with the resources.

First to understand the concept of Neural Networks, the thing that helped me was 3b1b's Neural Network Course, I have completely watched the entire course and it has helped me grasp the initial concept of NN.

Next to learn the coding part I started doing the FastAI Practical Deep Learning for Coders. This course by FastAI follows a top-down approach, so you will need to make yourself comfortable with this approach, but once you are comfortable you'll realize the beauty of this course. You can read this to make more of this course

Andrew Ng has got us covered here as well. They also have a Deep Learning Specialization which is a 5 course series on Coursera. I haven't done this course but I've seen the GitHub repos related to the course and it looked great.

After we're done with this, we'll have some good knowledge about DL and we can understand a great deal about NN ourselves. The FastAI course uses the FastAI library which is made on top of PyTorch, but we need to learn PyTorch in order to make bigger and deeper Neural Networks easily and efficiently. And therefore to learn PyTorch, I watched the PyTorch in 24 hours video, which is a really good video as it revises the concepts of NN and also teaches the PyTorch for ANN and CNN.

Next, we move on to more detailed and refined stuff. Neural Networks: Zero to Hero Course by Andrej Karpathy is the best course to learn about complex and important concepts. This course will start with making autograd engine to making bigram model to learning backprop and batchnorm etc. to building wavenet to finally building your own Transformer decoder. This really is one gem of a course which will teach you a lot things.

Andrej Karpathy's YouTube channel is a goldmine for resources and I often come back to watch the lectures to find something new everytime I watch them. Apart from YouTube channel, his blogs are a great help. Also, his lectures from CS231n are a great help.

If you are someone who prefer learning through books, there are also a plenty of books available for the same. One book that was suggested to me was Dive with Deep Learning and Deep Learning Book.

At this point, you should be able to make good DL models and score good in Kaggle competitions.

Finally after making my own decoder, I wanted to learn how to finetune LLMs for a certain project and I came across this LLM Course by mlabonne, which is a great resource for LLM finetuning. I am still learning this part and I have found this helpful.

Apart from these resources, I have watched other lectures and videos to understand the concepts I didn't understand or found complex. It would have made the blog really long if I would've included everything. This is just a rough roadmap for a person to get started and explore things throughout the journey. Above are the main resources that I followed in my first 100 days of learning ML.

Other resources and links I found useful:

etc...

So this were some of the resources I used while learning ML and as mentioned before there were a lot more but I couldn't include them. I hope this answers a lot of questions from the people asking me about the resources. I have lost of useful resources so from now on I'll keep record of the resources I've used. Also I keep posting about the resources I use in ML or other work on my X so you can follow me there for them.

So, this was my first blog. If you think this lacked something or there would've been some way to make it better please lmk. Thank you so much for reading this blog.

Cya;)