Descomposición en valores singulares (SVD)

Descomponiendo cualquier matriz en sus componentes fundamentales

La descomposición en valores singulares (SVD) es una técnica del álgebra lineal que permite descomponer cualquier matriz en tres matrices más simples. Es una de las herramientas más poderosas en machine learning para compresión, reducción de dimensionalidad y análisis de datos.

👉 En esencia, la SVD revela cómo una matriz transforma el espacio en términos de rotaciones y escalados.

Definición corta

La SVD descompone una matriz en tres matrices que representan rotaciones y escalados.

Definición detallada

Dada una matriz AA de tamaño m×nm \times n, su descomposición SVD es:A=UΣVTA = U \Sigma V^T

👉 Donde:

  • UU = matriz ortogonal (vectores singulares izquierdos)
  • Σ\Sigma = matriz diagonal (valores singulares)
  • VTV^T = matriz ortogonal transpuesta (vectores singulares derechos)

Intuición

La SVD descompone una transformación en tres pasos:

  1. Rotación inicial (VTV^T)
  2. Escalado (Σ\Sigma)
  3. Rotación final (UU)

👉 Es como decir:

“Primero giro el espacio, luego lo estiro, luego lo vuelvo a girar”

Interpretación geométrica

Si aplicas una matriz a un círculo:

👉 Se convierte en una elipse

  • VVV define la orientación inicial
  • Σ\SigmaΣ define cuánto se estira cada eje
  • UUU define la orientación final

Valores singulares

Los valores en Σ\SigmaΣ:σ1σ2\sigma_1 \geq \sigma_2 \geq \cdots

👉 Indican:

  • cuánto se estira cada dirección
  • qué tan importante es cada componente

Relación con valores propios

  • SVD funciona para cualquier matriz
  • Valores propios solo para matrices cuadradas

👉 Además:ATAvalores propios=σ2A^T A \rightarrow \text{valores propios} = \sigma^2ATA→valores propios=σ2

SVD en redes neuronales

🔹 1. Reducción de dimensionalidad

Mantener solo los valores singulares más grandes:

👉 reduce dimensiones sin perder información clave

🔹 2. Compresión de modelos

Aproximar matrices de pesos:

👉 menos parámetros, mismo rendimiento

🔹 3. Eliminación de ruido

Valores singulares pequeños:

👉 suelen representar ruido

🔹 4. Análisis de embeddings

Detecta estructura en representaciones.

Ejemplo conceptual

Matriz:A=[3113]A = \begin{bmatrix} 3 & 1 \\ 1 & 3 \end{bmatrix}

SVD:A=UΣVTA = U \Sigma V^T

👉 Donde:

  • Σ\Sigma contiene los valores singulares
  • UU, VV contienen direcciones importantes

Relación con otros conceptos


Ejemplo en Python

import numpy as np
A = np.array([
[3, 1],
[1, 3]
])
U, S, Vt = np.linalg.svd(A)
print("U:\n", U)
print("Valores singulares:", S)
print("V^T:\n", Vt)

Ejemplo en PyTorch

import torch
A = torch.tensor([
[3.0, 1.0],
[1.0, 3.0]
])
U, S, Vt = torch.linalg.svd(A)
print("U:\n", U)
print("Valores singulares:", S)
print("V^T:\n", Vt)

Ejemplo: reducción de dimensionalidad

import numpy as np
A = np.random.rand(5, 5)
U, S, Vt = np.linalg.svd(A)
# Mantener solo los 2 valores principales
k = 2
S_reduced = np.zeros_like(A)
S_reduced[:k, :k] = np.diag(S[:k])
A_reduced = U @ S_reduced @ Vt
print("Matriz original:\n", A)
print("Matriz reducida:\n", A_reduced)

Ejemplo en deep learning

import torch
# Matriz de pesos simulada
W = torch.randn(4, 4)
U, S, Vt = torch.linalg.svd(W)
# Aproximación de bajo rango
k = 2
W_approx = U[:, :k] @ torch.diag(S[:k]) @ Vt[:k, :]
print("Original:\n", W)
print("Aproximada:\n", W_approx)

Qué muestra este ejemplo

  • Reduce complejidad
  • Mantiene estructura principal
  • Aproxima matrices grandes

👉 Base de compresión en redes neuronales.

Errores comunes

Confundir con valores propios

No son lo mismo, aunque relacionados.

No ordenar valores singulares

Siempre van de mayor a menor.

Usar todos los componentes

Pierde sentido de reducción.

Ejemplo conceptual en ML

Datos de alta dimensión → SVD → reducción → modelo más eficiente

Interpretación profunda

La SVD permite:

  • entender transformaciones complejas
  • identificar estructuras ocultas
  • comprimir modelos
  • mejorar eficiencia

👉 Es una de las herramientas más poderosas del machine learning.

Conclusión

La descomposición en valores singulares (SVD) permite descomponer cualquier matriz en componentes fundamentales, revelando su estructura interna. Es clave para reducción de dimensionalidad, compresión y análisis de datos.

👉 Dominar SVD es dominar cómo las matrices transforman el mundo.

Related Concepts