# Index

Let's dive right in!

# Motivation

Before anything else, watch this and then this awesome Ted Talks 😃

The entire field of Data Science is based on mathematics and statistics.

This phrase shouldn't frighten you, although you may find out, that you probably have much of the knowledge you need to start experimenting!

In fact:

If you've done a second-degree school (you know matrices and derivatives, for example), you probably just need to refresh your memory on the things you already know and go deeper into some things you may not have seen at school.

In general, if you have a scientific degree (engineering, computer science, physics, etc.), it will probably be just a review, because in this guide you will learn how to learn the fundamental theory behind Calculus, Linear Algebra, and Matrix Algebra courses are suggested within this guide.

Whatever your starting level, however, it is still recommended to go through all the resources organized here, to make sure you do not have "gaps in your knowledge".

Remember to read and try to implement some ideas of the Virgilio's Learning Strategy - Learning to Learn

# Courses

# Calculus

The first macro-topic you need to be confident with is Calculus.

It would be impossible to list how many Machine Learning system properties are based on its rules, like many of the scientific fields!

The process of training an ML model it's nothing more than Calculus rules applied to statistical models!

Lucky you! You can find great free courses offered by the professors of the MIT(Massachusetts Institute of Technology), through the index page MIT OpenCourseWare.

The course we suggest in particular is the following:

Single Variable Calculus

There are both the video lessons and the notes of the course.

Once you've taken the full course, watch this awesome playlist from 3Blue1Brown:

The Essence of Calculus

Thanks to these two resources, you should be able to understand most of the mathematical reasons that underpin today's Machine Learning systems and build them to develop powerful Data Science projects

If you want to dive deeper, here you can find a Multivariable Calculus course with notes and videos, again from MIT:

Multivariable Calculus

Once you will feel ready to go deeper inside the mathematics for Machine Learning (definitely not take this at the first pass), here you find your Bible:

Mathematics for Machine Learning

# Check your knowledge

Test your knowledge with these exercises:

Anyway you can find a ton of them online, and remember, that the more you practise, the better you will get!

# Linear Algebra and Matrix Algebra

The second macro-topic on which Machine Learning systems are based is linear algebra.

You probably already tasted these topics in high school, but certainly not with the right degree of depth.

So, how do you excellently learn linear algebra?

Virgilio was born to spread knowledge and content, and there are many ways to do it: through text, audio, video...

But the absolute best way (in terms of effectiveness and speed of understanding) is the visual way!

Our brain uses most of its computing power to process visual data, because when we evolved in the African Savannah the most important thing to do was to be able to see a predator and escape!

It is therefore not surprising that the visual interaction of concepts installs them deep into our minds, almost experientially, rather than conceptually!

Imagine, for example, thinking about the formula of the diagonal of a square... reading it is a very abstract thing, but if we imagine in a visual way the graphical reason that leads to the formula, it will make much more sense!

Now, fortunately, there are incredibly skilled and intelligent people in the world, and some of them have created this:

Immersive math - Linear Algebra

Interactive Linear Algebra

Once you click on the link and start exploring these interactive books, you won't believe your eyes for the clarity and effectiveness with which the concepts are explained.

These books currently contains so much information and so well done that it deserves a front-row seat in Virgilio!

Take your time, explore the books, fall in love with those interactive explanations!

Going through these would be sufficient to get all the remaining knowledge you need from a mathematical perspective, to understand most of the papers and code out there!

# Check your knowledge

Test your knowledge with these exercises.

Anyway you can find a ton of them online, and remember, that the more you practise, the better you will get!

# Optimization

Calculus, Linear Algebra, and Matrix Algebra are the 3 fundamental pillars you need to be confident with in order to understand most of the mathematical implications of Machine Learning systems.

This is important in Data Science because developing Machine Learning predictive models play a big role during a Data Science project, and these models are often the most useful outcome!

The optimization course is a bit more advanced, so maybe you could not tackle during the first pass of this guide, but later be sure to take the following lectures, from the professor Geoff Gordon:

Introduction to Convex Optimization

Moreover, if you want to dive deeper (very deep), you can hold this close to your bed:

The Convex Optimization Book (advanced book)

# Ask Questions

A rule of thumb to learn fast and effectively is to ask questions and read other's questions and answers.

Join communities of people interested in the topic (e.g. Reddit): here you can find discussions, search by keywords (e.g. "matrix multiplication"), and ask questions, with experts who will answer and help you.

Some tips regarding questions:

  • Try to form specific, well-written questions, to minimize the time used by the respondent.
  • Do not ask a question whose answer is found with a quick search on google.
  • If the questions are too general or show laziness they'll likely remain unanswered...

Some subreddits you can subscribe to are:

Two other good places to post (well structured) questions are:

# Conclusions

If you follow the study plan of the guide, take the time to fully understand the proposed courses, and do exercises, you will be equipped with an excellent basic knowledge of mathematics that is needed to do projects of Data Science, and in particular, build predictive models of Machine Learning.

This is because to implement a lot of Machine Learning applications we can often abstract ourselves from low-level details, such as the operations between matrices or the internal functioning of optimization algorithms, even if it is vital to know the principles that govern their functioning.

The next guide is about the basic statistics you need to fully understand the process of Data Science, and build effective and useful statistical models.