🧮 Computational Mathematics

Inicio · Parte 06 — Álgebra lineal II: descomposiciones y tensores

132 — SVD desde la intuición

intermedio-avanzado clase 12 de 20 4 horas demostración svd_intuition

La SVD existe para toda matriz y de ella se leen rango, condición y estructura.

Fórmulas

A = UΣVᵀ
σᵢ = √(autovalores de AᵀA)
κ(A) = σ_max / σ_min

Desarrollo

La descomposición en valores singulares escribe cualquier matriz —cuadrada o no, invertible o no— como el producto de una rotación, un escalado por ejes y otra rotación. Esa universalidad es lo que la hace la herramienta más útil del álgebra lineal aplicada: donde la diagonalización falla, la SVD funciona.

Los valores singulares son las cantidades por las que la matriz estira cada dirección principal, ordenados de mayor a menor. Su lectura es directa: el mayor es la norma espectral de la matriz, el número de no nulos es el rango, y el cociente entre el mayor y el menor es el número de condición. Tres diagnósticos de una sola descomposición.

El número de condición es el indicador correcto de mal condicionamiento, no el determinante (clase 117). Una matriz puede tener determinante minúsculo y condición 1 —si está simplemente escalada— o determinante razonable y condición 10¹² —si tiene una dirección casi degenerada—. Solo el segundo caso es problemático.

El rango numérico se define con la SVD y una tolerancia: cuántos valores singulares superan un umbral relativo al mayor. Es la definición que usan las bibliotecas, porque en datos reales el rango exacto casi siempre es completo por culpa del ruido, aunque la estructura sea de rango bajo.

Ejemplo trabajado

SVD de una matriz 2×2.

A = [[3,0],
     [4,5]]

valores singulares: σ₁ = 6.7082,  σ₂ = 2.2361

norma espectral   = σ₁ = 6.7082
número de condición = 6.7082/2.2361 = 3.0
rango numérico    = 2  (ambos σ > tolerancia)

A = UΣVᵀ reconstruye la matriz              ✓

Existe para TODA matriz, incluso rectangular y singular.

Qué calcula el laboratorio

SVD: rotar, escalar, rotar. Existe siempre.

python classes/part-06-algebra-lineal-ii-descomposiciones-y-tensores/132-svd-desde-la-intuicion/lab.py
compmath run 132

Salidas del laboratorio (8)

Muestra de la ejecución real

{
  "A": [
    [
      3.0,
      0.0
    ],
    [
      4.0,
      5.0
    ]
  ],
  "valores_singulares": [
    6.708204,
    2.236068
  ],
  "U": [
    [
      0.316228,
      0.948683
    ],
    [
      0.948683,
      -0.316228
    ]
  ],
  "V": [
    [
      0.707107,
      0.707107
    ],
    [
      0.707107,
      -0.707107
    ]
  ],
  "sigma1_es_la_norma_espectral": 6.708204,
  "numero_de_condicion": 3.0
}

Errores comunes

Dónde se usa

Diagnóstico de condicionamiento, rango numérico, pseudoinversa, compresión, PCA, recomendación por factorización y regularización truncada.

Idea rectora de la parte

La SVD existe para toda matriz, incluso no cuadrada y singular.

Error a evitar

Confundir el orden de los índices al reordenar un tensor.

Conexión con IA

LoRA factoriza matrices de bajo rango, la atención se define con productos tensoriales y la estabilidad del entrenamiento depende del espectro de los pesos.

Bibliografía de la clase

Archivos de la clase