From 6ac949bb947fe2395046813b9090228301e3f04f Mon Sep 17 00:00:00 2001 From: TK Date: Sun, 14 Jul 2024 13:42:12 -0300 Subject: [PATCH] * --- .../linear-algebra-fundamentals/en/index.mdx | 624 ++++++++++++++++++ .../en/metadata.json | 23 + .../linear-algebra-fundamentals/cover.jpg | Bin 0 -> 56442 bytes 3 files changed, 647 insertions(+) create mode 100644 content/series/mathematics-for-machine-learning/linear-algebra-fundamentals/en/index.mdx create mode 100644 content/series/mathematics-for-machine-learning/linear-algebra-fundamentals/en/metadata.json create mode 100644 public/series/mathematics-for-machine-learning/linear-algebra-fundamentals/cover.jpg diff --git a/content/series/mathematics-for-machine-learning/linear-algebra-fundamentals/en/index.mdx b/content/series/mathematics-for-machine-learning/linear-algebra-fundamentals/en/index.mdx new file mode 100644 index 00000000..5ef5ecce --- /dev/null +++ b/content/series/mathematics-for-machine-learning/linear-algebra-fundamentals/en/index.mdx @@ -0,0 +1,624 @@ + + +This is the second part of the series [Mathematics for Machine Learning](/series/mathematics-for-machine-learning) with Python. + +## Vectors + +### What's a vector + +A numeric element that has magnitude and direction. + +- magnitude: distance +- direction: which way is headed + +Let's see an example: + +```bash +v = (2, 1) +``` + +For this vector, we need to move 2 units in the `x` dimension and 1 unit in the `y` dimension. It's a way of saying the directions you need to follow to get to there from here. + +```python +import numpy as np +import matplotlib.pyplot as plt + +vector = np.array([2, 1]) +origin = [0], [0] +plt.axis('equal') +plt.grid() +plt.quiver(*origin, *vector, scale=10, color='r') +plt.show() +``` + +This will plot the vector in the graph: + +![](vector.png) + +### Calculating Magnitude + +We can use the Pythagorean theorum and calculate the square root of the sum of the squares. + +```bash +v = √v₁² + v₂² +``` + +For our vector example: `v = (2, 1)`, here's how I calculate it: + +```bash +v = √2² + 1² +v = √4 + 1 +v = √5 ≈ 2.24 +``` + +In Python, we can use the `math` module: + +```python +import numpy as np +import math + +vector = np.array([2, 1]) +math.sqrt(vector[0]**2 + vector[1]**2) # 2.23606797749979 +``` + +### Calculating Direction + +To calculate the direction (amplitude), we use trigonometry and get the angle of the vector by calculating the inverse tangent `tan⁻¹`. + +```bash +tan(𝛉) = 1 / 2 +𝛉 = tan⁻¹(0.5) ≈ 26.57° +``` + +We can confirm it calculating it in Python + +```python +import math +import numpy as np + +v = np.array([2,1]) +vTan = v[1] / v[0] # 0.5 +vAtan = math.atan(vTan) +math.degrees(vAtan) # 𝛉 = 26.56505117707799 +``` + +### Vector Addition + +Let's add two vectors: + +- `v = (2, 1)` +- `s = (-3, 2)` + +```python +import numpy as np +import matplotlib.pyplot as plt + +v = np.array([2, 1]) +s = np.array([-3, 2]) + +vecs = np.array([v, s]) +origin = [0], [0] +plt.axis('equal') +plt.grid() +plt.ticklabel_format(style='sci', axis='both', scilimits=(0,0)) +plt.quiver(*origin, vecs[0, 0], vecs[0, 1], color=['r', 'b'], scale=10) +plt.quiver(*origin, vecs[1, 0], vecs[1, 1], color=['r', 'b'], scale=10) +plt.show() +``` + +Let's calcula the sum of `v` and `s`, resulting in `z`: + +```bash +z = v + s +z = (2, 1) + (-3, 2) +z = (-1, 3) +``` + +Generate the new vector `z` with Python: + +```python +import numpy as np +import matplotlib.pyplot as plt + +v = np.array([2, 1]) +s = np.array([-3, 2]) +z = v + s + +vecs = np.array([v, s, z]) +origin = [0], [0] +plt.axis('equal') +plt.grid() +plt.ticklabel_format(style='sci', axis='both', scilimits=(0,0)) +plt.quiver(*origin, vecs[0, 0], vecs[0, 1], color=['r', 'b'], scale=10) +plt.quiver(*origin, vecs[1, 0], vecs[1, 1], color=['r', 'b'], scale=10) +plt.quiver(*origin, vecs[2, 0], vecs[2, 1], color=['r', 'b'], scale=10) +plt.show() +``` + +Here's the plot: + +![](vector-addition.png) + +### Vector Multiplication + +We have 3 ways of performing vector multiplication: + +- Scalar multiplication +- Dot product multiplication +- Cross product multiplication + +Scalar multiplication is multiplying a vector by a single numeric value. + +Let's multiply vector `v` by `2`, resulting in a vector `w`. + +```bash +v = (2, 1) +w = 2v +``` + +Here's how the multiplication is calculated: + +```bash +w = (2·2, 2·1) +w = (4, 2) +``` + +In Python, we can use `numpy` to perform the vector multiplication + +```python +import numpy as np + +v = np.array([2, 1]) +w = 2 * v # [4 2] +``` + +Scalar division is the same idea: + +```python +import numpy as np + +v = np.array([2, 1]) +b = v / 2 # [1. 0.5] +``` + +In the dot production multiplication, we get the result of of two vectors multiplication, in other words, the scalar product (a numeric value). + +```bash +v·s = (v₁·s₁) + (v₂·s₂) ... + (vₙ·sₙ) +``` + +If `v = (2, 1)` and `s = (-3, 2)`, here's how we calculate the scalar product: + +```bash +v·s = (2·-3) + (1·2) = -6 + 2 = -4 +``` + +In Python, we can use the `dot` method or `@` to calculate the scalar product of two vectors. + +```python +# using .dot +v = np.array([2, 1]) +s = np.array([-3, 2]) +np.dot(v, s) # -4 + +# using @ +v = np.array([2, 1]) +s = np.array([-3, 2]) +v @ s # -4 +``` + +To get the vector product of multiplying two vectors, we need to calculate the cross product. + +```bash +v = (2, 3, 1) +s = (1, 2, -2) +r = v·s = ? # vector product +``` + +We need to calculate the three components for the final vector: + +```bash +r₁ = v₂s₃ - v₃s₂ +r₂ = v₃s₁ - v₁s₃ +r₃ = v₁s₂ - v₂s₁ +``` + +Here's how we do the calculation in our example: + +```bash +r = v·s = ((3·-2) - (1·-2), (1·1) - (2·-2), (2·2) - (3·1)) +r = v·s = (-8, 5, 1) +``` + +In Python, we use the `cross` method: + +```python +p = np.array([2, 3, 1]) +q = np.array([1, 2, -2]) +r = np.cross(p, q) # [-8 5 1] +``` + +## Matrices + +### What's a matrix + +A matrix is an array of numbers that are arranged into rows and columns. + +```bash +A = [ + 1 2 3 + 4 5 6 +] +``` + +This is how you indicate each element in the matrix: + +```bash +A = [ + a₁,₁ a₁,₂ a₁,₃ + a₂,₁ a₂,₂ a₂,₃ +] +``` + +In Python, we can define the matrix as a 2-dimensional array: + +```python +import numpy as np + +A = np.array([[1,2,3], + [4,5,6]]) +# [[1 2 3] +# [4 5 6]] +``` + +To add two matrices of the same size together, just add the corresponding elements in each matrix: + +```bash +[ [ [ + 1 2 3 + 6 5 4 = 7 7 7 + 4 5 6 3 2 1 7 7 7 +] ] ] +``` + +Here's how we calculate it: + +```bash +[ + a₁,₁ + b₁,₁, a₁,₂ + b₁,₂, a₁,₃ + b₁,₃ + a₂,₁ + b₂,₁, a₂,₂ + b₂,₂, a₂,₃ + b₂,₃ +] +``` + +In Python, we can just sum the two matrices: + +```python +A = np.array([[1, 2, 3], + [4, 5, 6]]) + +B = np.array([[6, 5, 4], + [3, 2, 1]]) + +A + B +# [[7 7 7] +# [7 7 7]] +``` + +Subtraction of two matrices works the same way: + +```bash +[ [ [ + 1 2 3 - 6 5 4 = -5 -3 -1 + 4 5 6 3 2 1 1 3 5 +] ] ] +``` + +The nagative of a matrix, is just a matrix with the sign of each element reversed. + +```bash +C = [ + -5 -3 -1 + 1 3 5 +] + +-C = [ + 5 3 1 + -1 -3 -5 +] +``` + +In Python, we can use the minus sign: + +```python +C = np.array([[-5, -3, -1], + [1, 3, 5]]) +C +# [[-5 -3 -1] +# [ 1 3 5]] + +-C +# [[ 5 3 1] +# [-1 -3 -5]] +``` + +Matrix Transposition is when we switch the orientation of its rows and columns: + +```bash +[ [ + 1 2 3 = 1 4 + 4 5 6 2 5 +] ͭ 3 6 + ] +``` + +In Python, we have the `T` method: + +```python +A = np.array([[1, 2, 3], + [4, 5, 6]]) +A.T +# [[1 4] +# [2 5] +# [3 6]] +``` + +### Matrix Multiplication + +Scalar multiplication in matrices looks similar to scalar multiplication in vectors. To multiply a matrix by a scalar value, you just multiply each element by the scalar to produce a new matrix: + +```bash + [ [ +2 · 1 2 3 = 2 4 6 + 4 5 6 8 10 12 + ] ] +``` + +In Python, we simply perform the multiplication of two values: + +```python +A = np.array([[1,2,3], + [4,5,6]]) + +2 * A +# [[ 2 4 6] +# [ 8 10 12]] +``` + +To mulitply two matrices, we need to calculate the dot product of rows and columns. + +```bash +A · B + +[ [ + 1 2 3 · 9 8 + 4 5 6 7 6 +] 5 4 + ] +``` + +How to calculate this multiplication: + +- First row from A times first column from B = First row, first column +- First row from A times second column from B = First row, second column +- Second row from A times first column from B = Second row, first column +- Second row from A times second column from B = Second row, second column + +Resulting in these calculations: + +```bash +(1·9) + (2·7) + (3·5) = 38 +(1·8) + (2·6) + (3·4) = 32 +(4·9) + (5·7) + (6·5) = 101 +(4·8) + (5·6) + (6·4) = 86 +``` + +Resulting in this matrix: + +```bash +[ + 38 32 + 101 86 +] +``` + +In Python, we can use the `dot` method or `@`: + +```python +import numpy as np + +A = np.array([[1, 2, 3], + [4, 5, 6]]) + +B = np.array([[9, 8], + [7, 6], + [5, 4]]) + +np.dot(A,B) +A @ B +# [[ 38 32] +# [101 86]] +``` + +For matrix multiplication, we commutative law doesn't apply: + +```python +A = np.array([[2, 4], + [6, 8]]) + +B = np.array([[1, 3], + [5, 7]]) + +A @ B +# [[22 34] +# [46 74]] + +B @ A +# [[20 28] +# [52 76]] +``` + +Identity matrices are matrices that have the value 1 in the diagonal positions and 0 in the rest of the other positions. + +An example: + +```bash +[ + 1 0 0 + 0 1 0 + 0 0 1 +] +``` + +Multiplying a matrix by an identity matrix results in the same matrix. It's like multiplying by 1. + +```bash +[ [ [ + 1 2 3 1 0 0 1 2 3 + 4 5 6 · 0 1 0 = 4 5 6 + 7 8 9 0 0 1 7 8 9 +] ] ] +``` + +### Matrix Division + +Matrix division is basically multiplying it by the inverse of the matrix + +$$ +\begin{equation}A \div B = A \cdot B^{-1}\end{equation} +$$ + +How the inverse of a matrix is calculated? Using this equation: + +$$ +\begin{equation}\begin{bmatrix}a & b\\c & d\end{bmatrix}^{-1} = \frac{1}{ad-bc} \begin{bmatrix}d & -b\\-c & a\end{bmatrix}\end{equation} +$$ + +Let's see it in action: + +$$ +\begin{equation}\begin{bmatrix}6 & 2\\1 & 2\end{bmatrix}^{-1} = \begin{bmatrix}0.2 & -0.2\\-0.1 & 0.6\end{bmatrix}\end{equation} +$$ + +In Python, we can use the `linalg.inv` method: + +```python +import numpy as np + +B = np.array([[6, 2], + [1, 2]]) + +np.linalg.inv(B) +# [[ 0.2 -0.2] +# [-0.1 0.6]] +``` + +Larger matrices than 2x2 are more complex to calculate the inverse, but it is calculated in the same way in Python: + +```python +B = np.array([[4, 2, 2], + [6, 2, 4], + [2, 2, 8]]) + +np.linalg.inv(B) +# [[-0.25 0.375 -0.125] +# [ 1.25 -0.875 0.125] +# [-0.25 0.125 0.125]] +``` + +With the calculation of the inverse, we can now calculate the multiplication of a matrix with a inverse of another matrix. + +$$ +\begin{equation}\begin{bmatrix}1 & 2\\3 & 4\end{bmatrix} \cdot \begin{bmatrix}6 & 2\\1 & 2\end{bmatrix}^{-1} \end{equation} +$$ + +$$ +\begin{equation}=\begin{bmatrix}1 & 2\\3 & 4\end{bmatrix} \cdot \begin{bmatrix}0.2 & -0.2\\-0.1 & 0.6\end{bmatrix} \end{equation} +$$ + +$$ +\begin{equation}=\begin{bmatrix}(1\times0.2)+(2\times-0.1) & (1\times-0.2)+(2\times0.6)\\(3\times0.2)+(4\times-0.1) & (3\times-0.2)+(4\times0.6)\end{bmatrix}\end{equation} +$$ + +$$ +\begin{equation}=\begin{bmatrix}0 & 1\\0.2 & 1.8\end{bmatrix}\end{equation} +$$ + +In Python, we can just invert the matrix and multiply by the inverse: + +```python +A = np.array([[1,2], + [3,4]]) + +B = np.array([[6,2], + [1,2]]) + +A @ np.linalg.inv(B) +# [[0. 1. ] +# [0.2 1.8]] +``` + +### Systems of Equations + +We can write system of equations in matrix form. Take a look a this equations: + +$$ +\begin{equation}2x + 4y = 18\end{equation} +$$ + +$$ +\begin{equation}6x + 2y = 34\end{equation} +$$ + +We can write this in matrix form: + +$$ +\begin{equation}\begin{bmatrix}2 & 4\\6 & 2\end{bmatrix} \cdot \begin{bmatrix}x\\y\end{bmatrix}=\begin{bmatrix}18\\34\end{bmatrix}\end{equation} +$$ + +And we can write this in another way: + +$$ +\begin{equation}A=\begin{bmatrix}2 & 4\\6 & 2\end{bmatrix}\;\;\;\;X=\begin{bmatrix}x\\y\end{bmatrix}\;\;\;\;B=\begin{bmatrix}18\\34\end{bmatrix}\end{equation} +$$ + +We know that `A · X = B`, which is the same as `B ÷ A = X`, which is the same as `B · A⁻¹ = X`. + +The inverse of `A` is: + +$$ +\begin{equation}A^{-1} = \begin{bmatrix}-0.1 & 0.2\\0.3 & -0.1\end{bmatrix}\end{equation} +$$ + +So: + +$$ +\begin{equation}X = \begin{bmatrix}-0.1 & 0.2\\0.3 & -0.1\end{bmatrix} \cdot \begin{bmatrix}18\\34\end{bmatrix}\end{equation} +$$ + +The result of the matrix `X` is + +$$ +\begin{equation}X = \begin{bmatrix}5\\2\end{bmatrix}\end{equation} +$$ + +In Python, we can confirm that: + +```python +A = np.array([[2, 4], + [6, 2]]) + +B = np.array([[18], + [34]]) + +X = np.linalg.inv(A) @ B +# [[5.] +# [2.]] +``` + +## Resources + +- [Machine Learning Research](https://github.com/imteekay/machine-learning-research) +- [Math for Machine Learning with Python](https://www.edx.org/learn/math/edx-math-for-machine-learning-with-python) + +--- + + diff --git a/content/series/mathematics-for-machine-learning/linear-algebra-fundamentals/en/metadata.json b/content/series/mathematics-for-machine-learning/linear-algebra-fundamentals/en/metadata.json new file mode 100644 index 00000000..9f36c474 --- /dev/null +++ b/content/series/mathematics-for-machine-learning/linear-algebra-fundamentals/en/metadata.json @@ -0,0 +1,23 @@ +{ + "title": "Linear Algebra Fundamentals", + "description": "Learning the fundamentals of Linear Algebra for Machine Learning", + "date": "2024-07-14", + "tags": [ + { + "href": "/tags/machine-learning", + "name": "machine-learning" + }, + { + "href": "/tags/math", + "name": "math" + } + ], + "coverImage": { + "src": "/series/mathematics-for-machine-learning/linear-algebra-fundamentals/cover.jpg", + "width": "640", + "height": "577", + "alt": "a black background with green dots and lines", + "authorHref": "https://unsplash.com/@mariolagr", + "authorName": "MARIOLA GROBELSKA" + } +} diff --git a/public/series/mathematics-for-machine-learning/linear-algebra-fundamentals/cover.jpg b/public/series/mathematics-for-machine-learning/linear-algebra-fundamentals/cover.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b185f55c11954d2436e10568897da66ad317ec45 GIT binary patch literal 56442 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⪙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