¿Qué es la ‘Aproximación de rango bajo’ y por qué se hace? ¿Realizar SVD en una matriz de datos produce una aproximación de rango bajo de la matriz?

¿Qué es la aproximación de rango bajo?
Digamos que [math] D: \ mathbb {R} ^ {m \ times n} \ times \ mathbb {R} ^ {m \ times n} \ mapsto \ mathbb {R} [/ math] sea una función de distancia que toma dos matrices como entrada y da una medida de distancia entre ellas. Entonces, la aproximación de rango bajo es el siguiente problema de optimización:

Dada una matriz [math] S \ in \ mathbb {R} ^ {m \ times n} [/ math] y un rango [math] r [/ math],
[math] \ min_ {T \ in \ mathbb {R} ^ {m \ times n}} D (S, T) [/ math] tal que [math] rango (T) \ leq r [/ math]

En otras palabras, intentamos encontrar una matriz [matemática] T [/ matemática] cuyo rango sea menor que [matemática] r [/ matemática] y esté más cerca de la matriz [matemática] S [/ matemática] según la función de distancia [ matemáticas] D [/ matemáticas].

Esta es la forma más básica del problema de aproximación de bajo rango. En muchos casos, podemos imponer restricciones adicionales al problema de optimización anterior. Pero por ahora, es suficiente conocer la forma básica.

¿Por qué hacemos aproximación de rango bajo?
Tiene varias aplicaciones, pero desde el punto de vista de un pájaro, las dos cosas principales para las que lo utilizamos son: reducción de la dimensionalidad y compresión.

¿SVD produce aproximaciones de rango bajo?
No. SVD simplemente descompone la matriz en tres matrices [matemáticas] U, \ Sigma, V ^ * [/ matemáticas]. Lea más en internet o wikipedia [1]. Dicho esto, podemos usar SVD para obtener una aproximación de rango bajo de cualquier matriz dada según la función de distancia dada por la norma frobenius de la diferencia de dos matrices.

[1] Descomposición de valores singulares