Intermediate Topic 29 of 51 Math for Computing
Singular Value Decomposition
Factorization revealing matrix structure.
How it works
Singular value decomposition factors any m by n matrix A as U Sigma V transpose, where U and V are orthogonal matrices whose columns are the left and right singular vectors and Sigma is diagonal with non-negative singular values in decreasing order. It reveals rank, the geometry of the transformation, rotation, scaling and rotation, and gives the best low-rank approximation by the Eckart-Young theorem: keeping the top k singular values minimizes error. Singular values are square roots of eigenvalues of A transpose A.
Where it is used
Image and data compression, noise reduction, principal component analysis, recommender systems with matrix factorization, latent semantic analysis, pseudoinverses and least squares and numerical rank determination use SVD.
Common pitfall
Full SVD is costly, O(mn squared), so use truncated or randomized versions for large data. Missing entries in recommender matrices need specialized methods. Singular vectors have sign ambiguity. Choosing the number of components requires judgment, by explained variance. Center data before using SVD for PCA.
Where it fits in the course
Singular Value Decomposition is topic 29 of 51 in Math for Computing, rated Intermediate. It follows Eigenvalues and Eigenvectors. The next topic is Orthogonality and Projections.
Practice and explore
- Open the interactive lesson, with a mini quiz.
- Take the Math for Computing quiz.
How to study this topic
- Read the explanation above and restate the definition in your own words.
- Open the interactive lesson and answer its mini quiz.
- Read the common pitfall, then write a short example that avoids it.
- Check your understanding in the Math for Computing quiz, and revisit the topic if you miss a question.
Frequently asked questions
What is Singular Value Decomposition?
Where do people use Singular Value Decomposition?
What is the most common mistake with Singular Value Decomposition?
What should I learn before this topic?
How can I practice it?
Is Singular Value Decomposition hard to learn?
How long does it take to learn Singular Value Decomposition?
Which topics are related to Singular Value Decomposition?
What should I study after Singular Value Decomposition?
Related topics
- Eigenvalues and Eigenvectors (Math for Computing)
- Orthogonality and Projections (Math for Computing)
- Gaussian Elimination (Math for Computing)
- Derivatives (Math for Computing)
- Pass by Value vs Reference (Programming Fundamentals)
- Key-Value Stores (Databases)