# Getting Started With Machine Learning

## READ THIS FIRST
So you want to learn AI, Data Science, Machine Learning, etc. This article is absolutely for you, I will be going over everything that you need to know about AI, and how to get started.
There are many different paths which you can take with regards to learning AI, since it covers many different fields such as Mathematics, Computer Science, even Evolutionary Biology!
With this in mind, it's important to realize that there is no "perfect roadmap" and anyone telling you that "their roadmap is better" is probably lying.
I am not going to call this article a roadmap, as that would impy a rigorous schedule with very specific tasks. This article will simply describe the skills that you need to be able to apply Machine Learning to your own projects.
There is a plethora of "roadmap" material on sites such as Youtube, Linkedin, and other such websites. Usually the people making this content either do so for monetary gain, or to make themselves look better for the job market.
Although there are often useful resources included withing these roadmaps, they usually lie about how long you should be spending on learning different skills.
Remember **Learning is an endurance game, not a race**, and learning a little bit each day will propel you much further than people who get burnt out studying 12 hrs per day for approximately 2-3 months.
This article will be formatted with the learning resources first, and after I will describe the general skills which you should be looking to gain from them. This article doesn't assume anything about your ability in math, programming, etc.
## What You Need to Learn
### Statistics
I'm sure you have heard this before, but Data Science as a whole is built upon mathematics, specifically statistics and calculus. Don't worry if you are on edge about learning more math (as many people are), because if you are anything like me, it wasn't the math that you didn't enjoy, but rather the learning environment.
If you try to understand how math is applied, you may begin to enjoy learning about math. Anyways, statistics is one side of math that you definitely need to learn eventually, even if you don't want to pursue Data Science.
### Calculus
Calculus is more important when learning about Deep Learning (which are all the craze nowadays), so I will also include it in my list. Although I would recommend learning statistics first, remember that later in your career, you will need to understand at least some basic scalar calculus. If you decide to venture into Deep Learning, then calculus is a neccesity.
### Programming

I probably should've included this above the mathematics, but here it is, you will need to know how to program at a pretty advanced level. Nowadays lot's of the math are hidden underneath powerful Python extensions, but to use those extensions, you need to know how to program.
The language I would recommend you stick with (and probably stay with) is Python. Python is a Data Scientists best friend, it is what nearly every Machine Learning Framework is built with (usually using C++ under the hood). You will often hear that "Python is a slow language"; and in part, those people are telling the truth. Python is an interpreted language, which are slower than compile languages (like C++).
However, since most of the Machine Learning Frameworks are built with C++, they are still pretty fast. Another thing to keep in mind is that the computations that are used with large amounts of Data, as well as large Neural Networks, are actually bottlenecked by the computer hardware, rather than the computer programs.
Anyways, Python is the language that I will be recommending you learn. It has a massive community, and also happens to be one of the easiest languages to start with. The only other language that I know of which is used more often with Data Analytics, is R. But since this article is more about Machine Learning, I don't think it's important to learn it.
### Evolutionary Biology
As previously mentioned, Evolutionary Biology is a principle often referred to in Machine Learning, particularly in Deep Learning. I am not going to recommend reading about Evolutionary Biology, since it's a bit too abstract for the purposes of learning Machine Learning.
I will however, recommend some reading about **Reinforcement Learning**, many professionals think that Reinforcement Learning will not be very popular in the future, since it's considered a "brute force approach" to training Neural Networks. However, for learning purposes, it offers a unique insight into how Neural Networks learn, as well as how it's connected to Evolutionary Biology.
[This link](https://web.stanford.edu/class/psych209/Readings/SuttonBartoIPRLBook2ndEd.pdf) is a paper from Stanford that offers a decent explanation of Reinforcement Learning.
## Learning Resources
### [Kaggle / Kaggle Learn](https://www.kaggle.com)

I cannot emphasize enough the sheer power that Kaggle provides to people who want to learn Machine Learning, or Data Analytics. **Everything** on Kaggle is free, with not a single paywall gating learning resources (the only payments that they advertize is for cloud computing, which also has a free tier). I will be going over two main sections of Kaggle: Learn and Competitions.
#### Kaggle Learn
Kaggle learn is a great way to learn Machine Learning if you are looking for a "Zero to Hero" method to learn. They start with beginner python courses, and progress all the way to NLP, and Computer Vision. The learning resources are split into chunks which contain the separate separate topics. If you are just getting started with programming as a whole, I would reccomend starting with the beginner courses, and progressing from there. If you are pretty familiar with programming, you could start with the Machine Learning specific courses. When you complete any of the courses, you are given a certificate which you could display on your portfolio if you wanted to.
#### Kaggle Competitions
I wouldn't recommend working on any of the competitions if you are new to programming, as you will probably have a hard time and give up. If you already have some programming experience, then you could try a competition, but remember that it's more important to learn what you are doing, rather than increase your placing on the leaderboard (yes, there is worldwide leaderboards). Kaggles competitions are split between very difficult professional competitions with prize pools, and beginner competitions with no prize pool, but usually are more approachable to beginners.
### [Khan Academy](https://www.khanacademy.org)
Although it may seem rather surprising to people who are new to Machine Learning, mathematics plays a huge part in the technology behind the scenes. Fortunately for people who don't like math (such as myself) much of the math is abstracted away by most of the ML Frameworks. However, if you really want to learn how ML works I would HIGHLY recommend refreshing your math skills. The most important math I would recommend is Statistics, and Formal Logic (which isn't on Khan Academy). If you are more math-savvy, then I would recommend you also take the Calculus courses on Khan Academy, since Deep Learning is almost entirely built upon the idea of Derivation. I won't be linking Khan Academy here, as it's very easy to find, but for anyone who is interested, just google "Khan Academy".
## Other Helpful Links
### [Calculus For Deep Learning](https://explained.ai/matrix-calculus/index.html)
This link is for a paper that explains the matrix calculus behind deep learning. I didn't include it in the Khan Academy section because it's a bit more advanced. The paper doesn't expect you to know anything about vector calculus or matrix calculus, so if you understand the calculus behind basic derivation, you should be fine.
### [Machine Learning Resources](https://github.com/kishumds/Machine-Learning-Resources?tab=readme-ov-file)
This link is to a github repository that holds a trove of external links to blogs, books, courses, podcasts, youtube channels, and much more. If you are looking for any specific resources, then this link is porobably going to be very useful to you.