Ciencia de Datos e IA

Descomposicion en valores singulares: SVD

Comprender y aplicar la SVD como factorizacion universal: intuicion geometrica, ejemplo rango 1, aproximacion de bajo rango y conexiones con PCA, pseudo-inversion y recomendadores.

Descomposicion en valores singulares: SVD, la navaja de la algebra numerica

La auto-diagonalizacion solo funciona con matrices cuadradas y simetricas; la SVD funciona con CUALQUIER matriz, rectangular, mal condicionada y hasta llena de ceros. Es la herramienta detras de PCA en scikit-learn, de los sistemas de recomendacion por filtrado colaborativo y del compresor de imagenes mas elegante que conoceras. Este objeto la construye desde la intuicion geometrica hasta la aproximacion de rango k con las manos.

Circulo unitario transformado por SVD en elipse con rotaciones U y V y escala Sigma.
Toda transformacion lineal es: girar, estirar por los ejes, y volver a girar. Eso es exactamente SVD.
La promesa de SVD Toda matriz A de m por n se escribe A = U·Σ·Vᵀ con U ortogonal m×m, V ortogonal n×n y Σ diagonal rectangular con valores singulares σ1 mayor o igual σ2 mayor o igual ... mayores o iguales 0. Sin condiciones: A puede ser cualquier cosa. Los sigma son las raices de los autovalores de AᵀA.

Intuicion geometrica primero

Aplica A a todos los vectores unitarios del plano: la imagen del circulo es una ELIPSE. La SVD factoriza esa elipse en tres movimientos: Vᵀ rota el circulo para alinear sus ejes con los de la elipse; Σ estira cada eje por su factor sigma; U rota el resultado hacia su posicion final. Los ejes de la elipse son los vectores singulares; su longitud, los valores singulares.

Ejemplo rango 1: la SVD mas pequena del mundo

  1. Tomemos A = [[2, 4], [1, 2]]. Sus filas son proporcionales: rango 1. Toda la informacion cabe en un vector de filas u = (2,1)/√5 y uno de columnas v = (1,2)/√5.

La mejor aproximacion de rango bajo: Eckart-Young

Guarda las k primeras componentes: A_k = suma de σᵢ uᵢ vᵢᵀ para i de 1 a k. El teorema de Eckart-Young promete que es la MEJOR aproximacion de rango k posible (en norma de Frobenius y espectral): truncar la SVD no es un atajo, es el optimo. Los valores singulares decaen rapido cuando los datos tienen estructura: esa curva de decaimiento es la que justifica reducir dimensiones.

Compresion de imagen a mano

  1. Una imagen es una matriz de brillo. SVD sobre A (digamos 100x100, valores singulares desde 30 hasta casi 0).

SVD en tus futuras bibliotecas

Para que uso SVD

Autoexamen cronometrado (15 minutos)

¿Cual es la VENTAJA de SVD frente a diagonalizacion de autovalores?

Los valores singulares de A son las raices de los autovalores de AᵀA.

Para A diagonal [[3, 0], [0, 2]], sus valores singulares son 3 y 2. ¿Cual es sigma1?

En el ejemplo rango 1, AᵀA tuvo autovalores 25 y 0. ¿Cuantos valores singulares NO nulos tiene A?

Truncar la SVD a k componentes es la mejor aproximacion de rango k gracias al teorema de Eckart-.

Empareja factor con su papel geometrico.

Video de repaso

Para profundizar

3Blue1Brown: algebra lineal
La serie geometrica que hace VER las transformaciones; capitulo 15 y siguientes tocan factorizaciones.

Setosa: autovalores ilustrados
Interactivo del capitulo anterior; su hermano de SVD es la mejor puerta intuitiva.

La compresion por rango bajo presume que la matriz "realmente" tiene rango cerca de k. Piensa en una matriz de interacciones usuario-pelicula o en genes x pacientes: ¿por que un rango 50 captaria millones de datos? Escribe la hipotesis estructural que hace plausible la factorizacion.