¿Cuál es la diferencia entre una matriz sin procesar y una matriz SVD proyectada (con rango completo)?

Entonces, hace un tiempo escribí una respuesta a esta pregunta ¿Qué es una explicación intuitiva de la descomposición de valores singulares (SVD)?

Allí utilizo el ejemplo de “compresión” de imágenes, una idea que llevaré a esta respuesta.

Primero recordemos lo que hace SVD.

[matemáticas] A = U \ Sigma V ^ T [/ matemáticas]

Para SVD de rango [matemática] k [/ matemática], podemos hacer una matriz usando su SVD de la siguiente manera.

[matemáticas] A \ aprox. \ sum_ {i = 1} ^ k \ sigma_iu_iv_i ^ T, k \ le r [/ matemáticas]

La idea de usar SVD para ‘comprimir’ imágenes está motivada por el hecho de que en lugar de almacenar valores [matemáticos] mn [/ matemáticos] en una matriz [matemática] m \ veces n [/ matemática].

[matemáticas] \ dim (U) = m \ veces k [/ matemáticas]
[matemáticas] \ dim (\ Sigma) = k [/ matemáticas]
[matemáticas] \ dim (V) = k \ veces n [/ matemáticas].

Esto significa que SVD puede convertir los valores [matemáticos] mn [/ matemáticos] en valores [matemáticos] mk + k + nk [/ matemáticos]. Asumiendo que tienes una matriz densa. ¡Esto también supone que solo almacena la diagonal de [math] \ Sigma [/ math]!


Ahora, aquí está la cosa. Esto también significa que para que haya realmente compresión, la siguiente desigualdad debe ser verdadera.

[matemáticas] mk + k + nk <nm [/ matemáticas].

Esto significa que [matemáticas] k <mm [/ matemáticas] para que haya algún ahorro.

Si tenemos un SVD de rango completo, verá que en realidad está usando [matemáticas] m ^ 2 + m [/ matemáticas] más puntos de datos para representar la misma matriz.