There's also the Moore-Penrose pseudoinverse which also has plenty of applicaitons and works on non-square matrices.
There's also the Moore-Penrose pseudoinverse which also has plenty of applicaitons and works on non-square matrices.
This leads to the question: for a non-symmetric square diagonalizable matrix, what is the difference between the eigenvalues and the singular values? A good heuristic for applications is that the eigenvalues capture the asymptotic behavior of repeating the map, i.e. the behavior of A^k as k goes to infinity, while the singular values capture the transient behavior of applying the map once.
For example, consider the matrix
0.9 x
0 0.9.
As x goes to infinity, its largest singular value becomes infinity, while its eigenvalues remain smaller than one. This means that there exists a vector (0 1) whose image under A is huge, but whose image under A^k still approaches the zero vector for large k.A good book on these topics is "Spectra and Pseudospectra" by Trefethen and Embree.
However, they're still an extension in the sense that singular values do correspond to (square of the) eigenvalues of the square matrix A A^T and A^T A.
I find it fascinating that A = U∑V^T works on ANY matrix A, with U and V being made of orthogonal vectors (the left and right singular vectors of A)... it's like saying that all matrices are scalings and projections when viewed with appropriate bases for the input and output spaces (U and V).
> we can find the left and right singular values
Interestingly the (nonzero subset) of the left and right singular values happen to be the same... I don't have a useful intuition about how to explain this. Does anyone know why A A^T and A^T A have the same eigenvalues?
It makes sense to talk about the eigenvalues of an operator on any vector space. But in order for singular values to make sense the vector space needs to have an inner product.
So eigenvalues are more general because they make sense even when you haven't chosen an inner product on your vector space.
From an HN perspective this kind of consideration is relevant when working on a data set in which there are some arbitrary units. You don't want your model predicting house prices to work differently depending on whether you choose to measure floor size in m^2 or ft^2.
(1) A rotation in the source space, (2) an axis-aligned non-uniform scaling (if necessary adding/removing dimensions to match the destination space), and (3) another rotation in the destination space.
Rotation is only a meaningful concept when you have a metrical structure (think of the full geometry of Euclid’s Elements including circles, perpendicularity, lengths, angles), so if you don’t have a metrical structure the SVD is likewise not really meaningful.
Often spaces we deal with using linear algebra only have an affine structure (parallelism is well defined, and lengths can be compared when they are along parallel lines), but do not have a metrical structure (so there is no meaningful way to compare lengths pointed in different directions or measure angles). For example: there is no meaningful concept of the angle between the directions of 5 miles/gallon and 10 miles/gallon, and if you arbitrarily defined one, it would change when you switched from gallons to milliliters or from miles to meters.
In practice people still often arbitrarily impose a metrical structure, sometimes based on some heuristic analysis of the data involved, and then use tools like the SVD based on that.
But the definition of A^T or A^* depends on a particular choice of basis, and is not a coordinate-invariant concept. If one had an inner product <,>, the adjoint can be defined in a coordinate-independent way using that inner product: A^* is the operator defined by
<Au,v> = <u,A^v>
for all vectors u and v. (One can check that A^ is uniquely defined.) For a different choice of inner product, one gets a different A^.
Note that the operator A^TA comes up naturally when one considers what the action of A does to the length of vectors:
|u|^2 = <u,u>
|Au|^2 = <Au,Au> = <u,A^Au>
Geometrically, the SVD tells us how a linear transformation dilates or contracts space in different directions, e.g., think about what a linear transformation does to a sphere. But all these concepts -- length of vectors, spheres, ellipsoids (images of spheres under linear transformations) -- depend on a choice of inner product.
The norm is defined in terms of the inner product.
On the other hand, eigenvalues are defined with using only the transform and scalar multiplication, which does not require an inner product.
[1] https://www.youtube.com/watch?v=rYz83XPxiZo&list=PLUl4u3cNGP...
1. https://en.wikipedia.org/wiki/Singular_value_decomposition#A... of which the "Low-rank matrix approximation" is the most important one (it's like looking inside the matrix, seeing its significant components, and zeroing out the remaining ones to save space). See also PCA in statistics.
2. 1976 video about SVD https://www.youtube.com/watch?v=R9UoFyqJca8 that shows a visualization for an algorithm for how to compute it.
3. Good two-part blog post series https://jeremykun.com/2016/04/18/singular-value-decompositio... https://jeremykun.com/2016/05/16/singular-value-decompositio...
http://gregorygundersen.com/blog/2018/12/10/svd/
It's such an important operation that I'd say understanding it changes how you understand a lot of linear algebra. That Kun post is also good.
You can use it to search for words and find related texts even though those texts do not contain the actual words you searched for. Or you can use it to find similar texts, even though important words may differ.
Not sure how relevant LSI is these days, not my field at all, but mapping words to vector spaces and using SVD like this kinda blew my mind a bit when I stumbled upon it many years ago.
[1]: https://en.wikipedia.org/wiki/Latent_semantic_analysis#Mathe...
- Principal component analysis
- Fitting a plane to a set of points
- Linear least squares