Descomposición en valores singulares
Matemática · Lección 11
Objetivo
Al terminar esta lección se puede:
- Definir la descomposición en valores singulares y demostrar que los valores singulares son las raíces de los eigenvalores de A^\top A.
- Demostrar que Av_i=\sigma_iu_i y leer en la descomposición el rango, el espacio columna y el núcleo de cualquier matriz, sea o no cuadrada.
- Demostrar que truncar la descomposición deja un error de \sqrt{\sum_{i>k}\sigma_i^2}, y usar eso para aproximar una matriz por otra de rango bajo.
- Demostrar la deuda de la lección 6: que \kappa(A^\top A)=\kappa(A)^2, y con ella por qué las ecuaciones normales pierden el doble de dígitos.
De dónde viene
- Matemática 10: la diagonalización de matrices cuadradas y el caso simétrico ortogonal. La descomposición de esta lección se construye diagonalizando A^\top A, que siempre es simétrica.
- Matemática 6: las ecuaciones normales y la advertencia sobre el condicionamiento, que aquí queda demostrada.
- Matemática 7: la factorización QR, que resuelve el mismo problema con menos garantías y menos coste.
- Matemática 3: rango, espacio columna y núcleo, que aquí se leen de un vistazo.
Para qué sirve después
- Matemática 12: las formas cuadráticas y su clasificación por el signo de los eigenvalores.
- Estadística 12: el análisis de componentes principales es esta descomposición aplicada a la matriz de datos centrada, y las varianzas explicadas son los \sigma_i^2.
- Aprendizaje automático: compresión, sistemas de recomendación, reducción de dimensión y regularización por truncamiento salen todos de la Proposición 11.6.
Notación
| Símbolo | Se lee | Significado |
|---|---|---|
| A | A | Matriz m\times n, no necesariamente cuadrada |
| \sigma_i | sigma sub i | Los valores singulares, ordenados \sigma_1\ge\sigma_2\ge\dots\ge0 |
| u_i, v_i | u sub i, ve sub i | Los vectores singulares por la izquierda y por la derecha |
| U, V | U, V | Matrices de columnas ortonormales con esos vectores |
| \Sigma | sigma mayúscula | Matriz diagonal con los \sigma_i. Aquí es eso; en Estadística 12 es la matriz de covarianza |
| r | erre | El rango: cuántos \sigma_i son no nulos |
| \|A\|_F | norma de Frobenius | \sqrt{\sum_{ij}a_{ij}^2}, la norma euclídea de la matriz vista como un vector largo |
| \kappa(A) | kappa de A | El número de condición, \sigma_1/\sigma_r |
1. Toda matriz hace lo mismo: rotar, estirar, rotar
Definición 11.1 (descomposición en valores singulares). Una SVD de A\in\mathbb{R}^{m\times n} es una factorización A = U\,\Sigma\,V^\top con U de m\times m ortogonal, V de n\times n ortogonal y \Sigma de m\times n diagonal con entradas \sigma_1\ge\dots\ge\sigma_{\min(m,n)}\ge0.
La Definición 10.1 exigía que la matriz fuera cuadrada y tuviera base de eigenvectores; esta no exige nada. Toda matriz tiene descomposición en valores singulares, y eso es lo que la vuelve la herramienta de referencia.
El visual muestra la lectura geométrica: V^\top rota, \Sigma estira cada eje por su valor singular y U vuelve a rotar. El círculo unitario acaba siempre en una elipse cuyos semiejes son los \sigma_i, y cuando el menor se acerca a cero la elipse se aplasta: eso es estar cerca de no ser invertible.
Proposición 11.2 (de dónde salen \sigma y V). Sea A de m\times n. La matriz A^\top A es simétrica y semidefinida positiva, de modo que tiene una base ortonormal de eigenvectores v_1,\dots,v_n con eigenvalores \lambda_1\ge\dots\ge\lambda_n\ge0. Poniendo \sigma_i=\sqrt{\lambda_i} y, para los \sigma_i>0, u_i = \frac{A v_i}{\sigma_i}, los vectores u_i son ortonormales y cumplen Av_i=\sigma_iu_i.
Demostración. A^\top A es simétrica porque (A^\top A)^\top = A^\top A, y es semidefinida positiva porque v^\top A^\top Av=\|Av\|^2\ge0 —el mismo argumento de la Proposición 6.3—, así que sus eigenvalores no son negativos y las raíces existen. Por el teorema espectral de la lección 10 hay una base ortonormal de eigenvectores.
Que los u_i son ortonormales sale de la propia ecuación de eigenvectores: \langle u_i, u_j\rangle = \frac{(Av_i)^\top(Av_j)}{\sigma_i\sigma_j} = \frac{v_i^\top A^\top A v_j}{\sigma_i\sigma_j} = \frac{\lambda_j\,v_i^\top v_j}{\sigma_i\sigma_j}, que vale 0 si i\ne j —porque los v son ortogonales— y \lambda_i/\sigma_i^2=1 si i=j. La igualdad Av_i=\sigma_iu_i es la definición de u_i despejada. Completando \{u_i\} a una base ortonormal de \mathbb{R}^m y \{v_i\} a una de \mathbb{R}^n se obtiene AV=U\Sigma, es decir A=U\Sigma V^\top. ∎
Proposición 11.3 (qué se lee en la descomposición). Con r el número de valores singulares no nulos:
- \operatorname{rango}(A)=r;
- \{u_1,\dots,u_r\} es una base ortonormal del espacio columna de A;
- \{v_{r+1},\dots,v_n\} es una base ortonormal del núcleo de A;
- A^\top A = V\Sigma^\top\Sigma V^\top y AA^\top = U\Sigma\Sigma^\top U^\top: los eigenvalores de ambas son los \sigma_i^2.
Demostración. Para (3): si i>r entonces \sigma_i=0 y \|Av_i\|^2 = v_i^\top A^\top Av_i = \lambda_i = 0, luego Av_i=0 y v_i está en el núcleo; recíprocamente, si Ax=0, escribiendo x=\sum_i c_iv_i se tiene 0=Ax=\sum_{i\le r}c_i\sigma_iu_i, y por independencia de los u_i todos los c_i con i\le r son nulos. Para (2): todo Ax es \sum_{i\le r}c_i\sigma_iu_i, una combinación de los primeros r vectores u_i, y cada u_i está en el espacio columna por ser Av_i/\sigma_i. (1) sale de (2) contando dimensiones, y también del teorema del rango-nulidad de la lección 3 aplicado a (3). Para (4), sustitúyase A=U\Sigma V^\top y úsese U^\top U=I. ∎
2. La mejor aproximación de rango bajo
Escribiendo la descomposición por columnas, A=\sum_{i=1}^{r}\sigma_i\,u_iv_i^\top: una suma de matrices de rango uno, ordenadas de mayor a menor peso. Quedarse con las primeras es la forma natural de aproximar.
Proposición 11.4 (error de truncar). Sea A_k=\sum_{i\le k}\sigma_iu_iv_i^\top. Entonces \|A-A_k\|_F = \sqrt{\sum_{i>k}\sigma_i^2}.
Demostración. A-A_k=\sum_{i>k}\sigma_iu_iv_i^\top. La norma de Frobenius al cuadrado es la traza de M^\top M, y \Big(\sum_{i>k}\sigma_iu_iv_i^\top\Big)^\top\Big(\sum_{j>k}\sigma_ju_jv_j^\top\Big) = \sum_{i,j>k}\sigma_i\sigma_j\,v_i\underbrace{u_i^\top u_j}_{\delta_{ij}}v_j^\top = \sum_{i>k}\sigma_i^2\,v_iv_i^\top, cuya traza es \sum_{i>k}\sigma_i^2 porque \operatorname{traza}(v_iv_i^\top)=\|v_i\|^2=1. ∎
Teorema 11.5 (Eckart-Young, enunciado). Entre todas las matrices de rango a lo sumo k, ninguna se acerca a A más que A_k: para toda B con \operatorname{rango}(B)\le k, \|A-B\|_F \;\ge\; \|A-A_k\|_F.
La optimalidad no se demuestra aquí: necesita un argumento sobre subespacios que este plan no ha visto, y queda declarado en Fuentes. Lo que sí se puede hacer es comprobarla: la celda de abajo enfrenta la truncada contra dos mil matrices de rango k generadas al azar, y ninguna la mejora.
3. La deuda de la lección 6, saldada
La Proposición 6.8 afirmó sin demostración que formar A^\top A eleva al cuadrado el número de condición. Con la descomposición en valores singulares la demostración cabe en tres líneas.
Definición 11.6 (número de condición). Para A de rango completo, \kappa(A)=\sigma_1/\sigma_r: cuánto separa la matriz la dirección que más estira de la que menos.
Proposición 11.7 (el condicionamiento se eleva al cuadrado). Para toda A de rango columna completo, \kappa(A^\top A) = \kappa(A)^2.
Demostración. Por el apartado (4) de la Proposición 11.3, A^\top A = V\Sigma^\top\Sigma V^\top es una diagonalización ortogonal cuyos eigenvalores son \sigma_1^2,\dots,\sigma_n^2. Como A^\top A es simétrica, sus valores singulares coinciden con el valor absoluto de sus eigenvalores, de modo que \kappa(A^\top A) = \frac{\sigma_1^2}{\sigma_n^2} = \left(\frac{\sigma_1}{\sigma_n}\right)^2 = \kappa(A)^2. ∎
La consecuencia práctica ya estaba anunciada en la lección 6 y ahora tiene demostración: resolver mínimos cuadrados formando A^\top A trabaja con un condicionamiento al cuadrado, y por eso se factoriza A —con QR o con esta descomposición— en vez de multiplicarla por su traspuesta.
La última columna da 1{,}000000 en los tres casos, incluidos los dos diseños mal condicionados: la igualdad de la Proposición 11.7 es exacta, no aproximada.
Ejercicios
Ejercicio 1 — La pseudoinversa y el sistema sin solución
Cuando A no tiene rango completo, las ecuaciones normales no se pueden resolver porque A^\top A no es invertible. La descomposición da la salida: invertir solo los valores singulares no nulos. Comprobar que la solución que se obtiene es la de norma mínima entre todas las que minimizan \|b-Ax\|.
Ejercicio 2 — Cuánto se puede comprimir
Generar dos matrices 60\times60: una con valores singulares que caen geométricamente y otra con ruido puro. Medir cuántas componentes hacen falta en cada una para capturar el 95 % de la energía, y explicar la diferencia.
Reto
En proyectos/notebooks/F1-retos.ipynb, sección Mat 11:
- Escribir
svd_por_eigen(A)que construya la descomposición diagonalizando A^\top A —tal como hace la Proposición 11.2— y compararla connp.linalg.svden cien matrices aleatorias. Medir el error y explicar por qué esta ruta es numéricamente peor que la que usa LAPACK, con la Proposición 11.7 en la mano. - Tomar una imagen en escala de grises, calcular su descomposición y graficar el error de reconstrucción y el número de valores guardados en función de k. Encontrar el k donde la imagen deja de distinguirse a simple vista y compararlo con el que captura el 95 % de la energía.
- Comprobar que el análisis de componentes principales de un conjunto de datos centrado es la descomposición de la matriz de datos: las direcciones principales son las columnas de V y las varianzas explicadas son \sigma_i^2/(n-1). Contrastarlo con los eigenvalores de la matriz de covarianza de Estadística 12.
Del libro
Mathematics for Machine Learning dedica §4.5 Singular Value Decomposition a la construcción y §4.6 Matrix Approximation a la aproximación de rango bajo y al teorema de Eckart-Young. El libro tiene copyright y no es descargable desde el entorno en que se escribió esta página, así que se cita número y título y no se le atribuye ninguna frase.
Preguntas para leer §4.5 y §4.6 con lápiz:
- MML construye la descomposición igual que la Proposición 11.2, diagonalizando A^\top A. ¿En qué punto exacto de esa construcción se usa que los eigenvalores de A^\top A no sean negativos?
- §4.6 enuncia Eckart-Young en norma espectral además de en Frobenius. ¿Cambia el minimizador al cambiar de norma, según el libro?
- El libro relaciona la descomposición con el análisis de componentes principales. ¿Qué matriz hay que descomponer para que las direcciones principales salgan en V, y por qué hay que centrar antes?
Para el Cerebro
Nota nueva en 10-Conceptos/svd.md, enlazada a [[diagonalizacion]], [[minimos-cuadrados]] y [[matriz-de-covarianza]]. La Proposición 11.7 conviene rehacerla a mano: son tres líneas y salda una deuda que llevaba cinco lecciones abierta.
¿Qué es la SVD de una matriz?::A = U Σ Vᵀ con U y V ortogonales y Σ diagonal no negativa
¿Qué matrices la tienen?::Todas, cuadradas o no; a diferencia de la diagonalización, no exige nada
¿De dónde salen los valores singulares?::Son las raíces de los eigenvalores de AᵀA, que es simétrica y semidefinida positiva
¿Qué relación hay entre uᵢ y vᵢ?::A vᵢ = σᵢ uᵢ: la matriz manda la base de la derecha a la de la izquierda, estirando
¿Cómo se lee el rango en la SVD?::Es el número de valores singulares no nulos
¿Dónde está el espacio columna?::En las primeras r columnas de U; el núcleo, en las últimas columnas de V
¿Cuánto vale el error de truncar a rango k?::La raíz de la suma de los σᵢ² descartados (Proposición 11.4)
¿Qué dice Eckart-Young?::Que ninguna matriz de rango k se acerca más que la SVD truncada
¿Qué es el número de condición?::σ₁/σᵣ: cuánto separa la dirección que más estira de la que menos
¿Por qué κ(AᵀA) = κ(A)²?::Porque los eigenvalores de AᵀA son los σᵢ², así que el cociente extremo se eleva al cuadrado
¿Qué hace la pseudoinversa?::Invertir solo los valores singulares no nulos; da la solución de norma mínima
¿Qué espectro permite comprimir?::Uno que cae rápido; con ruido puro el espectro es plano y no hay nada que truncar
Fuentes
Lo que esta página demuestra sola. Las Proposiciones 11.2, 11.3, 11.4 y 11.7 se demuestran aquí, a partir del teorema espectral de la lección 10 y de la ortonormalidad de la lección 7. Se comprueban además numéricamente: A=U\Sigma V^\top con U y V ortonormales y \sigma_i=\sqrt{\lambda_i(A^\top A)}; las cuatro igualdades Av_i=\sigma_iu_i; el error de truncar contra \sqrt{\sum_{i>k}\sigma_i^2} en cinco valores de k; la optimalidad de Eckart-Young contra 2 000 matrices de rango k al azar; \kappa(A^\top A)=\kappa(A)^2 en tres diseños, incluidos dos mal condicionados; y la pseudoinversa dando la solución de norma mínima. Los dos visuales se contrastaron antes de publicarse: 3 matrices × 4 etapas para el primero, y 2 espectros × 9 truncamientos para el segundo, construido a partir de una matriz cuya descomposición se conoce de antemano por diseño.
Lo que se usa de otras lecciones sin repetir. El teorema espectral y la diagonalización ortogonal son la lección 10. Que v^\top A^\top Av=\|Av\|^2 y la condición de rango columna completo, la lección 6. Rango, espacio columna y núcleo, la lección 3.
Lo que se enuncia sin demostrar. El teorema de Eckart-Young, es decir la optimalidad de la truncada entre todas las matrices de rango k; aquí solo se demuestra el valor del error al truncar. La optimalidad se comprueba numéricamente contra 2 000 rivales, lo que no es una demostración.
Lo que viene de los libros.
- Mathematics for Machine Learning (Deisenroth, Faisal & Ong, Cambridge University Press, 2020), §4.5 Singular Value Decomposition y §4.6 Matrix Approximation — citadas por número y título, sin transcribir texto.
Lo que es mío, no del libro. La Proposición 11.7 presentada como el pago de una deuda concreta de la lección 6, con su comprobación numérica en tres diseños; y el visual de las tres etapas, que separa rotar, estirar y rotar en pasos que se pueden mirar de uno en uno.
Índices verificados el 12-09-2026 contra el índice publicado del PDF oficial.
→ Siguiente: Formas cuadráticas