<aside>
โ The beauty of Machine Learning and AI is that it lies at the intersection of abstract mathematical thinking and the engineering of concrete solutions in code utilising data and compute power. This is also what we are going to be fosucing on and exploring in the programme!
However, before you can explore the beauty and power of abstract mathematics in AI (and yes, there is a lot of it!), you need to have a good mastery of the basics first. Here, we shall give you a more detailed breakdown what topics you should cover, what aspects you should focus on, in particular, and what resources we recommend for you to look at.
</aside>
<aside>
๐ฑ
Depending on whether you are a high schooler or an undergrad, you will have different needs. We will provide resources for both, but there will be naturally more for high schoolers, as they have more to cover. What should be your focus? ๐ค
- High schoolers should focus on grasping the concepts and ideas, while learning how to work and calculate with the mathematical tools like vectors, matrices and functions they have learned. Be clear that each is a different mathematical object in its own right. Learn what each objectโs properties are, how they are related between eaxh other, and what you can do and canโt do when calculating with each. Go an explore technical details, if you can; but be careful to not get overwhelmed and lost in the process! Link the mathematical knowledge to computer programming by realising that the different types of mathematical objects could be treated as different data types in programming, or classes in Object Oriented Programming.
- Undergrads should focus on grasping the concepts and ideas, while also studying the technical implementations and details in more depth and rigour. Look at the abstract algebra behind the different mathematical objects like that of number, vector, matrix and function, and spot the patterns. This will lead you up the tower of abstraction in mathematics. Think carefully about the difference between a pure mathematical treatment, and its numerical implementation. Numerical implementations can give us a deep insight + intuition about the mathematical object we are dealing with. Moreover, not everything that is equivalent in pure math is equivalent in numerically.
</aside>
<aside>
๐ค Example
Letโs assume you have a basic intuition and understanding of vectors and matrices already; note that the algebra of (real) numbers is very different from the algebra of vectors. On the other hand, the algebra of vectors is similar to the algebra of matrices, but there is an important difference: matrices can be multiplied under certain conditions; but this multiplication is different from the multiplication of numbers, as the order matters, and you cannot divide by matrices as freely as you can divide by numbers. (What does it even mean to divide by a matrix?) A high schooler should be thinking up to this point, and then focus on actually mastering the algebra and some of the applications of vectors and matrices. They should also start thinking about how they can implement vectors and matrices and their algebra in code.
An undergrad should think further: how can we make precise the similarities and differences in the algebra of those different objects? We are dealing with different algebraic structures here. What are those structures? The real numbers form a field (in fact a Dedekind-complete ordered field), vectors form an (abstract) vector space. Matrices also form an (abstract) vector space, but the multiplication (of $n\times n$ matrices, say) and addition of matrices make it also a ring. But what if we wish consider the multiplication between arbitrary matrices? This is a bit more tricky as the multiplication is not defined for an arbitrary pair of matrices; it i only defined partially. After thinking about this for a while (and learning about Category Theory) you might discover that the matrices with matrix multiplication form an example of a categoryโฆ
</aside>
๐ Calculus (One variable)
<aside>
โ Classic Calculus provides the basic mathematical toolbox that has A LOT of applications. It is also the base on which one can build multivariable calculus, which we need to both understand and implement an algorithm that allows us to train Neural Networks from data.
</aside>
<aside>
๐ Here is the minimum you need to know and be able to apply from one variable Calculus:
- The intuition behind the definition of a derivative, and how it solves the tangent problem for the graph of a function
- The concept of linear approximation, and an intuitive understanding of what a limit is
- The idea to use tangents to approximate non-polynomial functions like the trig functions, exponential and logarithms locally, and how this can be extended and improved with the help of Taylor series incorporating higher derivatives.
- Be skilled in differentiating a function with the help of differentiation rules (including the product and the chain rule)
- Understand how differnetiation can be used to solve optimisation problems, like determining local minima and maxima of functions.
</aside>
<aside>
โ Recommended order to study the resources for a beginner:
- If you have not encountered Calculus before, we recommend you give the ilecture Online Calculus I course a go first
- Do the Khan Academy Calculus BC course, which explores some of the concepts in more depth, and allows you to do practice questions to consolidate your understanding.
- Work through the Essence of Calculus by 3B1B to consolidate and expand your conceptual understanding of Calculus
- Do practice questions to consolidate your understanding and build your calculation skills โ you could use a Math Problem Generator GPT to create you more practice problems for particular topics you wish to practice.
</aside>
<aside>
๐ก If you are short on time, make sure to focus on the topics you need to be familiar with for the programme first. For example, we will not need integration, so you can skip it, if there is no time.
</aside>
<aside>
๐ฑ If you are familiar with one variable Calculus, we suggest
- Do a quick review and do practice problems
- Watch the Essence of Calculus by 3B1B to deepen your intutiive and conceptual understanding of Calculus
- [Optional] Start reading the book by Abbott, if you wish to learn about the maths behind Calculus, or the book by Bell, if you want to see a rigourous approach to Calculus that is build on the notion of infinitesimals rather than on approximations.
</aside>
Calculus
๐ Linear Algebra
<aside>
โ Every time we wish to calculate something conretely in maths it essentially boils down to do linear algebra (unless it is a very abstract calculation). This makes Linear Algebra the calculation tool number one, and it is not surprising to see it being used everywhere. Linear Algebra is also at the heart of the computations done in Machine Learning and AI algorithms. (Multivariable) Calculus and Linear Algebra together form the backbone of applied maths.
</aside>
<aside>
๐ Here is the minimum you need to know and be able to apply from Linear Algebra:
- The linear algebra of vectors, vector decomposition and the geometric meaning of addition and scalar multiplication of directed arrows in the 2D plane and in 3D space
- The link between the algebra of directed arrows and coordinate vectors via cartesian coordinate systems in 2D and 3D
- The algebra of matrices, including addition, scalar multiplication and matrix multiplication
- Solving systems of linear equations with Gaussian elimination or an extensions thereof (Gauss-Jordan or LR decomposition)
- Solving systems of linear equations with the help of matrices
- The geometric interpretation of systems of linear equations and the geometric meaning of solutions of such systems
- The link between analytic geometry and linear algebra via cartesian coordinate systems. Equations of the line, spheres and planes.
- Dimension of a vector space and higher dimensional vector spaces beyond 3D.
- The geometric meaning of the dot product and its generalisation to scalar products in higher dimensions
</aside>
<aside>
โ Recommended order to study the resources for a beginner:
- Learn the basics from the Khan Academy course on vectors and matrices, if you havenโt covered these topic in school yet. If you did then check you have a good mastery of the basics by doing the quizzes to test yourself!
- Watch the video series on the Essence of Linear Algebra by 3Blue1Brown. The amazing visualisations of the core concepts will help you with making the transition from basic linear algebra of vectors and matrices to working with more abstract vector spaces and linear transformations.
- Work through the immersive Linear Algebra course to help you develop a good visual intuition of linear algebra, which is essential for being able to use it in applications. The applications of Linear Algebra in Computervision presented in the book are an eye opener for the versatility of linear algebra.
- The other resources are online textbooks. While the OpenStax text book is still quite close to the content you would cover in an advanced maths course at school, the book by Anton helps you to embark studying linear algebra at university level.
- Make sure to check out the cheat sheets made by Maria summarising the key concepts of linear algebra in 2D and 3D.
</aside>
<aside>
๐ฑ If you are familiar with Linear Algebra already, we suggest
- Watch the Essence of Linear Algebra by 3B1B to deepen your intuitive and conceptual understanding of the basic concepts linking them to the more abstract notions of abstract vector spaces and linear maps.
- Work through immersive Linear Algebra with a focus on the different applications presented there.
- [Optional] If you want to deepen your understand of how the techniques of Linear Algebra can be used in applications, have a look at the book by Anton
- Explore numerical techniques like LR decomposition of matrices to solve systems of linear equations, polynomial interpolation, or numerical schemes for ordinary differential equations to see why we wrote linear algebra is at the heart of numerical computations.
</aside>
Linear Algebra Resources
๐ Multivariable Calculus