Both sides previous revisionPrevious revisionNext revision | Previous revision |
machine_learning_roadmap [2023/10/23 16:55] – demiurge | machine_learning_roadmap [2023/10/23 17:02] (current) – [Learn Advanced Python] demiurge |
---|
# Machine Learning Roadmap | ====== Machine Learning Roadmap ====== |
| |
So you want to *learn* Machine Learning? It will be a long journey - one that requires a solid grasp of the fundamentals. Try and not skip any of the stages, and move on to the next once you have a full understanding of the current one. Good luck! | So you want to *learn* Machine Learning? It will be a long journey - one that requires a solid grasp of the fundamentals. Try and not skip any of the stages, and move on to the next once you have a full understanding of the current one. Good luck! |
| |
— [TOC3] — | ===== Mathematics and Calculus ===== |
| |
### Mathematics and Calculus | ==== Linear Algebra ==== |
| |
#### 1. Linear Algebra This is what essentially provides the mathematical framework for understanding and manipulating vectors and matrices, which are the building blocks of almost any ML algorithm. A full grasp of these concepts is **essential**. As always, [Khan Academy]([[https://www.khanacademy.org|https://www.khanacademy.org]]) is a great resource. Below are a list of the essentials, along with the appropriate Khan Academy course materials. You can always choose your own course if you wish to. | This is what essentially provides the mathematical framework for understanding and manipulating vectors and matrices, which are the building blocks of almost any ML algorithm. A full grasp of these concepts is **essential**. As always, [Khan Academy]([[https://www.khanacademy.org|https://www.khanacademy.org]]) is a great resource. Below are a list of the essentials, along with the appropriate Khan Academy course materials. You can always choose your own course if you wish to. |
| |
1. [Vectors and Spaces]([[https://www.khanacademy.org/math/linear-algebra/vectors-and-spaces|https://www.khanacademy.org/math/linear-algebra/vectors-and-spaces]]) 2. [Matrices]([[https://www.khanacademy.org/math/precalculus/x9e81a4f98389efdf:matrices|https://www.khanacademy.org/math/precalculus/x9e81a4f98389efdf:matrices]]) and [Matrix Transformations]([[https://www.khanacademy.org/math/linear-algebra/matrix-transformations|https://www.khanacademy.org/math/linear-algebra/matrix-transformations]]) | [Vectors and Spaces]([[https://www.khanacademy.org/math/linear-algebra/vectors-and-spaces|https://www.khanacademy.org/math/linear-algebra/vectors-and-spaces]]) |
| |
#### 2. Calculus Calculus, and particularly derivatives and gradients, play a key role in optimization algorithms used in ML. You will rely on Calculus for optimization techniques such as [gradient descent]([[https://en.wikipedia.org/wiki/Gradient_descent|https://en.wikipedia.org/wiki/Gradient_descent]]), and key components of DL such as [Backpropagation]([[https://en.wikipedia.org/wiki/Backpropagation|https://en.wikipedia.org/wiki/Backpropagation]]) - which heavily relies on the chain rule of calculus. Studying integrals and derivatives are fundamental for understanding the rate of change in functions and how they behave, which is crucial for interpreting and modeling real-world use-cases. | [Matrices]([[https://www.khanacademy.org/math/precalculus/x9e81a4f98389efdf:matrices|https://www.khanacademy.org/math/precalculus/x9e81a4f98389efdf:matrices]]) |
| |
1. [Integrals]([[https://www.khanacademy.org/math/integral-calculus/ic-integration|https://www.khanacademy.org/math/integral-calculus/ic-integration]]) 2. [Differential Equations]([[https://www.khanacademy.org/math/integral-calculus/ic-diff-eq|https://www.khanacademy.org/math/integral-calculus/ic-diff-eq]]) 3. [Application of Integrals]([[https://www.khanacademy.org/math/integral-calculus/ic-int-app|https://www.khanacademy.org/math/integral-calculus/ic-int-app]]) 4. [Parametric equations, polar coordinates, and vector-valued functions]([[https://www.khanacademy.org/math/integral-calculus/ic-adv-funcs|https://www.khanacademy.org/math/integral-calculus/ic-adv-funcs]]) 5. [Series]([[https://www.khanacademy.org/math/integral-calculus/ic-series|https://www.khanacademy.org/math/integral-calculus/ic-series]]) 6. [Gradients]([[https://www.khanacademy.org/math/multivariable-calculus/multivariable-derivatives|https://www.khanacademy.org/math/multivariable-calculus/multivariable-derivatives]]) | [Matrix Transformations]([[https://www.khanacademy.org/math/linear-algebra/matrix-transformations|https://www.khanacademy.org/math/linear-algebra/matrix-transformations]]) |
| |
#### 3. Probability and Statistics Another essential building-block. Probability theory provides a math framework for quantifying *uncertainty*. In ML, models often need to make predictions or decisions based on incomplete or noisy data. With probability, we can easily express that uncertainty and reason about it. There's myriad other reasons for learning probability, of course; just keep in mind that Language Models generate text by taking your input and calculating the probability distribution of the next sequence of words that would follow it, and pick the most likely output to complete your input text. | ==== Calculus ==== |
| |
| Calculus, and particularly derivatives and gradients, play a key role in optimization algorithms used in ML. You will rely on Calculus for optimization techniques such as [gradient descent]([[https://en.wikipedia.org/wiki/Gradient_descent|https://en.wikipedia.org/wiki/Gradient_descent]]), and key components of DL such as [Backpropagation]([[https://en.wikipedia.org/wiki/Backpropagation|https://en.wikipedia.org/wiki/Backpropagation]]) - which heavily relies on the chain rule of calculus. Studying integrals and derivatives are fundamental for understanding the rate of change in functions and how they behave, which is crucial for interpreting and modeling real-world use-cases. |
| |
| [Integrals]([[https://www.khanacademy.org/math/integral-calculus/ic-integration|https://www.khanacademy.org/math/integral-calculus/ic-integration]]) |
| |
| [Differential Equations]([[https://www.khanacademy.org/math/integral-calculus/ic-diff-eq|https://www.khanacademy.org/math/integral-calculus/ic-diff-eq]]) |
| |
| [Application of Integrals]([[https://www.khanacademy.org/math/integral-calculus/ic-int-app|https://www.khanacademy.org/math/integral-calculus/ic-int-app]]) |
| |
| [Parametric equations, polar coordinates, and vector-valued functions]([[https://www.khanacademy.org/math/integral-calculus/ic-adv-funcs|https://www.khanacademy.org/math/integral-calculus/ic-adv-funcs]]) |
| |
| [Series]([[https://www.khanacademy.org/math/integral-calculus/ic-series|https://www.khanacademy.org/math/integral-calculus/ic-series]]) |
| |
| [Gradients]([[https://www.khanacademy.org/math/multivariable-calculus/multivariable-derivatives|https://www.khanacademy.org/math/multivariable-calculus/multivariable-derivatives]]) |
| |
| ==== Probability and Statistics ==== |
| |
| Another essential building-block. Probability theory provides a math framework for quantifying *uncertainty*. In ML, models often need to make predictions or decisions based on incomplete or noisy data. With probability, we can easily express that uncertainty and reason about it. There's myriad other reasons for learning probability, of course; just keep in mind that Language Models generate text by taking your input and calculating the probability distribution of the next sequence of words that would follow it, and pick the most likely output to complete your input text. |
| |
1. [The Entire Khan Academy Statistics and Probability course]([[https://www.khanacademy.org/math/statistics-probability|https://www.khanacademy.org/math/statistics-probability]]) >You can take only the lessons you think might be important and then take the Course Challenge.\\ | 1. [The Entire Khan Academy Statistics and Probability course]([[https://www.khanacademy.org/math/statistics-probability|https://www.khanacademy.org/math/statistics-probability]]) >You can take only the lessons you think might be important and then take the Course Challenge.\\ |
That should probably be enough for Math. I might've missed a few essential things, but I will add more as I come across them. | That should probably be enough for Math. I might've missed a few essential things, but I will add more as I come across them. |
| |
### Programming The current programming language dominating the ML community is **Python**. Not surprising, since the ease of use allows you to focus on writing efficient code without needing to spend too much time learning the intricacies of the language's syntax. There's a good chance you already know Python, but we'll go over the basic steps anyway. | ===== Programming ===== |
| |
##### Learn Python Basics The `roadmap.sh` [Python Developer roadmap]([[https://roadmap.sh/python|https://roadmap.sh/python]]) is an incredibly useful resource for this. What it essentially boils down to, however, is: | The current programming language dominating the ML community is **Python**. Not surprising, since the ease of use allows you to focus on writing efficient code without needing to spend too much time learning the intricacies of the language's syntax. There's a good chance you already know Python, but we'll go over the basic steps anyway. |
| |
| |
| ==== Learn Python Basics ==== |
| |
| `roadmap.sh` [Python Developer roadmap]([[https://roadmap.sh/python|https://roadmap.sh/python]]) is an incredibly useful resource for this. What it essentially boils down to, however, is: |
| |
1. Learn the Basic Syntax and Data Types You'll need to familiarize yourself with Python's syntax, variables, data types (integers, floats, strings, lists, dicts), and basic operations (arithmetic, string manipulation, indexing, slicing). 2. Control Flow Understand conditional statements (`if`, `elif`, `else`), loops (`for`, `while`), and logical operators (`and`, `or`, `not`). Very important for implementing decision-making and repetition in your code. 3. Functions and modules Learn how to define and use functions to encapsulate reusable blocks of code. Also, you'll need to understand how to import and utilize modules (libs). 4. Data Structures and Manipulation Get yourself acquainted with fundamental data structures like lists, tuples, sets, and dictionaries. Learn how to manipulate and transform data. 5. NumPy A fundamental library for scientific computing in Python. You will need to gain proficiency in using NumPy arrays for efficient numerical computations. 6. Pandas You will often need Pandas DataFrames to clean, transform, filter, aggregate, and analyze your datasets. 7. Plotting and Data Visualization Become familiar with libraries such as [Matplotlib]([[https://matplotlib.org/|https://matplotlib.org/]]) and [Seaborn]([[https://seaborn.pydata.org/|https://seaborn.pydata.org/]]) for creating plots, charts, and visualization. Not strictly necessary, but recommended. | 1. Learn the Basic Syntax and Data Types You'll need to familiarize yourself with Python's syntax, variables, data types (integers, floats, strings, lists, dicts), and basic operations (arithmetic, string manipulation, indexing, slicing). 2. Control Flow Understand conditional statements (`if`, `elif`, `else`), loops (`for`, `while`), and logical operators (`and`, `or`, `not`). Very important for implementing decision-making and repetition in your code. 3. Functions and modules Learn how to define and use functions to encapsulate reusable blocks of code. Also, you'll need to understand how to import and utilize modules (libs). 4. Data Structures and Manipulation Get yourself acquainted with fundamental data structures like lists, tuples, sets, and dictionaries. Learn how to manipulate and transform data. 5. NumPy A fundamental library for scientific computing in Python. You will need to gain proficiency in using NumPy arrays for efficient numerical computations. 6. Pandas You will often need Pandas DataFrames to clean, transform, filter, aggregate, and analyze your datasets. 7. Plotting and Data Visualization Become familiar with libraries such as [Matplotlib]([[https://matplotlib.org/|https://matplotlib.org/]]) and [Seaborn]([[https://seaborn.pydata.org/|https://seaborn.pydata.org/]]) for creating plots, charts, and visualization. Not strictly necessary, but recommended. |
| |
##### Learn Advanced Python | |
| ==== Learn Advanced Python ==== |
| |
At this stage, you'll be sufficiently familiar with Python and ready to tackle the ML aspects of Python. Very exciting. | At this stage, you'll be sufficiently familiar with Python and ready to tackle the ML aspects of Python. Very exciting. |