This tutorial in dedicated to the concept of linear independence of vectors and its associations with the solution of linear equation systems.
What is the concept of vectors’ linear independence, and why should I care about it? One simple example: Let’s say you want to find the answer to the . One may say we can simply find the answer by taking an inverse of as . NOT SO FAST! There is more in that? What if does not have an inverse or is not square? You just let it go? I guess not.
That was just one example. In Machine Learning, it frequently happens that you want to explore the correlation between vectors to analyze them better. For example, you are dealing with a matrix which in essence, is formed by vectors. What would you know if you are not familiar with the concept of linear independence?
In this tutorial, you will learn the following:
- The concept of linear independence/dependence!
- Examples of the linear dependence of vectors
- How to do it in Python using Numpy?
- Matrix ranks
- The solutions to a system of linear equations
Before You Move On
You may find the following resources helpful to better understand the concept of this article:
- Python Tutorials – A FREE Video Course: You will become familiar with Python and its syntax.
- Numpy – An Introduction to a Great Package for Linear Algebra: Numpy is one of the best scientific computing packages for Linear Algebra! You always need it for Machine Learning as you always need Linear Algebra for Machine Learning!
- The Remarkable Importance of Linear Algebra in Machine Learning: This article talks about why you should care about Linear Algebra if you want to master Machine Learning.
- Basic Linear Algebra Definitions that You Hear Every Day: Covers the primary and most frequently used Linear Algebra definitions in Machine Learning.
The Concept of Linear Independence
Assuming we have the set of which are column vectors of size . Then, we call this set linear independent, if no vector exists that we can represent it as the linear combination of any other two vectors. Although, perhaps it is easier to define linear dependent: A vector is linear dependent if we can express it as the linear combination of another two vectors in the set, as below:
In the above case, we say the set of vectors are linearly dependent!
Consider the three vectors below:
# Import Numpy library import numpy as np # Define three column vectors v = np.array([1, -1, 2]).reshape(-1,1) u = np.array([0, 3, 1]).reshape(-1,1) w = np.array([2, 1, 5]).reshape(-1,1) # Check the linear dependency with writing the equality print('Does the equality w = 2v+u holds? Answer:', np.all(w == 2*v+u))
Run the above code and see if Numpy confirms that or not!
The Relationship With Matrix Rank
I talked about the linear dependence of vectors so far. Assume we have the matrix . The matrix has m rows and n columns. Let’s focus on the columns. The n columns form n vectors. I denote the column with . So we have the set of n vectors as columns. The size of the largest subset of that its vectors are linearly independent, is called the column rank of the matrix . Considering the rows of , the size of the largest subset of rows that form a linearly independent set is called the row rank of the matrix .
We have the following properties for matrix ranks:
- For , . If , the matrix is full rank.
- For , , and , .
- For , , and , .
Check first and second property above with the following code:
# Import Numpy library import numpy as np from numpy.linalg import matrix_rank # Define random 3x4 matrix using np.array # Ref: https://docs.scipy.org/doc/numpy-1.15.1/reference/generated/numpy.random.randint.html M = np.random.randint(10, size=(3, 4)) N = np.random.randint(10, size=(4, 3)) # np.all() test whether all array elements are True. # More info: https://docs.scipy.org/doc/numpy/reference/generated/numpy.all.html checkProperty = np.all(matrix_rank(M) <= min(M.shape,M.shape)) if checkProperty: print('Property rank(M) <= min(M.shape,M.shape) is confirmed!') checkProperty = np.all(matrix_rank(np.matmul(M,N)) <= min(matrix_rank(M),matrix_rank(N))) if checkProperty: print('Property rank(MN) <= min(rank(M),rank(N)) is confirmed!')
Practice: Modify the above code and check property (3).
I talked about linear dependency and matrix ranks. After that, I would like to discuss their application in finding the solution of linear equations, which is of great importance. Consider the following equality which set a system of linear equations:
Above, we see the matrix is multiplied by the vector and forms another vector . The above equality creates a set of m-line linear equations. Let’s write line for example:
So the question is how many solution exists for the system of equations . By solution I mean the possible values for the variables . The answer is one of the following:
- There is NO solution.
- The system has one unique solution.
- We have infinite numbers of solutions.
As you observed, having more than one BUT less than infinity solutions is off the table!
Theorem: If and are two solutions of the equation, then the specific linear combination of them as below, is a solution as well:
PROOF: Look at the below equations to see how is also a solution:
So the above proves shows that if we have more than one solution, then we can say we have infinite number of solutions!
The following two conditions determine the number of solutions if there is at least one solution! Try to prove them based on what you learned so far:
- has at least one solution if and Rank() = m.
- has exactly one solution if and Rank() = m.
In this tutorial, I discussed the concept of linear independence of the vectors and their associates with the system of linear equations. This concept is crucial, especially in Machine Learning and optimization theory, in which we are dealing with all sorts of mathematical proofs necessary to justify why a method should work! For the majority of what you may work in Machine Learning, you may not need to use what I talked about here directly. BUT, you need to know it if you would like to stand out! Do you see any ambiguous concept here? Anything missing or wrong? Feel free to ask as it will help me, yourself, and the others to learn better, and I can further improve this article.